vSphere 7 with Tanzu ist eine gute Möglichkeit, um sich schnell und einfach Kubernetes Cluster in einer vSphere Infrastruktur anzulegen. In Produktivumgebungen darf dabei ein Mechanismus zum Sichern und Wiederherstellen von Backups nicht fehlen. Der in das vSphere 7 with Tanzu Konstrukt integrierte Velero vSphere Operator soll dies ermöglichen. Allerdings hat sich in den letzten Versionen von vSphere 7 with Tanzu ein Fehler eingeschlichen, der in Gastclustern verhindert, neuen Speicher über PersistentVolumeClaims (PVCs) anzulegen.
Nach der Installation des Velero vSphere Operator und dem Anlegen von neuen Gastcluster in vSphere 7 with Tanzu ist schnell zu erkennen, dass das Anlegen von neuem Speicher über PVCs verhindert wird. Nach dem Anlegen von neuen PVCs bleibt dessen Status PENDING und schaltet auch nach längerem Warten nicht auf den Status BOUND um.
Nach einer Troubleshooting Session im Gastcluster kann schnell festgestellt werden, dass der Pod des vSphere CSI Controllers im Namespace vmware-system-csi nicht korrekt startet, da ihm ein Secret fehlt, welches normalerweise vom SuperVisorCluster in das GastCluster eingespielt wird.
Dies lässt sich durch das Anzeigen der Events im entsprechenden Namespace verifizieren:
In neueren Versionen von vSphere 7 with Tanzu gibt ein describe auf das GastCluster eine weitere Warnung raus, die auf einen fehlenden Namespace hindeutet, der von Velero benötigt wird:
Dies scheint erstmal eine Fehlermeldung zu sein, die nicht im Zusammenhang mit dem PVC Phänomen zu stehen scheint, doch der erste Eindruck täuscht.
Die Lösung des Problems bleibt für den Nutzer von vSphere 7 with Tanzu zunächst ein händisch auszuführender Step, bis der Fehler offiziell in einem der nächsten Updates von VMware behoben wird. Im letzten Screenshot kann schon erahnt werden, was die Lösung des Problems ist. Es ist das einfache Anlegen des fehlenden Namespaces im Gastcluster. Wird der Namespace erstellt, provisioniert das SuperVisorCluster nach kurzer Zeit (dies kann auch mehrere Minuten dauern) zunächst ein Secret in den neu erstellten Namespace und danach das fehlende Secret für den CSI Controller im entsprechenden Namespace.
Daraufhin kann der CSI Controller korrekt starten und alle PVCs, die im Status PENDING hingen, wechseln nun in den Status BOUND.
Leider bietet sich bis dato keine andere Möglichkeit, bis der Fehler aufseiten VMwares durch ein Update von vSphere 7 with Tanzu gelöst ist. Wer jedoch auf Backups in Produktivumgebungen angewiesen ist, muss zunächst in den sauren Apfel beißen und den hier vorgestellten Workaround anwenden.