Une nouvelle version de GKE sur AWS a été publiée le 2 novembre. Consultez les notes de version pour plus d'informations.

Storage

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. À partir de la version 1.17, des instantanés de stockage sur disque persistant peuvent être créés avec les ressources VolumeSnapshot et VolumeSnapshotClass. Les instantanés sont stockés dans votre compte AWS.

StorageClass

Les clusters GKE sur AWS 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 Store (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 GKE sur AWS 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 Store (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 objet StatefulSet.

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. Il s'agit généralement du dernier pilote disponible au moment de la publication de la version de GKE. Lorsque le cluster est mis à niveau, les pilotes sont automatiquement mis à jour.

Le pilote est préinstallé avec GKE sur AWS et est configuré avec deux ressources StorageClass :

  • 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.

Options de stockage supplémentaires

D'autres systèmes de stockage tiers peuvent être utilisés avec GKE sur AWS via des pilotes CSI tiers (recommandé) ou des plug-ins de volume "in-tree" 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 supplémentaires spécifiques à AWS

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

Elastic File System (EFS)

Les volumes EFS ne sont pas gérés par GKE sur AWS. Vous pouvez installer manuellement le pilote aws-efs-csi-driver, mais Google ne fournit pas d'assistance.

FSx for Lustre (FSX)

Les volumes FSx ne sont pas gérés par GKE sur AWS. 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 un certain nombre de plug-ins de volume "in-tree" (intégrés). Les pilotes "in-tree" suivants sont compatibles :

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

Et ensuite ?