en
Γλώσσα
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
Μετάφραση AI
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

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

6/22/2020
6 λεπτά
Λούκα Μπέγια

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

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

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

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


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

Το Kubernetes είναι ένα πολύπλοκο εργαλείο για ενορχήστρωση εμπορευματοκιβωτίων. Υπάρχουν πολλές έννοιες που πρέπει να μάθουμε για να ξεκινήσουμε. Ευτυχώς για εμάς υπάρχει ένα έργο που ονομάζεται Πηδάλιο που παρέχει το επίπεδο αφαίρεσης που χρειαζόμαστε. Με τα δικά τους λόγια «Αν κάναμε τα πράγματα σωστά, οι χρήστες θα μπορούσαν να εγκαταστήσουν το Helm και, στη συνέχεια, μέσα σε λίγα λεπτά να εγκαταστήσουν εξαρτήματα εκτός παραγωγής από την ποιότητα»

Αφήνοντας στην άκρη τους λόγους για τα ονόματά τους (όλα αφηγούνται την ιστορία μιας μεταφοράς, Helm, Kubernetes και Containers) απλοποιεί πραγματικά την εγκατάσταση επιτρέποντας παράλληλα χώρο να προσαρμόσει το στοιχείο στις ανάγκες μας. Θα χρησιμοποιήσουμε το Helm 3, την πιο πρόσφατη και ακόμη πιο απλή τους έκδοση.

Εάν χρησιμοποιείτε το κέλυφος cloud του παροχέα cloud, είναι πιθανό το Helm 3 να είναι ήδη διαθέσιμο, αλλά αν όχι μπορείτε να το εγκαταστήσετε ακολουθώντας τον οδηγό που παρέχουν τα έγγραφα Helm, helm.sh/docs/intro/install/. Θα πρέπει να συνδεθείτε έχετε ήδη πρόσβαση στο σύμπλεγμα από τη γραμμή εντολών που χρησιμοποιείτε. Ο πάροχός σας cloud διαθέτει έναν οδηγό για το πώς να το κάνετε και αυτό.


Εγκαταστήστε τον Ελεγκτή εισόδου

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

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

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

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

Η πρώτη εντολή προσθέτει το αποθετήριο εφαρμογών όπου βρίσκεται ο ελεγκτής εισόδου, ενώ η δεύτερη την εγκαθιστά στο σύμπλεγμα. Όταν τελειώσετε, η εντολή θα εκτυπώσει κάποιες πληροφορίες για να ξεκινήσετε, συμπεριλαμβανομένου του τρόπου λήψης η δημόσια 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 ώρες

Σημειώστε το ΕΞΩΤΕΡΙΚΟ IP καθώς θα το χρειαζόμαστε στο επόμενο βήμα. Θα μπορούσε να συμβεί, αντί για μια IP, η τιμή που έχετε εκεί . Χρειάζεται λίγο χρόνο για το σύννεφο για να αποκτήσετε μια δημόσια IP και να την αντιστοιχίσετε στο σύμπλεγμα. Περιμένετε λίγα ακόμη δευτερόλεπτα και το IP πρέπει να είναι διαθέσιμο.


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

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

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

Δημιουργία του DNS A Record

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

Χρειάζεται λίγος χρόνος για τη διάδοση της νέας εγγραφής, οπότε μπορείτε να χρησιμοποιήσετε το ping για να ελέγξετε πότε η IP επιλύεται σωστά:

ping redminek8s.ddns.net


Τα επόμενα βήματα

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

Μείνετε συντονισμένοι για Redmine στο Kubernetes Μέρος 2: Εγκατάσταση του Redmine.

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

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

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

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