Cet article explique comment installer un pilote de stockage CSI (Container Storage Interface) sur vos clusters d'utilisateur.
Présentation
Par défaut, GKE sur AWS provisionne des volumes EBS AWS à l'aide de la ressource StorageClass par défaut. Si vos charges de travail nécessitent l'utilisation d'un autre type de volume de stockage, vous pouvez installer un pilote CSI compatible pour pouvoir y accéder.
Container Storage Interface
(CSI) est une API standard ouverte qui permet aux charges de travail Kubernetes d'accéder à des systèmes de stockage conformes. CSI permet également d'utiliser des fonctionnalités de stockage modernes comme le redimensionnement et les instantanés.
Après avoir installé un pilote CSI, vous devez créer une ressource StorageClass Kubernetes. Vous définissez le pilote CSI en tant que fournisseur pour la StorageClass. Vous pouvez ensuite définir la ressource StorageClass comme valeur par défaut, ou configurer vos charges de travail pour qu'elles utilisent la StorageClass. Pour obtenir un exemple de création d'objet StatefulSet avec une StorageClass personnalisée, consultez la page Utiliser des ressources StorageClass avec vos charges de travail.
Installer le pilote CSI d'un fournisseur
Les fournisseurs de stockage sont chargés de fournir les instructions d'installation de leurs pilotes CSI. Consultez la liste des pilotes CSI dans la documentation CSI.
Suivez les instructions d'installation de votre pilote CSI, puis passez aux étapes suivantes de cette page.
Vérifier l'installation du pilote
Après avoir installé un pilote CSI, vous pouvez vérifier l'installation en exécutant les commandes suivantes :
kubectl get csinodes \
-o jsonpath='{range .items[*]} {.metadata.name}{": "} {range .spec.drivers[*]} {.name}{"\n"} {end}{end}'
Utiliser un pilote CSI
Pour utiliser un pilote CSI, procédez comme suit :
Créez une ressource StorageClass personnalisée qui fait référence au pilote dans son champ
provisioner
.Pour provisionner l'espace de stockage, vous pouvez :
- référencer la ressource StorageClass dans la spécification
volumeClaimTemplates
d'un objet StatefulSet ; - la définir en tant que StorageClass par défaut du cluster.
- référencer la ressource StorageClass dans la spécification
Points à prendre en compte concernant les ressources StorageClass reposant sur un pilote CSI
Lorsque vous créez une StorageClass, tenez compte des points suivants :
Consultez la documentation du pilote CSI pour connaître les paramètres spécifiques au pilote que vous devez fournir à votre StorageClass, y compris le nom de l'approvisionneur.
Vous devez nommer la ressource StorageClass en fonction de ses propriétés (telles que
fast
ouhighly-replicated
), plutôt qu'en fonction du nom du pilote ou de l'appareil spécifique qui se trouve derrière. Lorsque vous nommez une StorageClass en fonction de ses propriétés, vous pouvez créer des ressources StorageClass avec le même nom dans différents clusters et environnements. Ensuite, configurez vos charges de travail de sorte qu'elles utilisent la même StorageClass.
Étape suivante
- Créez une ressource StorageClass qui référence le pilote CSI.