Speicher

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-inBeschreibungUnterstützte ZugriffsmodiDynamische Bereitstellung
Fibre ChannelGenerisches Speicher-Plug-inEinzelnen Pod lesen/schreibenNein
iSCSIGenerisches Speicher-Plug-inEinzelnen Pod lesen/schreibenNein
NFSGenerisches Speicher-Plug-inMehrere Pods lesen/schreibenNein
Ceph RBDSoftwaredefinierter Open-Source-SpeicherEinzelnen Pod lesen/schreibenJa
CephFSSoftwaredefinierter Open-Source-SpeicherMehrere Pods lesen/schreibenNein
PortworxProprietärer, softwaredefinierter SpeicherMehrere Pods lesen/schreibenJa
QuobyteProprietärer, softwaredefinierter SpeicherEinzelnen Pod lesen/schreibenJa
StorageOSProprietärer, softwaredefinierter SpeicherEinzelnen Pod lesen/schreibenJa

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.