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. 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 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 ressource StorageClass personnalisée pour provisionner d'autres types de volumes. Ces options sont décrites dans la section suivante.
VolumeSnapshotClass (classe d'instantané de volume)
Les clusters disposent d'une ressource VolumeSnapshotClass Kubernetes par défaut qui crée des instantanés de stockage avec état sur des volumes 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 ressource StorageClass personnalisée dans un cluster qui utilise des paramètres ou un pilote de stockage différents. Vous pouvez ensuite définir la StorageClass par défaut ou configurer vos charges de travail pour qu'elles utilisent la ressource StorageClass. Par exemple, vous pouvez utiliser une référence à la ressource StorageClass dans un StatefulSet afin de définir un nom de ressource StorageClass spécifique.
Utiliser des instantanés de volume
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. Pour plus d'informations, consultez la section Prendre un instantané d'un objet PersistentVolume.
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, 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 EBSgp2
.premium-rwo
: utilisé pour le provisionnement de volumes EBSio1
.
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 permet d'installer des systèmes de fichiers EFS et des points d'accès préexistants. Pour plus d'informations, consultez la page Utiliser un système de fichiers 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 un 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 la ressource StorageClass par défaut.
Pilotes de stockage spécifiques
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
- Découvrez comment utiliser des ressources StorageClass avec vos charges de travail.
- Utilisez un volume EBS préexistant.
- Apprenez-en plus sur les volumes persistants et le provisionnement dynamique dans GKE.
- Découvrez comment Prendre un instantané d'un PersistentVolume.
- Consultez la documentation sur les classes de stockage Kubernetes.
- Lisez l'annonce de publication de Container Storage Interface (CSI) pour Kubernetes en disponibilité générale.