Redmine ב-Kubernetes - חלק 2: התקנת Redmine ב-Kubernetes

6/30/2020
דקות 8
Lukáš Beňa.

זה השני חלק ואן דה סדרה על פני היישום של Redmine ב-Kubernetes. במאמר זה אנו נותנים הוראות כיצד ניתן ליישם את ההתקנה של Redmine.

Terugblik Deel 1

ברגע זה אתה יכול לראות את ההתקנה של Redmine על Kubernetes. Daarvoor ben je tenslotte hier, toch?

In Redmine in Kubernetes - חלק 1: Voorbereiden van de omgeving התקנתנו בקר Ingress, ישנו רכיב של חיפושים באינטרנט בתוך אשכול כדי להוביל, ויש לנו DNS-domein, redminek8s.ddns.net, נוצר. עכשיו אנחנו רק לא יכולים להגדיר HTTPS ואנחנו מתכננים ליישם את Redmine.


HTTPS נפגש עם cert-manager

למרות שאנו Redmine als HTTP יכולים לשמור, HTTPS הוא סטנדרטי עבור אתרי אינטרנט. צור אפילו את רוב הדפדפנים כדי לאפשר בעיה אבטחה כאשר HTTPS אינו משמש דרך אתר אינטרנט.

ההחלפה של HTTPS היא בדרך כלל לא עבודה פשוטה, מכיוון שאתה צריך לקנות את האישור וההעלאה לאתר שלך. מנהל אישורים אוטומטית את כל זה, כולל אישורים של אישורים, וקבלת אישורים בחינם. אתה יכול יותר מידע למצוא על אתר hun, maar ik zal je alles uitleggen wat je moet weten.


מנהל אישורי מתקין

ראה את השלבים הבאים כדי להתקין את ה-cert-manager באשכול:

הגה ריפו להוסיף https://charts.jetstack.io & עדכון ריפו על ההגה

helm install cert-manager jetstack / cert-manager - set installCRDs = true

קודם כל הוסיפו את המאגר בו נמצא ה-cert-manager, ולאחר מכן התקן את הגרסה החדשה.


ורבינדן פגש את רשות האישורים

עכשיו אנחנו צריכים להדריך את ה-cert-manager כדי ליצור קשר עם הדלת שנבחרה לספק אישורים. אנחנו נשתמש ב-LetsEncrypt, רשות אישורים בחינם. עשה קודם את הקובץ (vergeet not om תחליף את כתובת הדוא"ל האמיתית) וקרא את cluster-issuer.yaml

apiVersion: cert-manager.io/v1alpha2

סוג: ClusterIssuer

מטא נתונים:

  שם: letsencrypt - -

מפרט:

  שִׂיא:

    שרת: https://acme-v02.api.letsencrypt.org/directory

    אימייל:

    privateKeySecretRef:

      שם: letsencrypt - -

    פתרונות:

    - http01:

        חודר:

          כיתה: nginx

לאחר מכן יצאו לדרך באשכול

להחיל kubectl -f אשכול-מנפיק. yaml

אושר! הקובץ העליון הוא הקונפיגורציה הראשונה של קוברנטות שאנו כותבים ונוסעים על האשכול. אתה יכול אולי להגדיר את זה אחרון לראות איך אתה יכול ליצור קשר עם LetsEncrypt, אבל הוא כתב גם את Ingress Controller שעשינו ב-Deel 1 (De class: nginx aan het einde). זה סוג קונפורמציה יש כמה כללים עם ספציות על התלות של כמה תכונות אחרות על מתן. Houd die spaaties כפי שאתה צריך לדאוג שהקובץ הנכון ייעשה.

כעת מופעלת אשכול HTTPS. Telkens כאשר אנו מפעילים יישום, אנו יכולים להדריך אותם עם HTTPS כדי לעבוד Voila! כל התהליך של השגת האישורים אוטומטית מתבצעת אחר הצג.


התקנת Redmine

זה מה שאנחנו צריכים. אנחנו יכולים להתקין את ה-Redmine בדרכים שונות, אבל אנחנו יכולים להשתמש בצורה הטובה ביותר. כמו שאנחנו קודם כל דידן, מוסיפים אנחנו קודם את המאגר בו רדמיין נמצא.

הגה ריפו להוסיף ביטנמי https://charts.bitnami.com/bitnami & עדכון ריפו על ההגה

אנחנו עושים את זה באופן ישיר כדי להתקין קובץ קונפיגורציה כדי לתת התנהגות מותאמת אישית, אנחנו רוצים להציג את Redmine.

אנחנו נצטרך את כל ההגדרות ב-hun eigen sectie scheiden, אבל זה הכל במקומות קבצים זהים, אחד עם השני. Noem het bestand values.yaml.

כל יישום ה-Helm יש אחד values.yaml-bestand עם כל הגדרות אפשריות ליישום שניתן ליצור. כאשר אנחנו שלנו eigen values.yaml עושים, definiëren we de change die we will. Elke waarde die we not in ons bestand, נשאר כמו שהוא ב-het standardbestand.

כל הסטנדרטים נמצאים גם בדף ההגה-יישום, https://hub.helm.sh/charts/bitnami/redmine. שמור על כל ההגדרות.


Eerste beheerdersgebruiker

Redmine-gebruikersnaam: adminUser

Redmine-wachtwoord:

זה פשוט הכרחי כמו גם קל להבין. זה המשתמש הראשון שלנו ב-Redmine, אנחנו נשתמש ב-for the first keer in the loggen.

כאשר Redmine מותקן, אתה יכול לקבל גישה למשתמש הזה להגדרת ההתקנה שלך.


מסד נתונים PostgreSQL

סטנדרטי מחייב את התקנת ה-Helm שלנו שתתבצע ב-Mariadb-database. אנו נשתמש בהגדרה של ההתקנה שלנו כדי להשתמש ב-PostgreSQL. אתה צריך גם להוסיף את הסיסמה הטובה ביותר כדי לקבל את מסד הנתונים הזה, כמו שאתה יכול לראות למטה.

מסד נתונים: postgresql

מריאדב:

  מופעל: שקר

postgresql:

  מופעל: נכון

  postgresql בסיס נתונים: Redmine

  postgresql שם משתמש: Redmine

  postgresqlPassword:

אנחנו צריכים להסביר את ההתקנה שלנו שאנחנו לא רוצים את MariaDB יחד עם ההגדרה של מסד הנתונים PostgreSQL מותקן.


הגדרת שמות DNS

הקונפיגורציה שלהלן היא חלק אחר של קונפיגורציית ה-DNS של חלק 1 שנעשה. כמו שאתה יכול לראות, schakelן אנחנו TLS, פרוטוקול אחר HTTPS, ומציבים את המארחים שלנו בשימוש בו נעשה שימוש ב-DNS-record שלנו:

חודר:

  מופעל: נכון

  certManager: נכון

  שם מארח: redminek8s.ddns.net

  tls: נכון

  הערות:

    kubernetes.io/ingress.class: nginx

    cert-manager.io/cluster-issuer: letsencrypt

גם בשתי התקנות האחרונות, אנחנו באפליקציה שלנו עם בקר Ingress ועם מנפיק אשכולות שהיינו קודם לכן.

אנחנו יכולים ליישם את Redmine עם ההגדרה המותאמת שלנו:

ההגה התקן Redmine -f Values.yaml bitnami / redmine

השגרה היא דומה עם תקנות התקן אחרות שהיינו קודם לכן, אבל אנחנו מספקים ערכים מותאמים. זה אופייני לכל יישום של Helm.

אנחנו לא צריכים מה להתנדב, כי אנחנו עושים את היישום של זמן קצר ב-Beslag לוקח. אתה יכול לבצע פקודות על הסטטוס של מיכלי האפליקציה שלך כדי לבדוק:

קבל תרמילים - שעון

Het commando נותן משהו סוגים חוזרים גם:

שם מוכנה סטטוס אתחול מחדש גיל

. . .

redmine-999c68dd9-x7h2k    1/1     Running   0          6m40s

redmine-postgresql-0 1/1 רץ 0 6m40s

אתה צריך להמתין עד הסטטוס של שני המכולות. הריצה היא כמעט 1/1, מה קורה בערך 6 דקות.

Nu is alles klaar om de browser te openen en naar our new implementatie te gaan:

Redmine מוכן


סִיוּם

Kubernetes הוא כלי מורכב עבור יישומים ליישם, אבל יש לנו דלת מורכבות מנווטת בעזרת של Helm (כל מילות מפתח מיועדות) והתקנה בטוחה של Redmine.

אתה יכול למצוא סיכום של המדריך הבא ב-git-repo: https://github.com/lcofre/redmine-on-k8s. Vergelijk gerust met uw bestanden als u vastloopt.

יש לנו כמה מושגים מחוץ לדיונים הלכתיים בגלל שהקומפלקסים היו מוצקים במיוחד עבור ענן. להלן ניתן לראות את Liveness ו-Readiness של האפליקציה שלך, להגדיר הודעות דוא"ל מצטברות ולהתעדכן על יותר עוצמה. שלח לנו למטה לדעת היכן אתה הכי מתעניין, כך שנוכל להתקשר בעתיד.

השדרוג הסופי של Redmine? Makkelijk.

צור כלים חזקים לתכנון פרויקט מושלם, ניהול ושליטה בתוכנה אחת.

נסה את Easy Redmine 30 ימים בחינם

פונקציות מלאות, SSL-beveiligd, גיבויים יומיומיים, במיקום הגיאוגרפי שלך