GKE On-Prem lässt sich in externe Block- oder Dateispeichersysteme einbinden, und zwar über VM-Speicher von Kubernetes, Kubernetes-Volume-Plug-ins und CSI-Treiber.
vSphere-Speicher
Standardmäßig verwenden sowohl GKE On-Prem-Administrator- als auch Nutzercluster den vSphere-Speicher. Der Administratorcluster erfordert einen vorab bereitgestellten VM-Datenspeicher für seine etcd-Daten.
Wenn Sie einen Nutzercluster erstellen, verwendet GKE On-Prem das vSphere Kubernetes-Volume-Plug-in, um ein neues virtuelles Maschinenlaufwerk (VMDK) in demselben vom Administratorcluster verwendeten VM-Datenspeicher bereitzustellen. Dieses VMDK enthält die etcd-Daten des Nutzerclusters.
Die standardmäßige StorageClass für einen Nutzercluster verweist auf einen VMware-Datenspeicher. Standardmäßig sind Kubernetes-PersistentVolumes, die für den Nutzercluster bereitgestellt werden, VMDKs, die diesen Datenspeicher enthalten. Dies ist nicht unbedingt derselbe Datenspeicher, der vom Administratorcluster verwendet wird.
Die von den Administrator- und Nutzerclustern verwendeten VM-Datenspeicher können von NFS, vSAN oder VMFS auf einem Blockgerät wie einem externen Speicher-Array gesichert werden. In einer Umgebung mit mehreren Hosts muss jedes blockorientierte Gerät mit allen Hosts in der Umgebung verbunden sein und der Datenspeicher muss auf jedem Host über die Option Datastore auf zusätzlichen Hosts bereitstellen konfiguriert werden.
Verwenden Sie in GKE On-Prem StatefulSets PersistentVolumeClaims, die von StorageClasses unterstützt werden und auf vSphere Storage verweisen.
Integrierte Kubernetes-Volume-Plug-ins
Kubernetes wird mit zahlreichen integrierten Volume-Plug-ins ausgeliefert. Sie können eine dieser Optionen verwenden, um Block- oder Dateispeicher für Ihre zustandsorientierten Arbeitslasten bereitzustellen. Mit integrierten Plug-ins können Arbeitslasten direkt mit dem Speicher verbunden werden, ohne den vSphere-Speicher nutzen zu müssen.
Während vSphere-Speicher automatisch die dynamische Bereitstellung von Volumes innerhalb eines Datenspeichers ermöglicht, der durch ein beliebiges iSCSI-, FC- oder NFS-Speichergerät gesichert wird, unterstützen viele der integrierten Plug-ins keine dynamische Bereitstellung. Sie erfordern, dass Sie PersistentVolumes manuell erstellen.
In der folgenden Tabelle werden mehrere integrierte Volume-Plug-ins beschrieben:
Integriertes Kubernetes-Volume-Plug-in | Beschreibung | Unterstützte Zugriffsmodi | Dynamische Bereitstellung |
---|---|---|---|
Fibre Channel | Generisches Speicher-Plug-in | Einzelnen Pod lesen/schreiben | Nein |
iSCSI | Generisches Speicher-Plug-in | Einzelnen Pod lesen/schreiben | Nein |
NFS | Generisches Speicher-Plug-in | Mehrere Pods lesen/schreiben | Nein |
Ceph RBD | Softwaredefinierter Open-Source-Speicher | Einzelnen Pod lesen/schreiben | Ja |
CephFS | Softwaredefinierter Open-Source-Speicher | Mehrere Pods lesen/schreiben | Nein |
Portworx | Proprietärer, softwaredefinierter Speicher | Mehrere Pods lesen/schreiben | Ja |
Quobyte | Proprietärer, softwaredefinierter Speicher | Einzelnen Pod lesen/schreiben | Ja |
StorageOS | Proprietärer, softwaredefinierter Speicher | Einzelnen Pod lesen/schreiben | Ja |
Container Storage Interface
Container Storage Interface (CSI) ist eine Standard-API, die es Kubernetes ermöglicht, beliebige Speichersysteme für containerisierte Arbeitslasten bereitzustellen. Wenn Sie einen CSI-kompatiblen Volume-Treiber für einen Kubernetes-Cluster bereitstellen, können Arbeitslasten direkt mit dem Speicher verbunden werden, ohne den vSphere-Speicher nutzen zu müssen.
GKE On-Prem wird mit Kubernetes 1.13+ ausgeliefert, das CSI v1.0 unterstützt. Wenn Sie CSI in Ihrem Cluster verwenden möchten, müssen Sie den CSI-Treiber Ihres Speicheranbieters bereitstellen. Anschließend können Sie Arbeitslasten für die Verwendung der StorageClass des Treibers konfigurieren oder als Standard-StorageClass festlegen.
Problembehebung
Siehe Fehlerbehebung für Speicher.