Redmine ב-Kubernetes - 2: התקנת Redmine
זהו החלק השני מהסדרה על הפצת Redmine ל-Kubernetes. במאמר זה, נספק הוראות על איך להפיק התקנה אמינה של Redmine.
Αρίθμηση Μέρος 1
Μέχρι τώρα πρέπει να περιμένετε την εγκατάσταση του Redmine στο Kubernetes. Σε τελική ανάλυση, για αυτό ήρθες, έτσι;
In Redmine in Kubernetes - Μέρος 1: Προετοιμασία περιβάλλοντος, εγκαταστήσαμε τον ελεγκτή εισόδου, ένα στοιχείο για την ανακατεύθυνση αιτημάτων διαδικτύου μέσα στο σύμπλεγμα σας και δημιουργήσαμε έναν τομέα DNS, τον redminek8s.ddns.net. Τώρα χρειάζεται μόνο να διαμορφώσουμε το HTTPS και είμαστε έτοιμοι να αναπτύξουμε το Redmine.
HTTPS με διαχειριστή πιστοποιητικών
Παρόλο που θα μπορούσαμε να διατηρήσουμε το Redmine ως HTTP, το HTTPS έχει γίνει το πρότυπο για ιστότοπους, τόσο που τα περισσότερα προγράμματα περιήγησης να σας προειδοποιούν για ένα ζήτημα ασφαλείας όταν το HTTPS δεν χρησιμοποιείται από έναν ιστότοπο.
Συνήθως η ενεργοποίηση του HTTPS δεν είναι μια ασήμαντη εργασία, καθώς πρέπει να αγοράσετε ένα πιστοποιητικό και να το ανεβάσετε στον ιστότοπό σας, να το ανανεώσετε μετά από ορισμένο χρονικό διάστημα και να επαναλάβετε τη διαδικασία. Το Cert-manager αυτοματοποιεί όλα αυτά, συμπεριλαμβανομένης της ανανέωσης των πιστοποιητικών, και μάλιστα αποκτά δωρεάν πιστοποιητικά. Μπορείτε να δείτε περισσότερες πληροφορίες για Την περιοχή τους, αλλά θα σας εξηγήσω όλα όσα πρέπει να γνωρίζετε στη συνέχεια.
Εγκατάσταση πιστοποιητικού διαχειριστή
Εκτελέστε τα ακόλουθα βήματα για να εγκαταστήσετε το cert-manager στο σύμπλεγμα:
τιμόνι repo προσθέστε jetstack https://charts.jetstack.io && helm repo ενημέρωση
helm install cert-manager jetstack / cert-manager - set installCRDs = true
Πρώτα προσθέτετε το αποθετήριο όπου είναι το cert-manager και, στη συνέχεια, εγκαθιστάτε την πιο πρόσφατη έκδοση.
Συνδεθείτε στην αρχή έκδοσης πιστοποιητικών
Τώρα πρέπει να δώσουμε εντολή στον διαχειριστή πιστοποιητικών να συνδεθεί στον πάροχο πιστοποιητικών της επιλογής μας. Θα χρησιμοποιήσουμε το LetsEncrypt, μια δωρεάν αρχή έκδοσης πιστοποιητικών. Δημιουργήστε πρώτα αυτό το αρχείο (θυμηθείτε να το αντικαταστήσετε με πραγματική διεύθυνση email) και ονομάστε το cluster-issuer.yaml
apiVersion: cert-manager.io/v1alpha2
είδος: ClusterIssuer
μεταδεδομένα:
όνομα: letsencrypt
προδιαγραφή:
ακμή:
υπηρέτης: https://acme-v02.api.letsencrypt.org/directory
ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ:
privateKeySecretRef:
όνομα: letsencrypt
επιλυτές:
- http01:
είσοδος:
τάξη: nginx
Στη συνέχεια, εφαρμόστε το στο σύμπλεγμα σας με
kubectl apply -f cluster -issuer.yaml
Συγχαρητήρια! Το παραπάνω αρχείο είναι η πρώτη διαμόρφωση kubernetes που γράφουμε και εφαρμόζουμε στο σύμπλεγμα. Μπορεί να έχετε παρατηρήσει ότι δείχνει πώς να συνδεθείτε με το LetsEncrypt, αλλά περιγράφει επίσης τον Επεξεργαστή εισόδου που δημιουργήσαμε στο Μέρος 1 (Η κλάση: nginx στο τέλος) Αυτός ο τύπος διαμόρφωσης έχει μερικές γραμμές με κενά για να υποδείξει την εξάρτηση ορισμένων ιδιοτήτων από οι υπολοιποι. Διατηρήστε αυτούς τους χώρους όπως φαίνεται για να διασφαλίσετε ότι το αρχείο διαβάζεται και εφαρμόζεται σωστά.
Τώρα το σύμπλεγμα σας είναι ενεργοποιημένο HTTPS. Κάθε φορά που εγκαθιστούμε μια εφαρμογή, μπορούμε να την καθοδηγήσουμε να λειτουργεί με HTTPS και voilà! Η όλη διαδικασία λήψης του πιστοποιητικού θα γίνει αυτόματα πίσω από τα παρασκήνια.
Εγκατάσταση Redmine
Αυτό περιμέναμε όλοι. Μπορούμε να εγκαταστήσουμε το Redmine με διάφορους τρόπους, αλλά μακράν το πιο βολικό είναι να χρησιμοποιήσετε το Helm. Όπως έχουμε ήδη κάνει, πρώτα προσθέτουμε το αποθετήριο ήταν το Redmine is
helm repo προσθέστε bitnami https://charts.bitnami.com/bitnami && helm repo ενημέρωση
Αλλά αυτή τη φορά αντί να εγκαταστήσουμε αμέσως θα δημιουργήσουμε ένα αρχείο διαμόρφωσης, για να δείξουμε κάποια προσαρμοσμένη συμπεριφορά που θέλουμε να έχει το Redmine.
Θα διαχωρίσουμε όλες τις διαμορφώσεις στη δική τους ενότητα, αλλά τις βάζετε όλες στο ίδιο αρχείο, το ένα μετά το άλλο. Καλέστε το αρχείο values.yaml.
Όλες οι εφαρμογές Helm έχουν ένα αρχείο names.yaml με όλες τις πιθανές διαμορφώσεις που μπορούν να γίνουν στην εφαρμογή. Όταν δημιουργούμε τις δικές μας τιμές.yaml καθορίζουμε τις αλλαγές που θέλουμε. Οποιαδήποτε τιμή δεν συμπεριλαμβάνουμε στο αρχείο μας θα παραμείνει όπως είναι στο προεπιλεγμένο αρχείο.
Όλες οι προεπιλεγμένες τιμές μπορούν επίσης να βρεθούν στη σελίδα εφαρμογής τιμονιού, https://hub.helm.sh/charts/bitnami/redmine. Προχωρήστε και ελέγξτε όλες τις διαμορφώσεις.
Πρώτος χρήστης διαχειριστή
RedmineUsername: adminUser
RedminePassword:
Αυτό το βήμα είναι εξίσου απαραίτητο και κατανοητό. Είναι ο πρώτος μας χρήστης στο Redmine, αυτός που θα χρησιμοποιήσουμε για να συνδεθούμε για πρώτη φορά.
Όταν εγκατασταθεί το Redmine θα μπορείτε να έχετε πρόσβαση σε αυτόν με αυτόν τον χρήστη για να διαμορφώσετε την ολοκαίνουργια εγκατάσταση.
Βάση δεδομένων PostgreSQL
Από προεπιλογή, η εγκατάσταση Helm απαιτεί τη δημιουργία βάσης δεδομένων mariadb. Αντ 'αυτού θα ρυθμίσουμε την εγκατάστασή μας για να χρησιμοποιήσουμε το PostgreSQL. Πρέπει επίσης να προσθέσετε τουλάχιστον έναν κωδικό πρόσβασης για πρόσβαση σε αυτήν τη βάση δεδομένων, όπως μπορείτε να δείτε παρακάτω
Τύπος βάσης δεδομένων: postgresql
mariadb:
ενεργοποιημένο: false
postgresql:
ενεργοποιημένο: true
postgresql Βάση δεδομένων: Redmine
postgresql Όνομα χρήστη: Redmine
postgresql Κωδικός πρόσβασης:
Πρέπει να πούμε ρητά στην εγκατάστασή μας ότι δεν θέλουμε να εγκατασταθεί το MariaDB μαζί με τις ρυθμίσεις παραμέτρων για τη βάση δεδομένων PostgreSQL.
Διαμόρφωση ονόματος DNS
Η παρακάτω διαμόρφωση είναι η άλλη πλευρά της διαμόρφωσης DNS που κάναμε στο Μέρος 1. Όπως μπορείτε να δείτε, ενεργοποιούμε το TLS, το πρωτόκολλο πίσω από το HTTPS και ορίσαμε το όνομα κεντρικού υπολογιστή που χρησιμοποιήσαμε κατά τη δημιουργία της εγγραφής DNS:
είσοδος:
ενεργοποιημένο: true
certManager: αλήθεια
όνομα κεντρικού υπολογιστή: redminek8s.ddns.net
tls: αλήθεια
σχολιασμοί:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt
Επίσης στις δύο τελευταίες γραμμές συνδέουμε την εφαρμογή μας με το Ingress Controller και με το Cluster Issuer που δημιουργήσαμε προηγουμένως.
Τώρα μπορούμε να αναπτύξουμε το Redmine με την προσαρμοσμένη διαμόρφωση:
helm εγκαταστήστε Redmine -f Values.yaml bitnami / redmine
Αυτή η γραμμή είναι παρόμοια με άλλες γραμμές εγκατάστασης τιμονιού που χρησιμοποιήσαμε στο παρελθόν, αλλά αυτή τη φορά παρέχουμε προσαρμοσμένες τιμές. Αυτός είναι ο τρόπος για να προσαρμόσετε οποιαδήποτε εφαρμογή Helm.
Χρειαζόμαστε ακόμη περισσότερη υπομονή, καθώς η δημιουργία της εφαρμογής απαιτεί λίγο χρόνο. Μπορείτε να εκτελέσετε αυτήν την εντολή για να ελέγξετε την κατάσταση των κοντέινερ της εφαρμογής σας:
kubectl πάρτε λοβό - ρολόι
Η εντολή θα επιστρέψει κάτι παρόμοιο με αυτό:
ΟΝΟΜΑ ΕΤΟΙΜΟΙ ΚΑΤΑΣΤΑΣΕΙΣ ΕΠΑΝΑΦΟΡΑ ΗΛΙΚΙΑΣ
. . .
redmine-999c68dd9-x7h2k 1/1 Running 0 6m40s
redmine-postgresql-0 1/1 Τρέξιμο 0 6m40s
Πρέπει να περιμένετε μέχρι να τρέξει η κατάσταση και για τα δύο κοντέινερ και όλα να είναι έτοιμα 1/1, το οποίο στην περίπτωσή μου χρειάστηκε περίπου 6 λεπτά.
Τώρα όλοι είναι έτοιμοι να ανοίξουν το πρόγραμμα περιήγησης και να μεταβούν στη νέα μας ανάπτυξη:
Το Redmine είναι έτοιμο
Ολοκληρώνοντας
Το Kubernetes είναι ένα σύνθετο εργαλείο για την ανάπτυξη εφαρμογών, αλλά περάσαμε από αυτήν την πολυπλοκότητα με τη βοήθεια του Helm (χωρίς πρόβλεψη) και αναπτύξαμε μια αξιόπιστη εγκατάσταση του Redmine.
Μπορείτε να βρείτε μια σύνοψη αυτού του οδηγού στο ακόλουθο git repo: https://github.com/lcofre/redmine-on-k8s. Μη διστάσετε να συγκρίνετε με τα αρχεία σας εάν κολλήσετε.
Αφήσαμε κάποιες έννοιες εκτός συζήτησης επειδή ήταν περίπλοκες ή η εξήγηση ήταν συγκεκριμένη για το σύννεφο. Μεταξύ αυτών είναι η ζωντάνια και η ετοιμότητα της εφαρμογής σας, η διαμόρφωση εισερχόμενων μηνυμάτων και η κλιμάκωση για χειρισμό περισσότερου φορτίου. Ενημερώστε μας παρακάτω τι σας ενδιαφέρει περισσότερο, ώστε να το συζητήσουμε στο μέλλον.
השדרוג המוחלט של Redmine; קל.
קבל את כל הכלים החזקים לתכנון, ניהול ובקרה מושלמים בתוך תוכאך.