Ihre Cloud Native Storage-Umgebung und die virtuellen Maschinen, die zum Kubernetes-Cluster gehören, müssen mehrere Anforderungen erfüllen.
Anforderungen für Cloud Native Storage
- Eine kompatible Version von vSphere.
- Eine kompatible Version von Kubernetes.
- Ein auf den virtuellen Maschinen bereitgestellter Kubernetes-Cluster. Ausführliche Informationen zum Bereitstellen des vSphere-CSI-Plug-Ins und zum Ausführen des Kubernetes-Clusters unter vSphere finden Sie in der Dokumentation zum VMware vSphere Containerspeicher-Plug-In.
Anforderungen für virtuelle Maschinen des Kubernetes-Clusters
- Virtuelle Maschinen mit Hardware Version 15 oder höher. Installieren Sie VMware Tools auf jeder Knoten-VM.
- VM-Hardwareempfehlungen
- Legen Sie die CPU und den Arbeitsspeicher basierend auf den Arbeitslastanforderungen angemessen fest.
- Verwenden Sie den VMware Paravirtual SCSI-Controller für die primäre Festplatte auf der Knoten-VM.
- Alle virtuellen Maschinen müssen Zugriff auf einen gemeinsam genutzten Datenspeicher haben, wie z. B. vSAN.
- Legen Sie den Parameter disk.EnableUUID auf jeder Knoten-VM fest. Weitere Informationen hierzu finden Sie unter Konfigurieren des Kubernetes-Clusters auf virtuellen vSphere-Maschinen.
- Um Fehler und unvorhersehbares Verhalten zu vermeiden, sollten Sie keine Snapshots von CNS-Knoten-VMs erstellen.
Anforderungen für das CNS-Datei-Volume
- Verwenden Sie vSphere 7.0 oder höher mit einer kompatiblen Kubernetes-Version.
- Verwenden Sie eine kompatible Version von CSI. Weitere Informationen finden Sie in der Dokumentation zum VMware vSphere-Containerspeicher-Plug-In.
- Aktivieren und konfigurieren Sie den vSAN-Dateidienst. Sie müssen u. a. die erforderlichen Dateidienstdomänen, IP-Adressen und das Netzwerk konfigurieren. Weitere Informationen finden Sie in der Dokumentation zu Verwalten von VMware vSAN.
- Befolgen Sie die spezifischen Richtlinien zum Konfigurieren des Netzwerkzugriffs von einem Gastbetriebssystem im Kubernetes-Knoten auf eine vSAN-Dateifreigabe. Weitere Informationen hierzu finden Sie unter Konfigurieren von Netzwerkzugriff auf die vSAN-Dateifreigabe.
Konfigurieren von Netzwerkzugriff auf die vSAN-Dateifreigabe
Um dauerhafte ReadWriteMany-Volumes in Ihrer generischen vSphere Kubernetes-Umgebung bereitstellen zu können, konfigurieren Sie die notwendigen Netzwerke, Switches und Router von den Kubernetes-Knoten zum Netzwerk des vSAN-Dateidiensts.
Einrichten des Netzwerks
- Auf jedem Kubernetes-Knoten können Sie eine dedizierte vNIC für den Datenverkehr der vSAN-Dateifreigabe verwenden. Diese Option ist nur erforderlich, wenn Sie einen sicheren Datenverkehrspfad für Ihre Datei-Volumes verwenden möchten.
- Wenn Sie eine dedizierte vNIC verwenden, stellen Sie sicher, dass der Datenverkehr über die dedizierte vNIC zu einem oder mehreren vSAN-Dateidienst-Netzwerken geleitet werden kann.
- Stellen Sie sicher, dass nur das Gastbetriebssystem auf jedem Kubernetes-Knoten direkt auf die vSAN-Dateifreigabe über die IP-Adresse der Dateifreigabe zugreifen kann. Die Pods im Knoten können vSAN-Dateifreigabe nicht über die zugehörige IP-Adresse anpingen bzw. nicht auf diese zugreifen.
Der CNS-CSI-Treiber stellt sicher, dass nur die Pods, die für die Verwendung des CNS-Datei-Volumes konfiguriert sind, auf die vSAN-Dateifreigabe zugreifen können, indem Sie einen Mount-Punkt im Gastbetriebssystem erstellen.
- Vermeiden Sie das Entstehen eines IP-Adressenkonflikts zwischen den Knoten-VMs und vSAN-Dateifreigaben.
Die folgende Abbildung ist ein Beispiel für die CNS-Netzwerkkonfiguration mit dem vSAN-Dateifreigabedienst.
- Bei der Konfiguration werden separate Netzwerke für verschiedene Elemente in der CNS-Umgebung verwendet.
Netzwerk Beschreibung vSphere-Verwaltungsnetzwerk In einem generischen Kubernetes-Cluster hat üblicherweise jeder Knoten Zugriff auf dieses Netzwerk. Pod oder Knotennetzwerk Kubernetes verwendet dieses Netzwerk für die Knoten-zu-Knoten- oder Pod-zu-Pod-Kommunikation. Dediziertes Dateifreigabe-Netzwerk Dieses Netzwerk wird für den Datenverkehr dieses CNS-Datei-Volumes verwendet. vSAN-Dateifreigabe-Netzwerk Netzwerk, in dem die vSAN-Dateifreigabe aktiviert ist und in dem Dateifreigaben verfügbar sind. - Jeder Kubernetes-Knoten verfügt über eine dedizierte vNIC für den Dateidatenverkehr. Diese vNIC ist von der vNIC getrennt, die für die Knoten-zu-Knoten- oder Pod-zu-Pod-Kommunikation verwendet wird. Diese Konfiguration wird nur als Beispiel verwendet und ist nicht obligatorisch.
- Nur diejenigen Anwendungen, die für die Verwendung der CNS-Dateifreigabe konfiguriert sind, können über den Mount-Punkt im Gastbetriebssystem des Knotens auf vSAN-Dateifreigaben zugreifen. In der Abbildung findet beispielsweise Folgendes statt:
- Die Pods App-1 und App-2 sind für die Verwendung eines Datei-Volumes konfiguriert und haben Zugriff auf die Dateifreigabe über den vom CSI-Treiber erstellten Mount-Punkt.
- App-3 und App-4 sind nicht mit einem Datei-Volume konfiguriert und können nicht auf Dateifreigaben zugreifen.
- Die vSAN-Dateifreigaben werden als Container in einer vSAN-Dateifreigabe-Appliance-VM auf dem ESXi-Host bereitgestellt. Ein Kubernetes-Deployer, d. h. eine Software oder ein Dienst, der Kubernetes-Cluster konfigurieren, bereitstellen und verwalten kann, konfiguriert die erforderlichen Router und Switches, sodass das Gastbetriebssystem im Kubernetes-Knoten auf die vSAN-Dateifreigaben zugreifen kann.
Sicherheitseinschränkungen
- Die CNS-Dateifunktion setzt voraus, dass jeder, der über die CNS-Datei-Volume-ID verfügt, ein autorisierter Benutzer des Volumes ist. Jeder Benutzer, der über die CNS-Datei-Volume-ID verfügt, kann auf die im Volume gespeicherten Daten zugreifen.
- Das CNS-Datei-Volume unterstützt nur die AUTH_SYS-Authentifizierung, die eine auf einer Benutzer-ID basierende Authentifizierung ist. Um den Zugriff auf die Daten im CNS-Datei-Volume zu schützen, müssen Sie geeignete Benutzer-IDs für die Container verwenden, die auf das CNS-Datei-Volume zugreifen.
- Ein ungebundenes persistentes ReadWriteMany-Volume, dass sich auf ein CNS-Datei-Volume bezieht, kann durch einen persistenten Volume-Anspruch gebunden werden, der von einem beliebigen Kubernetes-Benutzer in einem beliebigen Namespace erstellt wurde. Stellen Sie sicher, dass nur autorisierte Benutzer Zugriff auf Kubernetes haben, um Sicherheitsprobleme zu vermeiden.
Konfigurieren des CSI-Treibers für den Zugriff auf vSAN-Dateidienst-Cluster
Je nach Konfiguration kann der CSI-Treiber Datei-Volumes in einem oder mehreren vSAN-Clustern, in denen der Dateidienst aktiviert ist, bereitstellen.
Sie können den Zugriff nur auf bestimmte vSAN-Cluster beschränken, bei denen der Dateidienst aktiviert ist. Konfigurieren Sie bei der Bereitstellung der Kubernetes-Cluster den CSI-Treiber mit Zugriff auf bestimmte Dateidienst-vSAN-Cluster. Dies führt dazu, dass der CSI-Treiber die Datei-Volumes nur in diesen vSAN-Clustern bereitstellen kann.
In der Standardkonfiguration verwendet der CSI-Treiber für die Bereitstellung von Datei-Volumes einen beliebigen Dateidienst-vSAN-Cluster in vCenter Server. Der CSI-Treiber überprüft nicht, auf welchen vSAN-Cluster während der Bereitstellung von Datei-Volumes zugegriffen werden kann.