Stockage

Cette page explique les concepts de stockage d'Anthos clusters on VMware (GKE On-Prem).

Résumé

Anthos clusters on VMware s'intègre aux systèmes externes de stockage de blocs ou de fichiers via le stockage VMware vSphere, les plug-ins de volume "in-tree" Kubernetes (ou "pilotes") et les pilotes Container Storage Interface (CSI).

Anthos clusters on VMware utilise une StorageClass Kubernetes par défaut pour provisionner le stockage des charges de travail avec état sur un datastore vSphere. Vous pouvez également utiliser une ressource StorageClass pour provisionner différents volumes de stockage.

Stockage vSphere

Par défaut, les clusters Anthos clusters on VMware utilisent l'espace de stockage vSphere. Le cluster d'administrateur nécessite un datastore vSphere pré-provisionné pour ses données etcd.

Lorsque vous créez un cluster d'utilisateur, Anthos clusters on VMware utilise le plug-in de volume Kubernetes VSphere pour provisionner de manière dynamique de nouveaux disques de machines virtuelles (VMDK) dans un datastore vSphere. (notez que les clusters d'utilisateur antérieurs à la version 1.2 utilisaient le même datastore que les clusters d'administrateur).

Les datastores vSphere utilisés par les clusters d'administrateur et d'utilisateur peuvent être sauvegardés par NFS, vSAN ou VMFS sur un appareil de stockage en mode bloc, tel qu'un tableau 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.

Stockage par défaut

Les clusters Anthos clusters on VMware incluent une ressource StorageClass Kubernetes par défaut, qui détermine la manière dont Kubernetes doit provisionner le stockage. Une fois que Kubernetes a provisionné les volumes de stockage, ils sont représentés par des PersistentVolumes de Kubernetes.

La ressource StorageClass par défaut d'un cluster d'utilisateur pointe vers un datastore vSphere, qui est défini dans le champ datastore de la configuration de StorageClass. Par défaut, les PersistentVolumes de Kubernetes provisionnés pour le cluster d'utilisateur sont des VMDK de ce datastore. Ce datastore n'est pas nécessairement le même que celui utilisé par le cluster d'administrateur.

Dans Anthos clusters on VMware, les objets StatefulSet Kubernetes (charges de travail avec état qui nécessitent généralement un stockage persistant) utilisent des PersistentVolumeClaims sauvegardés par des StorageClass qui pointent vers l'espace de stockage vSphere par défaut.

Interface de stockage en conteneurs

L'interface CSI (Container Storage Interface, interface de stockage en conteneurs) est une API standard Open Source qui permet à Kubernetes d'exposer des systèmes de stockage arbitraires à des charges de travail conteneurisées. Lorsque vous déployez un pilote de volume compatible avec CSI sur un cluster Anthos clusters on VMware, les charges de travail peuvent se connecter directement à un appareil de stockage compatible sans passer par le stockage vSphere.

Anthos clusters on VMware 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 comme StorageClass par défaut.

Nous avons établi un partenariat avec de nombreux fournisseurs de stockage pour assurer la compatibilité de leurs systèmes de stockage avec Anthos clusters on VMware. Consultez la liste complète des partenaires de stockage qualifiés.

Pilote CSI vSphere

Par défaut, Anthos clusters on VMware exploite le plug-in de volume "in-tree" de VMware, vSphere Cloud Provider (VCP), qui est automatiquement compatible avec les datastores VMware tels que vSAN. Le pilote CSI vSphere est automatiquement déployé dans les clusters Anthos clusters on VMware. Il est disponible en tant que fonctionnalité d'aperçu à partir de la version 1.5 d'Anthos clusters on VMware.

Instantanés du volume CSI

Vous pouvez créer des instantanés du stockage persistant à l'aide des ressources VolumeSnapshot et VolumeSnapshotClass. Pour utiliser cette fonctionnalité sur un volume CSI, le pilote CSI doit être compatible avec les instantanés de volume, et le conteneur side-car external-snapshotter doit être inclus dans le déploiement du pilote CSI.

Pour en savoir plus sur les instantanés de volume, consultez la page Utiliser des instantanés de volume.

Les contrôleurs d'instantané CSI sont déployés automatiquement lorsque vous créez un cluster.

Nettoyage des volumes

Lorsque vous supprimez un cluster d'utilisateur, les volumes provisionnés par le plug-in de volume "in-tree" de VMware peuvent ne pas être supprimés. Toutefois, lors de la suppression d'un cluster d'utilisateur, les volumes provisionnés par le pilote CSI vSphere ne sont pas supprimés. Vous devez vérifier que tous les volumes, les PVC et les objets StatefulSet sont supprimés avant la suppression du cluster.

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

Configurer le stockage en clusters

Si vous souhaitez provisionner des volumes de stockage autres que les datastores vSphere, vous pouvez créer une nouvelle StorageClass dans un cluster utilisant un autre pilote de stockage. Vous pouvez ensuite définir la StorageClass comme valeur par défaut du cluster ou configurer vos charges de travail à l'aide de la StorageClass (exemple StatefulSet).

Dépannage

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

Documentation complémentaire