Drupal 8 mit Kubernetes

In diesem Beitrag möchten wir an einem Beispiel den Deploymentprozess von Drupal in einem Kubernetes Cluster veranschaulichen.

Unser Cluster

Damit wir unser Drupal mit sogenannten Dockercontainern virtualisieren können benötigen wir ein Cluster in Kubernetes. Dieses Cluster besteht aus einem Master und zwei Minions (virtuelle Maschinen) die für uns die Arbeit erledigen. Ausserdem verfügt unser Cluster über einen internen DNS, welcher es Drupal einfach macht, seine Datenbank zu finden.

Mithilfe von Cockpit, dem Server Web-Gui Server Management Tool von RedHat, können wir uns das Cluster visualisieren lassen. 

 

Sie möchten mehr über Kubernetes wissen?

Konfiguration und Deployment

Da nun unser Cluster bereit steht können wir uns um den Kern des Deploymentvorganges kümmern, die Yaml Datei.

Yamls beinhalten die Informationen die Kubernetes benötigt um sogenannte Pods, Services und Replication Controllers zu deployen. Wir benutzen zwei Yamls und somit zwei Pods für unser Deployment:

Eine für unseren Drupal Pod und eine die uns einen Datenbank Pod zur Verfügung stellt.
Die Pods werden von Replication Controllern erstellt. Hinzu kommen Services damit wir extern auf unser Drupal zugreifen können, bzw. intern Drupal auf die Datenbank Zugriff hat.

Die Yamls können in unserem Github betrachtet werden.

Nachdem wir unsere Yamls mit einem einfachen Befehl ausgeführt haben sieht unser Cluster so aus:

 

 

So sieht es in unserem Kubernetes Dashboard aus, welches die Administration erleichert:


Einrichten von Drupal

Da unser Deployment steht, können wir die Drupal Website mittels der IP des Minions und des generierten Ports vom Service erreichen.

Nun kann man sein Drupal wie gewohnt einrichten.

Name, Benutzer und Passwort der Datenbank wurden in der Yaml von der MariaDB definiert und müssen nur noch in die Maske eingegeben werden.

Als Host reicht es aus, den Namen unseres internen Service der Datenbank anzugeben.

 

Danach muss man nur noch auf die Drupal-Installation warten und...

 

...man hat eine fertige Drupal Website unter Kubernetes!

Unser Fazit

Anhand unseres Beispiels kann man sehen, wie einfach ein Deployment einer Anwendung sein kann. Neben der Vereinfachung des Deploymentprozesses sind Skalierbarkeit und Redundanz ebenfalls Stärken von Kubernetes. Somit könnten wir Drupal in einer beliebigen Anzahl auf beliebig vielen Nodes replizieren lassen, welche alle auf ein gemeinsames persistentes Storage Zugriff haben.

Für Kubernetes sehen wir daher großes Potential für das Entwickeln und Bereitstellen von Anwendungen.

Neuen Kommentar schreiben