Stockage

GKE On-Prem s'intègre à des systèmes de stockage de fichiers ou de blocs externes via le système de stockage VMware vSphere, les plug-ins de volumes "in-tree" internes Kubernetes et les pilotes CSI (Container Storage Interface).

Stockage vSphere

Par défaut, les clusters d'administrateur et d'utilisateur GKE On-Prem utilisent le système de stockage vSphere. Le cluster d'administrateur nécessite un datastore VMware pré-provisionné pour ses données etcd.

GKE On-Prem utilise le plug-in de volume vSphere Kubernetes pour provisionner dynamiquement un nouveau disque de machine virtuelle VMDK dans le même datastore VMware utilisé par le cluster d'administrateur. Ce VMDK contient les données etcd du cluster d'utilisateur.

La classe StorageClass par défaut d'un cluster d'utilisateur pointe vers un datastore VMware. Par défaut, les PersistentVolumes de Kubernetes provisionnés pour le cluster d'utilisateur sont des VMDK qui stockent des données. Ce datastore n'est pas nécessairement le même que celui utilisé par le cluster d'administrateur.

Les datastores VMware utilisés par les clusters d'administrateur et d'utilisateur peuvent être renforcés par NFS, vSAN ou VMFS sur un périphérique de bloc, tel qu'une baie de stockage externe. Dans un environnement multi-hôte, chaque appareil de stockage en mode bloc doit être associé à tous les hôtes de l'environnement, et le datastore doit être configuré sur chaque hôte via l'option Installer Datastore sur des hôtes supplémentaires.

Dans GKE On-Prem, les StatefulSets utilisent des PersistentVolumeClaims sauvegardés par StorageClasses qui pointent vers le système de stockage vSphere.

Plug-ins de volume "in-tree" Kubernetes

Kubernetes est fourni avec un certain nombre de plug-ins de volume "in-tree". Vous pouvez utiliser n'importe lequel d'entre eux pour fournir un stockage de blocs ou de fichiers pour vos charges de travail avec état. Les plug-ins "in-tree" permettent aux charges de travail de se connecter directement au stockage sans avoir à passer par le stockage vSphere.

Alors que le stockage vSphere offre automatiquement un provisionnement dynamique des volumes dans un datastore sauvegardé par n'importe quel appareil de stockage iSCSI, FC ou NFS, la plupart des plug-ins de volume "in-tree" ne sont pas compatibles avec le provisionnement dynamique. Vous devez créer manuellement des PersistentVolumes.

Le tableau suivant décrit plusieurs plug-ins de volume "in-tree" :

Plug-in de volume "in-tree"DescriptionModes d'accès compatiblesProvisionnement dynamique
Fibre ChannelPlug-in de stockage génériquePod unique en lecture/écritureNon
iSCSIPlug-in de stockage génériquePod unique en lecture/écritureNon
NFSPlug-in de stockage génériquePods multiples en lecture/écritureNon
Ceph RBDSystème de stockage Open Source défini par logicielPod unique en lecture/écritureYes
CephFSSystème de stockage Open Source défini par logicielPods multiples en lecture/écritureNon
PortworxSystème de stockage propriétaire défini par logicielPods multiples en lecture/écritureYes
QuobyteSystème de stockage propriétaire défini par logicielPod unique en lecture/écritureOui
StorageOSSystème de stockage propriétaire défini par logicielPod unique en lecture/écritureYes

Interface de stockage en conteneurs

Container Storage Interface (CSI) est une API standard qui permet à Kubernetes d'exposer des systèmes de stockage arbitraires à des charges de travail en conteneurs. Lorsque vous déployez un pilote de volume compatible avec CSI sur un cluster Kubernetes, les charges de travail peuvent se connecter directement au système de stockage sans passer par celui de vSphere.

GKE On-Prem est fourni avec Kubernetes 1.13 ou version ultérieure, qui est compatible avec CSI v1.0. Pour utiliser CSI dans votre cluster, vous devez déployer le pilote CSI fourni par votre fournisseur de stockage. Vous pouvez ensuite configurer les charges de travail de sorte qu'elles utilisent la ressource StorageClass du pilote ou définir celle-ci en tant que StorageClass par défaut.

Dépannage

Consultez la page Dépannage du système de stockage.