Im vorigen Teil des Workshops haben wir beschrieben, wie Sie OpenShift installieren und darauf einfache zustandslose Anwendungen betreiben. Grundsätzlich ist es diese Art von Apps, für die eine Container-Plattform wie OpenShift und Kubernetes gedacht ist, denn zustandslose Anwendungen lassen sich sehr einfach skalieren und von einem Node zum anderen verschieben. Deutlich schwieriger wird es mit stateful-Anwendungen, die ihren Zustand, meist Benutzerdaten, dauerhaft speichern. Das bringt so viele Probleme mit sich, dass Kubernetes anfangs solche Anwendungen gar nicht unterstützte. Erst im Lauf der Zeit kam der Support für die damals sogenannten "PetSets" hinzu, die heute Stateful Sets heißen. Ein Beispiel für eine solche Anwendung im mitgelieferten Service Catalog ist "cake-php-persistent". Sie lässt sich wie im ersten Teil des Workshops beschrieben auf einem OpenShift-Cluster deployen:
oc new-project webapp
oc new-app cakephp-mysql-persistent
--> Deploying template "openshift/ cakephp-mysql-persistent" to project webapp
Dieser Versuch ist allerdings nicht von Erfolg gekrönt, weil der MySQL-Pod nicht startet. Der Grund hierfür ist, dass er nicht den erforderlichen Storage vom OpenShift-Cluster bekommt, oder im Kubernetes-Jargon: Sein Persistent Volume Claim (PVC) wurde nicht erfüllt ("no persistent volumes available for this claim and no storage class is set").
Prinzipiell ist es so, dass ein Cluster verschiedene Arten von persistentem Speicher anbieten kann, eben die Persistent Volumes. Braucht ein Pod dauerhaften Speicher, kann er das mit einem PVC mitteilen. Der erfüllt diesen Wunsch, wenn Speicher vorhanden ist, der die entsprechende Spezifikation vorweist. Das kann auf zwei Arten
...Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.