Kubernetes είναι πλέον ο τυπικός τρόπος για την ανάπτυξη εφαρμογών που είναι επεκτάσιμες και έχουν υψηλή διαθεσιμότητα. Το Kubernetes επιτρέπει στους προγραμματιστές να ενεργοποιούν και να απενεργοποιούν γρήγορα στιγμιότυπα όπως απαιτείται για να διασφαλίσουν την ομαλή παράδοση περιεχομένου. Για να μάθετε περισσότερα σχετικά με το Kubernetes, ακολουθήστε τον λεπτομερή οδηγό μας Γνωρίζοντας το Kubernetes.
Helm είναι ένας πολύ δημοφιλής διαχειριστής πακέτων που χρησιμοποιείται για την εγκατάσταση εφαρμογών στο Kubernetes. Το Helm στοχεύει στην ανάπτυξη και διαχείριση εφαρμογών σε συμπλέγματα Kubernetes και στην απλοποίηση της διαδικασίας στην πορεία. Παρέχει επίσης πρόσβαση σε έτοιμες προς χρήση εφαρμογές για το Kubernetes που είναι συσκευασμένες. Αυτές ονομάζονται Charts. Η εξοικείωση με το Kubernetes και το Helm είναι μια σημαντική προσθήκη στο οπλοστάσιο κάθε ειδικού DevOps.
WordPress είναι ένα από τα πιο δημοφιλή συστήματα διαχείρισης περιεχομένου (CMS). Ο συνδυασμός του με τη MySQL βάση δεδομένων οδηγεί σε υψηλή απόδοση και εξαιρετικά επεκτάσιμες εφαρμογές ιστού. Η διατήρηση της MySQL εξωτερικά θα επιτρέψει επίσης σε περισσότερες εφαρμογές να αξιοποιήσουν την ίδια βάση δεδομένων για τις δικές τους περιπτώσεις χρήσης.
Σε αυτήν την ανάρτηση, εμείς θα εγκαταστήσουμε το WordPress στο Kubernetes χρησιμοποιώντας τον διαχειριστή πακέτων Helm και θα τα συνδέσουμε σε έναν εξωτερικό διακομιστή MySQL. Ας ξεκινήσουμε!
Προαπαιτούμενα
Η ακόλουθη ρύθμιση λογισμικού θα απαιτηθεί για την επιτυχή ολοκλήρωση αυτού του οδηγού:
- Ένα ενεργό και σε λειτουργία σύμπλεγμα Kubernetes. Ακολουθήστε αυτόν τον οδηγό για τα βήματα εγκατάστασης του Kubernetes σε Ubuntu.
- Το εργαλείο γραμμής εντολών του Kubernetes
kubectl. - Θα χρειαστείτε εγκατεστημένο τον διαχειριστή πακέτων Helm. Εάν δεν έχετε έτοιμο το Helm για χρήση, μπορείτε να το κατεβάσετε από την επίσημη σελίδα κυκλοφορίας του στο GitHub – helm/helm: The Kubernetes Package Manager. Για να ξεκινήσετε με έναν οδηγό βήμα προς βήμα για το Helm, μπορείτε επίσης να διαβάσετε το Introduction to Helm: Package Manager for Kubernetes.
- Θα πρέπει να έχετε εγκατεστημένη τη MySQL μαζί με τον χρήστη root και τον κωδικό πρόσβασης. Εάν είστε νέος στη MySQL, φροντίστε να δείτε το Πώς να ρυθμίσετε τη MySQL σε έναν διακομιστή και τα βασικά της MySQL και το MySQL User – Create and Grant Permissions.
Πρέπει επίσης να έχετε ένα ενεργό σύμπλεγμα Kubernetes συνδεδεμένο με τη MySQL. Για χρήστες που έχουν πολλαπλά συμπλέγματα, βεβαιωθείτε ότι γνωρίζετε το τρέχον σύμπλεγμα που είναι συνδεδεμένο με τη MySQL. Για να δείτε όλα τα διαφορετικά συμπλέγματα που έχουν ρυθμιστεί στο αρχείο ρυθμίσεων kubectl, εκτελέστε την παρακάτω εντολή:
|
1 |
kubectl config get-contexts |
Στο μηχάνημά σας, θα πρέπει να λάβετε το παρακάτω αποτέλεσμα:
|
Current |
Name |
Cluster |
AuthInfo |
Namespace |
|
* |
docker-desktop |
docker-desktop |
docker-desktop |
Εφόσον χρησιμοποιούμε το Docker Desktop για την εκτέλεση του Kubernetes, βλέπετε να εμφανίζεται το docker-desktop. Οι τιμές σας ενδέχεται να διαφέρουν. Το σύμβολο του αστερίσκου (*) υποδεικνύει ποιο σύμπλεγμα είναι αυτήν τη στιγμή το προεπιλεγμένο πλαίσιο (context). Σε περίπτωση που χρειαστεί να αλλάξετε το τρέχον πλαίσιο, εκτελέστε:
|
1 |
kubectl config use-context context-name |
Είστε πλέον έτοιμοι να ακολουθήσετε τα βήματα του οδηγού.
Setting Up MySQL
Αρχικά, θα δημιουργήσουμε έναν αποκλειστικό χρήστη στη MySQL για να συνδεθεί στο WordPress. Αυτό είναι απαραίτητο επειδή η εγκατάσταση του WordPress θα βρίσκεται σε ξεχωριστό διακομιστή μέσα στο σύμπλεγμα Kubernetes. Από τον διακομιστή MySQL, συνδεθείτε στη MySQL με την ακόλουθη εντολή:
|
1 |
mysql -u root -p |
Θα σας ζητηθεί ο κωδικός πρόσβασης root. Εισαγάγετε τον κωδικό πρόσβασης και θα συνδεθείτε.
-
Δημιουργία αποκλειστικής βάσης δεδομένων για το WordPress
Στη MySQL μπορεί να υπάρχει οποιοσδήποτε αριθμός βάσεων δεδομένων. Επιπλέον βάσεις δεδομένων μπορούν επίσης να κοινοποιηθούν μεταξύ εφαρμογών. Το WordPress συνοδεύεται επίσης από τη δική του βάση δεδομένων. Εδώ πρέπει να δημιουργήσουμε μια αποκλειστική βάση δεδομένων για το WordPress. Για να δημιουργήσετε αυτήν την αποκλειστική βάση δεδομένων, μπορείτε να εκτελέσετε την παρακάτω δήλωση στο bash της MySQL:
|
1 |
CREATE DATABASE wordpress |
-
Δημιουργία αποκλειστικού χρήστη για το WordPress
Μετά τη δημιουργία της βάσης δεδομένων, θα δημιουργήσουμε έναν αποκλειστικό χρήστη για αυτήν τη βάση δεδομένων. Θα χρησιμοποιήσουμε αυτόν τον χρήστη για να συνδεθούμε στη νεοσύστατη βάση δεδομένων μας:
|
1 |
CREATE USER wordpress_user IDENTIFIED BY '<password>'; |
Εισαγάγετε έναν ισχυρό κωδικό πρόσβασης παραπάνω. Παρόλο που έχουμε δημιουργήσει τον χρήστη για το WordPress, δεν έχουμε προσθέσει δικαιώματα μέχρι στιγμής. Πρέπει να παρέχουμε δικαιώματα στους χρήστες μας για πρόσβαση και λειτουργίες DML (Data Manipulation). Για να κρατήσουμε τα πράγματα απλά, θα παρέχουμε στους χρήστες μας όλα τα δικαιώματα. Προσοχή, αυτό δεν συνιστάται σε περιβάλλον Παραγωγής. Εκτελέστε την παρακάτω εντολή στο κέλυφος της MySQL:
|
1 |
GRANT ALL PRIVILEGES ON wordpress.* TO wordpress_user@'%'; |
Για να ενημερώσετε τους εσωτερικούς πίνακες της MySQL που διαχειρίζονται τα δικαιώματα πρόσβασης, χρησιμοποιήστε την ακόλουθη δήλωση:
|
1 |
FLUSH PRIVILEGES; |
Τέλος, μπορείτε να κλείσετε τον πελάτη MySQL εκτελώντας την παρακάτω εντολή στο κέλυφος της MySQL:
|
1 |
Exit; |
-
Επαλήθευση του χρήστη και της βάσης δεδομένων μας
Στη συνέχεια, πρέπει να επαληθεύσουμε ότι ο WordPress χρήστης μας μπορεί να συνδεθεί στη βάση δεδομένων WordPress. Για να το κάνετε αυτό, ανοίξτε το κέλυφος της MySQL και εκτελέστε την παρακάτω εντολή:
|
1 |
mysql -u <wordpress_user> -p |
|
1 |
show databases |
-
Επιτρέποντας απομακρυσμένες συνδέσεις στον διακομιστή MySQL μας
Μέχρι τώρα, έχουμε έναν λειτουργικό χρήστη WordPress και μια βάση δεδομένων WordPress. Ωστόσο, ο διακομιστής MySQL και η βάση δεδομένων WordPress βρίσκονται σε ξεχωριστούς διακομιστές. Επομένως, πρέπει να διασφαλίσουμε ότι το WordPress μπορεί να συνδεθεί στη βάση δεδομένων MySQL. Για αυτό, πρέπει να επεξεργαστούμε τις ρυθμίσεις της MySQL για να επιτρέψουμε συνδέσεις που προέρχονται από απομακρυσμένους κεντρικούς υπολογιστές. Θα χρειαστεί να επεξεργαστείτε το αρχείο mysqld.cnf αρχείο. Σε συστήματα που βασίζονται στο Linux, αυτό το αρχείο βρίσκεται κάτω από το:
|
1 |
/etc/mysql/mysql.conf.d/mysqld.cnf |
Μετά από αυτό, ανοίξτε το αρχείο χρησιμοποιώντας οποιονδήποτε επεξεργαστή κειμένου και εντοπίστε το bind-address. Το bind-address καθορίζει την IP στην οποία μπορεί να ακούει η MySQL. Από προεπιλογή, η MySQL ακούει μόνο στο 127.0.0.1.. Για να επιτρέψετε συνδέσεις από εξωτερικούς κεντρικούς υπολογιστές, αλλάξτε το bind-address σε 0.0.0.0.. Για να εφαρμοστούν αυτές οι αλλαγές, επανεκκινήστε τον διακομιστή MySQL εκτελώντας την παρακάτω εντολή:
|
1 |
systemctl restart mysql |
|
1 |
mysql -h <mysql_server_ip> -u wordpress_user -p |
mysql_server_ip στην παρακάτω εντολή και εκτελέστε την. Εάν μπορείτε να συνδεθείτε χωρίς σφάλματα, μπορείτε να προχωρήσετε.
Εγκατάσταση και αναβάθμιση του WordPress
Το WordPress από προεπιλογή χρησιμοποιεί τη MariaDB ως βάση δεδομένων του. Δεν θέλουμε να χρησιμοποιήσουμε αυτήν τη βάση δεδομένων, καθώς θέλουμε τη δική μας βάση δεδομένων MySQL. Μαζί με αυτήν την αλλαγή, πρέπει επίσης να διαμορφώσουμε τον χρήστη διαχειριστή και τον κωδικό πρόσβασης. Θα το κάνουμε αυτό εφαρμόζοντας παραμέτρους γραμμής εντολών.
Αρχικά, δημιουργήστε έναν νέο φάκελο με το όνομα my blog-settings. Μέσα στον φάκελο δημιουργήστε ένα νέο αρχείο με το όνομα values.yaml αρχείο. Εισαγάγετε τα παρακάτω περιεχόμενα στο αρχείο values.yaml αρχείο:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
## WordPress Settings wordpressUsername: my_user wordpressPassword: some_strong_password wordpressEmail: sample@example.com wordpressFirstName: User wordpressLastName: Last wordpressBlogName: My Ιστολόγιο! ## Database Settings externalDatabase: host: <mysql_server_ip> user: wordpress_user password: password database: wordpress ## Enable Maria DB mariadb: enabled: false |
Αυτό το αρχείο είναι αυτονόητο. Παρατηρήστε ότι παρακάτω έχουμε απενεργοποιήσει τη MariaDB. Τώρα που η διαμόρφωσή μας είναι έτοιμη, ήρθε η ώρα να εκτελέσουμε το helm για μια εγκατάσταση WordPress. Εκτελέστε την παρακάτω εντολή στο PowerShell:
|
1 |
helm install myblog -f values.yaml stable/wordpress |
myblog-wordpress. Θα χρειαστεί λίγος χρόνος μέχρι το WordPress να είναι έτοιμο για χρήση. Για να βρείτε τις υπηρεσίες που εκτελούνται, εκτελέστε την παρακάτω εντολή:|
1 |
kubectl get services |
|
NAME |
TYPE |
CLUSTER-IP |
EXTERNAL-IP |
PORT |
|
myblog-wordpress |
ClusterIP |
10.96.0.1 |
<none> |
80:31403/TCP,443:30879/TCP |
Εδώ έχουμε πολύ χρήσιμες πληροφορίες σχετικά με τις υπηρεσίες που εκτελούνται. Πρέπει να δώσουμε προσοχή στην εξωτερική IP και τη θύρα. Η εξωτερική IP είναι η IP στην οποία εξυπηρετείται το WordPress σας. Εφόσον χρησιμοποιούμε το Docker Desktop, λαμβάνουμε none κάτω από το external IP. Θα λάβετε την IP ανάλογα με το σύστημά σας. Ανοίξτε το πρόγραμμα περιήγησης ιστού και εισαγάγετε αυτήν την IP. Θα δείτε τη σελίδα σύνδεσης του WordPress:
Αυτά είναι τα διαπιστευτήρια που έχουμε παράσχει στο παραπάνω αρχείο YAML . Εισαγάγετε αυτά τα διαπιστευτήρια και θα είστε έτοιμοι να διαμορφώσετε τον ιστότοπό σας στο WordPress και να αποθηκεύσετε περιεχόμενο στη νεοδημιουργηθείσα βάση δεδομένων MySQL.
Αναβάθμιση του WordPress
Το WordPress κυκλοφορεί ενημερώσεις για τη διόρθωση ευπαθειών ασφαλείας και τη διάθεση περισσότερων δυνατοτήτων/διορθώσεων σφαλμάτων και άλλων. Μπορείτε να αναβαθμίσετε την εγκατάσταση του WordPress εκτελώντας την παρακάτω εντολή στο PowerShell:
|
1 |
helm upgrade |
Πριν από την αναβάθμιση, εάν θέλετε να δείτε τη λίστα των εκδόσεων, μπορείτε να εκτελέσετε την παρακάτω εντολή:
|
1 |
helm list |
Θα λάβετε το παρακάτω αποτέλεσμα όπως:
|
1 2 3 |
Περιμένετε σταθερά καθώς εμείς λαμβάνουμε τα τελευταία από τα chart αποθετήριά σας… …Παράλειψη τοπικού chart αποθετηρίου …Επιτυχώς λήφθηκε μια ενημέρωση από το “stable” chart αποθετήριο |
Εάν θέλετε να δείτε εάν υπάρχει νέα έκδοση του αποθετηρίου WordPress διαθέσιμη, μπορείτε να εκτελέσετε την παρακάτω εντολή:
|
1 |
helm inspect chart stable/wordpress |
Όποτε θέλετε να αναβαθμίσετε την έκδοση του WordPress σας στο πιο πρόσφατο WordPress chart, θα πρέπει να εκτελέσετε:
|
1 |
helm upgrade -f values.yaml <your_name> stable/wordpress |
Πρέπει να χρησιμοποιήσουμε το ίδιο αρχείο ρυθμίσεων με πριν, ώστε οι τιμές των ρυθμίσεων να μην αλλάξουν.
Επαναφορά μιας έκδοσης
Κάθε φορά που πραγματοποιείτε μια αναβάθμιση χρησιμοποιώντας το Helm, το Helm δημιουργεί ένα σημείο ελέγχου της έκδοσης. Μπορείτε να επιστρέψετε εάν τα πράγματα δεν λειτουργούν όπως αναμένεται. Οι εκδόσεις μπορούν να συγκριθούν και να επαναφερθούν. Εάν η διαδικασία αναβάθμισης πάει στραβά λόγω οποιουδήποτε προβλήματος, μπορείτε να επαναφέρετε την προηγούμενη έκδοση. Για να κάνετε επαναφορά, εκτελέστε την παρακάτω εντολή:
|
1 |
helm rollback release-name revision-number |
Στη δική μας περίπτωση, εκτελέστε την παρακάτω εντολή για να επαναφέρετε την προηγούμενη έκδοση:
|
1 |
helm rollback myblog 1 |
Για να επαληθεύσετε τώρα ότι η διαδικασία επαναφοράς ολοκληρώθηκε με επιτυχία, μπορείτε να εκτελέσετε την εντολή helm list.
Συμπέρασμα
Σε αυτόν τον ολοκληρωμένο οδηγό, σας δείξαμε πώς να εγκαταστήσετε τη MySQL και να εγκαταστήσετε το WordPress με αυτήν την εξωτερική MySQL. Εγκαταστήσαμε το WordPress στο Kubernetes χρησιμοποιώντας τον διαχειριστή πακέτων Helm και επίσης πραγματοποιήσαμε αναβαθμίσεις στο WordPress.
Τώρα που γνωρίζετε την εγκατάσταση στο Kubernetes χρησιμοποιώντας το Helm, μην σταματήσετε εδώ. Μη διστάσετε να περιηγηθείτε στο ιστολόγιο της CloudSigma για να μάθετε περισσότερα σχετικά με το Kubernetes:
- Ανάπτυξη μιας εφαρμογής PHP σε ένα Kubernetes Cluster με Ubuntu 18.04
- Πώς να δημιουργήσετε ένα Kubernetes Cluster χρησιμοποιώντας το Kubeadm στο Ubuntu 18.04
- Τι είναι το Docker; Μια επισκόπηση του οικοσυστήματος του Docker
Καλή υπολογιστική!

Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.