Zurück zum Blog

WordPress mit MySQL auf Kubernetes mit Helm einrichten

WordPress mit MySQL auf Kubernetes mit Helm einrichten

Kubernetes ist heute der Standardweg für die Bereitstellung von Anwendungen, die skalierbar sind und eine hohe Verfügbarkeit aufweisen. Kubernetes ermöglicht es Entwicklern, Instanzen je nach Bedarf schnell hoch- und herunterzufahren, um eine reibungslose Bereitstellung von Inhalten zu gewährleisten. Um mehr über Kubernetes zu erfahren, folgen Sie unserem detaillierten Leitfaden Kubernetes kennenlernen.

Helm ist ein sehr beliebter Paketmanager, der zur Installation von Anwendungen auf Kubernetes verwendet wird. Helm zielt darauf ab, Anwendungen auf Kubernetes-Clustern bereitzustellen und zu verwalten und den Prozess dabei zu vereinfachen. Es bietet auch Zugriff auf gebrauchsfertige Anwendungen für Kubernetes, die paketiert sind. Diese werden als Charts bezeichnet. Die Vertrautheit mit Kubernetes und Helm ist eine wichtige Ergänzung für das Arsenal jedes DevOps-Spezialisten.

WordPress ist eines der beliebtesten Content-Management-Systeme (CMS). Die Kombination mit der MySQL-Datenbank führt zu leistungsstarken und hochskalierbaren Webanwendungen. Die Auslagerung von MySQL ermöglicht es zudem, dass mehr Anwendungen dieselbe Datenbank für ihre Anwendungsfälle nutzen.

In diesem Beitrag werden wir WordPress auf Kubernetes mithilfe des Helm-Paketmanagers installieren und mit einem externen MySQL-Server verbinden. Lassen Sie uns beginnen!

Voraussetzungen

Die folgende Software-Einrichtung wird für den erfolgreichen Abschluss dieses Tutorials benötigt:

  1. Ein betriebsbereiter Kubernetes-Cluster. Folgen Sie dieser Anleitung für die Schritte zur Installation von Kubernetes auf Ubuntu.
  2. Das Kubernetes-Befehlszeilenwerkzeug kubectl.
  3. Sie müssen einen Helm-Paketmanager installiert haben. Wenn Sie Helm noch nicht einsatzbereit haben, können Sie es von der offiziellen Release-Seite auf GitHub – helm/helm: Der Kubernetes-Paketmanager herunterladen. Um mit einer Schritt-für-Schritt-Anleitung für Helm zu beginnen, können Sie auch Einführung in Helm: Paketmanager für Kubernetes.
  4. lesen. Sie müssen MySQL zusammen mit dem Root-Benutzer und dem Passwort installiert haben. Wenn Sie neu bei MySQL sind, sollten Sie sich unbedingt Einrichten von MySQL auf einem Server und MySQL-Grundlagen und MySQL-Benutzer – Erstellen und Berechtigungen erteilen.

ansehen. Sie müssen außerdem einen laufenden Kubernetes-Cluster haben, der mit MySQL verbunden ist. Wenn Sie mehrere Cluster haben, stellen Sie sicher, dass Sie wissen, welcher Cluster derzeit mit MySQL verbunden ist. Um alle verschiedenen Cluster zu sehen, die in Ihrer kubectl-Konfigurationsdatei konfiguriert sind, führen Sie den folgenden Befehl aus:

Auf Ihrem Rechner sollten Sie die folgende Ausgabe erhalten:

Current

Name

Cluster

AuthInfo

Namespace

*

docker-desktop

docker-desktop

docker-desktop

Da wir Docker Desktop zur Ausführung von Kubernetes verwenden, wird docker-desktop angezeigt. Ihre Werte können abweichen. Das Sternchen-Symbol (*) zeigt an, welcher Cluster derzeit der Standardkontext ist. Falls Sie den aktuellen Kontext ändern müssen, führen Sie Folgendes aus:

Sie sind nun bereit, den Schritten des Tutorials zu folgen.

MySQL einrichten

Zuerst erstellen wir einen dedizierten Benutzer in MySQL, um eine Verbindung zu WordPress herzustellen. Dies ist notwendig, da unsere WordPress-Installation auf einem separaten Server innerhalb des Kubernetes-Clusters liegen wird. Melden Sie sich vom MySQL-Server aus mit dem folgenden Befehl bei MySQL an:

Sie werden nach dem Root-Passwort gefragt. Geben Sie das Passwort ein und Sie werden verbunden.

  • Erstellen einer dedizierten Datenbank für WordPress

In MySQL kann es eine beliebige Anzahl von Datenbanken geben. Weitere Datenbanken können auch von verschiedenen Anwendungen gemeinsam genutzt werden. WordPress bringt ebenfalls eine eigene Datenbank mit. Hier müssen wir eine dedizierte Datenbank für WordPress erstellen. Um diese dedizierte Datenbank zu erstellen, können Sie die folgende Anweisung in der MySQL-Bash ausführen:

  • Erstellen eines dedizierten Benutzers für WordPress

Nachdem die Datenbank erstellt wurde, erstellen wir einen dedizierten Benutzer für diese Datenbank. Wir werden diesen Benutzer verwenden, um uns mit unserer neu erstellten Datenbank zu verbinden:

Geben Sie oben ein starkes Passwort ein. Obwohl wir den Benutzer für WordPress erstellt haben, haben wir bisher keine Berechtigungen hinzugefügt. Wir müssen unseren Benutzern Berechtigungen für den Zugriff und DML-Operationen (Data Manipulation) erteilen. Um die Dinge einfach zu halten, werden wir unseren Benutzern alle Berechtigungen erteilen. Seien Sie vorsichtig, dies wird in der Produktionsumgebung nicht empfohlen. Führen Sie den folgenden Befehl in der MySQL-Shell aus:

Verwenden Sie die folgende Anweisung, um die internen MySQL-Tabellen zu aktualisieren, die die Zugriffsberechtigungen verwalten:

Schließlich können Sie den MySQL-Client schließen, indem Sie den folgenden Befehl in der MySQL-Shell ausführen:

  • Überprüfung unseres Benutzers und der Datenbank

Als Nächstes müssen wir überprüfen, ob sich unser WordPress-Benutzer mit der WordPress-Datenbank verbinden kann. Öffnen Sie dazu die MySQL-Shell und führen Sie den folgenden Befehl aus:

Sie werden nach dem Passwort gefragt. Verwenden Sie das Passwort, das Sie oben für einen WordPress-Benutzer eingegeben haben. Wenn Sie sich anmelden können, herzlichen Glückwunsch, Sie haben erfolgreich einen MySQL-Benutzer erstellt. Überprüfen Sie als Nächstes, ob dieser Benutzer Zugriff auf die WordPress-Datenbank hat. Führen Sie den folgenden Befehl in der MySQL-Shell aus:
Wenn Sie Ihre WordPress-Datenbank unten sehen, hat Ihr WordPress-Benutzer Zugriff auf die WordPress-Datenbank.

  • Zulassen von Remoteverbindungen zu unserem MySQL-Server

Bis jetzt haben wir einen funktionierenden WordPress-Benutzer und eine WordPress-Datenbank. Unser MySQL-Server und die WordPress-Datenbank befinden sich jedoch auf separaten Servern. Daher müssen wir sicherstellen, dass WordPress eine Verbindung zur MySQL-Datenbank herstellen kann. Dazu müssen wir unsere MySQL-Konfiguration bearbeiten, um Verbindungen von Remote-Hosts zuzulassen. Sie müssen die Datei mysqld.cnf bearbeiten. Auf Linux-basierten Systemen befindet sich diese Datei unter:

Öffnen Sie danach die Datei mit einem beliebigen Texteditor und suchen Sie die bind-address. Die bind-address gibt die IP-Adresse an, auf der MySQL lauschen kann. Standardmäßig lauscht MySQL nur auf 127.0.0.1.. Um Verbindungen von externen Hosts zuzulassen, ändern Sie die bind-address in 0.0.0.0.. Damit diese Änderungen wirksam werden, starten Sie den MySQL-Server neu, indem Sie den folgenden Befehl ausführen:

Wenn Sie als Nächstes testen möchten, ob Sie eine Remoteverbindung herstellen können, führen Sie den folgenden Befehl von Ihrem lokalen Computer oder Entwicklungsserver aus:
Fügen Sie mysql_server_ip zum obigen Befehl hinzu und führen Sie ihn aus. Wenn Sie sich ohne Fehler verbinden können, können Sie fortfahren.

Installieren und Aktualisieren von WordPress

WordPress verwendet standardmäßig MariaDB als Datenbank. Wir möchten diese Datenbank nicht verwenden, da wir unsere MySQL-Datenbank verwenden möchten. Zusammen mit dieser Änderung müssen wir auch den Admin-Benutzer und das Passwort konfigurieren. Wir werden dies durch die Implementierung von Befehlszeilenparametern tun.

Erstellen Sie zuerst einen neuen Ordner namens my blog-settings. Erstellen Sie in dem Ordner eine neue Datei namens values.yaml. Geben Sie den folgenden Inhalt in die Datei values.yaml ein:

Diese Datei ist selbsterklärend. Beachten Sie, dass wir unten MariaDB deaktiviert haben. Da unsere Konfiguration nun bereit ist, ist es an der Zeit, helm für eine WordPress-Installation. Führen Sie den folgenden Befehl in PowerShell aus:

Sobald der Vorgang abgeschlossen ist, sehen Sie einen Dienst, der mit dem Namen erstellt wurde myblog-wordpress. Es wird einige Zeit dauern, bis WordPress einsatzbereit ist. Um die laufenden Dienste zu finden, führen Sie den folgenden Befehl aus:
Sie erhalten ein Ergebnis wie dieses:

NAME

TYPE

CLUSTER-IP

EXTERNAL-IP

PORT

myblog-wordpress

ClusterIP

10.96.0.1

<none>

80:31403/TCP,443:30879/TCP

Hier haben wir sehr hilfreiche Informationen über die laufenden Dienste. Wir müssen auf die externe IP und den Port achten. Die externe IP ist die IP, unter der Ihr WordPress bereitgestellt wird. Da wir Docker Desktop verwenden, erhalten wir unter der externen IP „none“. Sie erhalten die IP abhängig von Ihrem System. Öffnen Sie Ihren Webbrowser und geben Sie diese IP ein. Sie sehen die WordPress-Anmeldeseite:

WordPress with MySQL 1

Dies sind die Anmeldedaten, die wir in der obigen YAML-Datei angegeben haben. Geben Sie diese Anmeldedaten ein und Sie können Ihre Website auf WordPress konfigurieren und Inhalte in unserer neu erstellten MySQL-Datenbank speichern.

WordPress aktualisieren

WordPress veröffentlicht Updates, um Sicherheitslücken zu schließen und weitere Funktionen/Fehlerbehebungen und mehr bereitzustellen. Sie können die WordPress-Installation aktualisieren, indem Sie den folgenden Befehl in PowerShell ausführen:

Wenn Sie vor dem Upgrade die Liste der Releases sehen möchten, können Sie den folgenden Befehl ausführen:

Sie erhalten die folgende Ausgabe wie:

Wenn Sie sehen möchten, ob eine neue Version des WordPress-Repositorys verfügbar ist, können Sie den folgenden Befehl ausführen:

Wann immer Sie Ihr WordPress-Release auf das neueste WordPress-Chart aktualisieren möchten, sollten Sie Folgendes ausführen:

Wir müssen dieselbe Konfigurationsdatei wie zuvor verwenden, damit sich die Konfigurationswerte nicht ändern.

Ein Release zurückrollen

Jedes Mal, wenn Sie ein Upgrade mit Helm durchführen, erstellt Helm einen Kontrollpunkt des Releases. Sie können zurückkehren, wenn die Dinge nicht wie erwartet funktionieren. Releases können verglichen und zurückgesetzt werden. Wenn der Upgrade-Prozess aufgrund eines Problems fehlschlägt, können Sie auf das vorherige Release zurückrollen. Zum Zurückrollen führen Sie den folgenden Befehl aus:

Führen Sie in unserem Fall den folgenden Befehl aus, um auf das vorherige Release zurückzurollen:

Um nun zu überprüfen, ob der Rücksetzvorgang erfolgreich abgeschlossen wurde, können Sie den Befehl helm list ausführen.

Fazit

In diesem umfassenden Tutorial haben wir Ihnen gezeigt, wie Sie MySQL einrichten und WordPress mit diesem externen MySQL installieren. Wir haben WordPress auf Kubernetes mit dem Helm-Paketmanager installiert und auch Upgrades in WordPress durchgeführt.

Da Sie nun mit der Installation auf Kubernetes unter Verwendung von Helm vertraut sind, hören Sie hier nicht auf. Besuchen Sie gerne den CloudSigma-Blog, um mehr über Kubernetes zu erfahren:

Viel Spaß beim Computing!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.