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

Beachten Sie beim Konfigurieren der Netzwerke die folgenden Anforderungen:
  • 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.

Die Abbildung zeigt die CNS-Netzwerkkonfiguration mit vSAN-Dateifreigabe.

Die Beispiel-Netzwerkkonfiguration in der Abbildung folgt diesen Richtlinien.
  • 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

Obwohl eine dedizierte vNIC verhindert, dass ein nicht autorisierter Pod direkt auf die Dateifreigaben zugreift, gibt es bestimmte 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.