Stockage

Créez avec des objets Kubernetes un stockage persistant sur AWS pour les charges de travail exécutées sur GKE.

Utiliser un espace de stockage persistant pour vos charges de travail GKE sur AWS

Dans GKE sur AWS, les ressources Kubernetes PersistentVolume (PV), PersistentVolumeClaim (PVC) et StorageClass permettent de fournir des fichiers persistants ainsi qu'un stockage de blocs aux charges de travail. Pour les clusters d'utilisateur version 1.17 ou ultérieure, vous pouvez créer des instantanés du stockage persistant en utilisant les ressources VolumeSnapshot et VolumeSnapshotClass. Les instantanés sont stockés dans votre compte AWS.

StorageClass

Les clusters d'utilisateur disposent d'une ressource StorageClass Kubernetes par défaut qui provisionne de manière dynamique le stockage avec état pour les charges de travail situées sur des volumes AWS Elastic Block Storage (EBS). Vous pouvez également utiliser une autre ressource StorageClass pour provisionner d'autres types de volumes. Ces options sont décrites dans la section suivante.

VolumeSnapshotClass (classe d'instantané de volume)

Les clusters d'utilisateur disposent d'une ressource VolumeSnapshotClass Kubernetes par défaut qui crée des instantanés de stockage avec état sur des volumes AWS Elastic Block Storage (EBS).

Configurer le stockage en clusters

Si vous souhaitez provisionner des volumes de stockage avec une configuration autre que celle fournie par les ressources StorageClass préinstallées, vous pouvez créer une StorageClass dans un cluster qui utilise des paramètres ou un pilote de stockage différents. Vous pouvez ensuite définir la ressource StorageClass comme valeur par défaut du cluster, ou configurer vos charges de travail pour qu'elles utilisent la StorageClass. Par exemple, vous pouvez utiliser un StatefulSet pour définir un nom de StorageClass spécifique.

Utiliser des instantanés de volume

Dans Kubernetes version 1.17 ou ultérieure, vous pouvez utiliser la ressource VolumeSnapshot pour créer des instantanés de volumes de stockage. Ensuite, vous pouvez provisionner les nouveaux volumes persistants à partir de ces instantanés.

Elastic Block Store (EBS)

GKE sur AWS gère les volumes AWS EBS avec le pilote aws-ebs-csi-driver.

La version du pilote CSI EBS est liée à une version Kubernetes maître GKE sur AWS. Lorsque vous mettez à niveau votre version de cluster d'utilisateur, la nouvelle version du pilote s'applique automatiquement. Il s'agit généralement du dernier pilote disponible au moment de la publication de la version de GKE sur AWS.

Le pilote préinstallé avec GKE sur AWS fournit les StorageClasses suivantes par défaut :

  • standard-rwo (par défaut) : utilisé pour le provisionnement de volumes EBS gp2.
  • premium-rwo : utilisé pour le provisionnement de volumes EBS io1.

Les volumes EBS sont compatibles avec le mode d'accès ReadWriteOnce Kubernetes.

Volumes EBS préexistants

Vous pouvez provisionner des volumes EBS existants dans vos charges de travail GKE sur AWS. Consultez la section Importer un volume EBS préexistant pour obtenir des exemples d'utilisation des volumes EBS dans GKE sur AWS.

Elastic File System (EFS)

GKE sur AWS en version 1.6 et ultérieure est compatible avec l'installation de systèmes de fichiers et de points d'accès AWS EFS préexistants. Pour plus d'informations, consultez la page Utiliser EFS.

Options de stockage supplémentaires

D'autres systèmes de stockage tiers peuvent être utilisés avec GKE sur AWS via des pilotes Container Storage Interface (CSI) tiers (recommandés) ou des plug-ins de volume "in-tree" de Kubernetes.

Pilotes CSI

L'interface CSI (Container Storage Interface, interface de stockage en conteneurs) est une API standard ouverte qui permet à Kubernetes d'associer des systèmes de stockage arbitraires à des charges de travail conteneurisées. Une liste non exhaustive des pilotes CSI est disponible dans la documentation de CSI Kubernetes pour les développeurs. GKE sur AWS est compatible avec CSI v1.x.

Pour utiliser un pilote CSI dans votre cluster, vous devez installer le pilote CSI fourni par votre fournisseur de stockage. Vous pouvez ensuite configurer des charges de travail pour qu'elles utilisent la ressource StorageClass du pilote ou définir celle-ci comme StorageClass par défaut.

Pilotes de stockage spécifiques à AWS

Les pilotes de volume suivants peuvent être utilisés avec GKE sur AWS.

FSx for Lustre (FSX)

GKE sur AWS ne gère pas directement les volumes FSx. Vous pouvez installer manuellement le pilote aws-fsx-csi-driver, mais Google ne fournit pas d'assistance.

Plug-ins de volume "in-tree" Kubernetes

Kubernetes est fourni avec des plug-ins de volume "in-tree" (intégrés). Les facteurs "in-tree" compatibles sont les suivants :

  • configMap
  • emptyDir
  • hostPath
  • nfs
  • projected
  • secrets

Étape suivante