Redmine στο Kubernetes - Μέρος 1: Προετοιμασία Περιβάλλοντος

6/22/2020
5 λεπτά
Λουκάς Μπένα

Σε αυτήν τη διμερή σειρά, θα εγκαταστήσουμε το Redmine στο Kubernetes. Θα χρησιμοποιήσουμε συνιστώμενα εργαλεία και πρακτικές με στόχο την εγκατάσταση ενός ανθεκτικού παραδείγματος του Redmine μέσω HTTPS.

Χωρίσαμε αυτό το πώς-να σε δύο μέρη για να επικεντρωθούμε πρώτα στην εγκατάσταση των εργείων και των στοιχείων που θα κάνουμε την ανάπτυξη του Redmin. Αλλά μην ανησυχείτε για την πολυπλοκότητα. Ακόμα κι αν είστε νέος στο Kubernetes, θα είναι μια κατανοητή εξήγηση.

Αυτός ο οδηγός γράφτηκε για να είναι ανεξάρτητος από τον πάροχο νέφους, γι 'αυτό παραλείψαμε επίτηδες όλες τις αναφορές στο νέφος που χρησιμοποιήσαμε. Αφήστε ένα σχόλιο αν μπορείτε να μαντέψετε το νέφος που χρησιμοποιήσαμε και πείτε μας ποια λεπτομέρεια το αποκάλυψε. Σας συνιστούμε να χρησιμοποιήσετε την υπηρεσία Kubernetes που προσφέρει το νέφος σας, καθώς είναι ενσωματωμένη με άλλες υπηρεσίες που παρέχει επίσης το νέφος σας.

Περιβάλλοντα όπως το microk8s ή το minikube δεν λαμβάνονται υπόψη εδώ, καθώς απαιτούνται ορισμένες περισσότερες ρυθμίσεις που βρίσκονται εκτός του πεδίου αυτού του οδηγού. Ειδικότερα, η ρύθμιση HTTPS μας απαιτείται η συστάδα μας να έχει δημόσια IP.


Ας χρησιμοποιήσουμε το Helm

Το Kubernetes είναι ένα πολύπλοκο εργαλείο για την οργάνωση των εμπορευματοκιβωτίων. Υπάρχουν πολλές έννοιες που πρέπει να μάθουμε για να ξεκινήσουμε. Ευτυχώς για εμάς, υπάρχει ένα έργο που ονομάζετε

Εγκαταστήστε τον ελεγκτή Ingress

Αυτό είναι το πρώτο στοιχείο που θα εγκατασταθεί στη συστάδα μας και είναι επίσης η πρώτη έννοια του Kubernetes που θα δούμε. Ένας ελεγκτής Ingress βρίσκεται στην είσοδο της συστάδας σας, λαμβάνει όλα τα αιτήματα του ιστού και τα ανακατευθύνει στο στοιχείο που είναι υπεύθυνο για την απάντηση στο αίτημα. Αρχικά, δεν υπάρχει κανείς έτοιμος να απαντήσει, αλλά όταν εγκαταστήσουμε το Redmine, θα προστεθεί ως προορισμός για τα αιτήματα.

Το Kubernetes παρέχει τον ελεγκτή Ingress NGINX που θα χρησιμοποιήσουμε. Η τεκμηρίωσή τους εξηγεί πώς να εγκαταστήσετε χρησιμοποιώντας το Helm:

τιμόνι repo προσθέστε ingress-nginx https://kubernetes.github.io/ingress-nginx && helm repo ενημέρωση

τιμόνι εγκαθιστώστε το ingress-controller ingress-nginx / ingress-nginx

Η πρώτη εντολή προσθέτει το αποθετήριο των εφαρμογών όπου βρίσκεται ο ελεγκτής Ingress, ενώ η δεύτερη τον εγκαθιστά στη συστάδα σας. Όταν ολοκληρωθεί, η εντολή θα εκτυπώσει μερικές πληροφορίες για να ξεκινήσετε, συμπεριλαμβανομένου του τρόπου να αποκτήσετε τη δημόσια IP που έχει ανατεθεί στον ελεγκτή:

kubectl get υπηρεσίες --watch

Το αποτέλεσμα θα είναι κάτι παρόμοιο με αυτό:

ΟΝΟΜΑ ΤΥΠΟΣ CLUSTER-IP ΕΞΩΤΕΡΙΚΗ Θύρα IP (Η) ΗΛΙΚΙΑΣ

nginx-controller LoadBalancer 10.0.115.117 89.68.23.33 80 / TCP, 443 / TCP 5m22s

ClusterIP ελεγκτή-εισαγωγής 10.0.135.226 443 / TCP 5m22s

kubernetes ClusterIP 10.0.0.1 443 / TCP 44 ώρες

Σημειώστε την EXTERNAL-IP καθώς θα χρειαστούμε στο επόμενο βήμα. Μπορεί να συμβεί να λάβετε την τιμή αντί για μια διεύθυνση IP. Χρειάζεται λίγος χρόνος για να λάβει ο πάροχος υπηρεσιών στο δημόσιο IP και να το αναθέσει στη συστάδα σας. Απλά περιμένετε λίγα δευτερόλεπτα ακόμα και η IP θα είναι διαθέσιμη.


Δημιουργία εγγραφής DNS A

Τώρα που έχετε την IP, μπορείτε απλά να πάτε σε έναν περιηγητή και να δείτε πώς να απαντήσετε στη συστάδα σας. Φυσικά, καθώς δεν έχει εγκατασταθεί ακόμα καμία εφαρμογή, η συστάδα σας θα απαντήσει με ένα σφάλμα "404 Not Found". Θα δημιουργήσουμε έναν τομέα DNS που μπορούμε να συσχετίσουμε με αυτήν την IP, πιθανώς πιο εύκολο να θυμάστε από μια λίστα αριθμών και τελείες.

Ο τρόπος δημιουργίας ενός διαδικτυακού τομέα για το Redmine σας εξαρτάται σε μεγάλο βαθμό από τον πάροχο του τομέα σας, αλλά σε όλες τις περιπτώσεις, καταλήγετε να δημιουργήσετε μια εγγραφή DNS A που συνδέει ένα όνομα τομέα με την IP σας. Δείτε ως αναφορά τον παρακάτω στιγμιότυπο οθόνης από τον πάροχο DNS no-ip.com.

Δημιουργία της εγγραφής DNS A μας

Τα δεδομένα που πρέπει να συμπληρώσετε, όπως θα περιμένατε, είναι το όνομα DNS και η IP. Το No-IP είναι ακριβώς αυτό που χρειαζόμαστε για να κάνουμε έναν τομέα, αλλά πιθανώς να δημιουργήσουμε έναν διαφορετικό πάροχο DNS. Η διαδικασία είναι αρκετά παρόμοια σε όλους αυτούς.

Απαιτείται κάποιος χρόνος για τη διάδοση της νέας εγγραφής, οπότε μπορ

Η απόλυτη αναβάθμιση του Redmine; Ευκολη.

Αποκτήστε όλα τα ισχυρά εργαλεία για τον τέλειο σχεδιασμό, διαχείριση και έλεγχο των έργων σε ένα λογισμικό.

Δοκιμάστε το Easy Redmine σε δωρεάν δοκιμαστική περίοδο 30 ημερών

Πλήρεις λειτουργίες, προστασία SSL, καθημερινά αντίγραφα ασφαλείας, στην τοποθεσία σας