Archiviazione

GKE On-Prem si integra con i sistemi di archiviazione esterna a blocchi o di file tramite l'archiviazione VMv vSphere, i plug-in di volume in- Kubernetes e i driver Container Storage Interface (CSI).

Spazio di archiviazione vSphere

Per impostazione predefinita, sia gli amministratori GKE On-Prem sia i cluster utente utilizzano l'archiviazione vSphere. Il cluster di amministrazione richiede un datastore VMware di cui è stato eseguito il pre-provisioning per i dati etcd.

Quando crei un cluster utente, GKE On-Prem utilizza il plug-in del volume vSphere Kubernetes per eseguire il provisioning dinamico di un nuovo disco della macchina virtuale (VMDK) nello stesso datastore VMware utilizzato dal cluster di amministrazione. Questo VMDK contiene i dati di etcd del cluster utente.

Il valore predefinito di StorageClass per un cluster utente rimanda a un datastore VMware. Per impostazione predefinita, i oggetti PersistentVolume di Kubernetes di cui è stato eseguito il provisioning per il cluster utente sono VMDK utilizzati dal datastore. Non è necessariamente lo stesso datastore utilizzato dal cluster di amministrazione.

I datastore VMware utilizzati dall'amministratore e dai cluster utente possono essere supportati da NFS, vSAN o VMFS su un dispositivo di blocco, ad esempio un array di archiviazione esterno. In un ambiente multi-host, ogni dispositivo di blocco deve essere collegato a tutti gli host dell'ambiente e il datastore deve essere configurato su ogni host tramite l'opzione Mount Datastore on Host Hosts.

In GKE On-Prem, gli StatefulSet utilizzano PersistentVolumeClaim supportati da StorageClass che rimandano all'archiviazione vSphere.

Plug-in di volume "In-albero" di Kubernetes

Kubernetes viene fornito con una serie di plug-in di volume tra gli alberi. Hai la possibilità di utilizzare una qualsiasi di queste opzioni per fornire spazio di archiviazione a blocchi o di file per i tuoi carichi di lavoro stateful. I plug-in interni consentono ai carichi di lavoro di connettersi direttamente allo spazio di archiviazione senza dover passare attraverso l'archiviazione vSphere.

Mentre l'archiviazione vSphere fornisce automaticamente il provisioning dinamico dei volumi all'interno di un datastore supportato da qualsiasi dispositivo di archiviazione iSCSI, FC o NFS, molti dei plug-in interni non supportano il provisioning dinamico. Richiedono la creazione manuale di oggetti PersistentVolume.

La tabella riportata di seguito descrive diversi plug-in di volume all'interno dell'albero:

Plug-in di volume in-alberoDescrizioneModalità di accesso supportateProvisioning dinamico
Fibre ChannelPlug-in generico per lo spazio di archiviazioneLettura/scrittura di un singolo podNo
iSCSIPlug-in generico per lo spazio di archiviazioneLettura/scrittura di un singolo podNo
NFSPlug-in generico per lo spazio di archiviazioneLettura/scrittura di più podNo
Cf. RBDArchiviazione software open sourceLettura/scrittura di un singolo pod
CephFSArchiviazione software open sourceLettura/scrittura di più podNo
PortworxSpazio di archiviazione definito dal software proprietarioLettura/scrittura di più pod
QuobyteSpazio di archiviazione definito dal software proprietarioLettura/scrittura di un singolo pod
ArchiviazioneSpazio di archiviazione definito dal software proprietarioLettura/scrittura di un singolo pod

Container Storage Interface

Container Storage Interface (CSI) è un'API standard che consente a Kubernetes di esporre sistemi di archiviazione arbitrarii ai carichi di lavoro containerizzati. Quando esegui il deployment di un driver del volume compatibile con CSI in un cluster Kubernetes, i carichi di lavoro possono connettersi direttamente allo spazio di archiviazione senza dover passare attraverso l'archiviazione vSphere.

GKE On-Prem viene fornito con Kubernetes 1.13+, che supporta CSI v1.0. Per utilizzare CSI nel cluster, devi eseguire il deployment del driver CSI fornito dal tuo fornitore di spazio di archiviazione. Quindi, puoi configurare i carichi di lavoro in modo da utilizzare la classe StorageClass del driver, oppure impostarla come StorageClass predefinita.

Risolvere i problemi

Consulta Risoluzione dei problemi relativi allo spazio di archiviazione.