Pilotes CSI (Container Storage interface) dans Azure Kubernetes Service (AKS)
CSI (Container Storage Interface) est une norme pour exposer des systèmes de stockage de blocs et de fichiers arbitraires à des charges de travail conteneurisées sur Kubernetes. En adoptant et en utilisant CSI, AKS (Azure Kubernetes Service) peut écrire, déployer et itérer des plug-ins afin d’exposer de nouveaux systèmes de stockage ou d’améliorer les systèmes existants dans Kubernetes sans avoir à toucher au code Kubernetes principal ou à attendre ses cycles de publication.
La prise en charge du pilote de stockage CSI sur AKS vous permet d’utiliser en mode natif :
- Les disques Azure permettent de créer une ressource DataDisk Kubernetes. Les disques peuvent utiliser un Stockage Premium Azure, assorti de disques SSD haute performance, ou un Stockage Standard Azure, assorti de disques HDD ordinaires ou de disques SSD standard. Pour la plupart des charges de travail de production et de développement, utilisez le Stockage Premium. Les disques Azure sont montés avec le mode ReadWriteOnce et ne sont disponibles que pour un seul nœud dans AKS. Pour les volumes de stockage accessibles par plusieurs nœuds simultanément, utiliser Azure Files.
- Azure Files permet de monter un partage SMB 3.0/3.1 assorti d’un compte de stockage Azure sur des pods. Avec Azure Files, vous pouvez partager des données entre plusieurs nœuds et pods. Azure Files peut utiliser un stockage Standard Azure, assorti de disques HDD standard, ou un stockage Premium Azure, assorti de disques SSD haute performance.
- Le stockage Blob Azure peut être utilisé pour monter le stockage blob (ou le stockage d’objets) en tant que système de fichiers dans un conteneur ou un pod. L’utilisation du stockage Blob permet à votre cluster de prendre en charge les applications qui fonctionnent avec de grands jeux de données non structurés, tels que des données de fichier journal, des images ou des documents, le HPC et d’autres. En outre, si vous ingérez des données dans Stockage du lac de données Azure, vous pouvez le monter et l’utiliser directement dans AKS sans configurer un autre système de fichiers intermédiaire.
Conseil
Si vous souhaitez une solution entièrement managée pour l’accès au niveau du bloc aux données, envisagez d’utiliser Stockage de conteneurs Azure au lieu de pilotes CSI. Stockage de conteneurs Azure s’intègre à Kubernetes, ce qui permet l’approvisionnement dynamique et automatique de volumes persistants. Stockage de conteneurs Azure prend en charge les disques Azure, les disques éphémères et Azure Elastic SAN (préversion) en tant que stockage de secours, offrant ainsi flexibilité et scalabilité pour les applications avec état s'exécutant sur des clusters Kubernetes.
Prérequis
- La version 2.42 ou ultérieure d’Azure CLI doit être installée et configurée. Exécutez
az --version
pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI. - Si le pilote de stockage CSI open source est installé sur votre cluster, désinstallez-le avant d’activer le pilote CSI de stockage Azure.
- Pour appliquer une définition de stratégie Azure Policy pour AKS, les clusters Kubernetes doivent utiliser un pilote Container Storage Interface (CSI) StorageClass. Le module complémentaire Azure Policy doit être activé sur des clusters nouveaux et existants. Pour un cluster existant, passez en revue Découvrir Azure Policy pour Kubernetes afin de l’activer.
Scénarios pris en charge pour le chiffrement de disque
Les pilotes de stockage CSI prennent en charge les scénarios suivants :
- Disques managés chiffrés avec des clés gérées par le client en utilisant des instances Azure Key Vault stockées dans un autre tenant Microsoft Entra.
- Chiffrez vos disques Stockage Azure hébergeant des données d’application et de système d’exploitation AKS avec des clés gérées par le client.
Activer les pilotes de stockage CSI sur un cluster existant
Pour activer les pilotes pour le stockage CSI sur un nouveau cluster, incluez l’un des paramètres suivants en fonction du système de stockage :
--enable-disk-driver
vous permet d’activer le pilote CSI pour les disques Azure.--enable-file-driver
vous permet d’activer le pilote CSI Azure Files.--enable-blob-driver
vous permet d’activer le pilote CSI pour le stockage Blob Azure.--enable-snapshot-controller
vous permet d’activer le contrôleur d’instantané.
az aks update --name myAKSCluster --resource-group myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller
Cette action peut prendre quelques minutes. Une fois l’opération terminée, vous devez voir dans la sortie l’état d’activation du pilote sur votre cluster. L’exemple suivant ressemble à la section indiquant les résultats lors de l’activation du pilote CSI de stockage Blob :
"storageProfile": {
"blobCsiDriver": {
"enabled": true
},
Désactiver les pilotes pour le stockage CSI sur un cluster nouveau ou existant
Pour désactiver les pilotes pour le stockage CSI sur un nouveau cluster, incluez l’un des paramètres suivants en fonction du système de stockage :
--disable-disk-driver
vous permet de désactiver le pilote CSI pour les disques Azure.--disable-file-driver
vous permet de désactiver le pilote CSI Azure Files.--disable-blob-driver
vous permet de désactiver le pilote CSI pour le stockage Blob Azure.--disable-snapshot-controller
vous permet de désactiver le contrôleur d’instantané.
az aks create \
--name myAKSCluster \
--resource-group myResourceGroup \
--disable-disk-driver \
--disable-file-driver \
--disable-blob-driver \
--disable-snapshot-controller \
--generate-ssh-keys
Pour désactiver les pilotes pour le stockage CSI sur un cluster existant, utilisez l’un des paramètres listés plus haut en fonction du système de stockage :
az aks update \
--name myAKSCluster \
--resource-group myResourceGroup \
--disable-disk-driver \
--disable-file-driver \
--disable-blob-driver \
--disable-snapshot-controller
Remarque
Nous vous recommandons de supprimer l’objet PersistentVolumeClaim correspondant au lieu de l’objet PersistentVolume lors de la suppression d’un volume CSI. L’approvisionneur externe dans le pilote CSI réagit à la suppression de PersistentVolumeClaim et, en fonction de sa stratégie de récupération, il émet l’appel DeleteVolume sur les commandes du pilote de volume CSI pour supprimer le volume. L’objet PersistentVolume est ensuite supprimé.
Migrer des classes de stockage personnalisées dans l’arborescence vers CSI
À compter de Kubernetes version 1.26, les types de volumes persistants dans l’arborescence kubernetes.io/azure-disk et kubernetes.io/azure-file sont dépréciés et ne seront plus pris en charge. Les pilotes dans l’arborescence désignent les pilotes de stockage, qui font partie du code Kubernetes principal, contrairement aux pilotes CSI, qui sont des plug-ins.
La suppression de ces pilotes suite à leur dépréciation n’est pas prévue. Cependant, vous devez migrer vers les pilotes CSI disks.csi.azure.com et file.csi.azure.com correspondants. Pour passer en revue les options de migration de vos classes de stockage et mettre à niveau votre cluster afin d’utiliser des disques Azure et des pilotes CSI Azure Files, consultez Migrer de pilotes dans l’arborescence vers les pilotes CSI.
Si vous avez créé des classes de stockage de pilote dans l’arborescence, celles-ci continuent de fonctionner, car la migration CSI est activée après la mise à niveau de votre cluster vers la version 1.21.x. Mais si vous voulez utiliser des fonctionnalités CSI, vous devrez procéder à la migration.
Étapes suivantes
- Pour utiliser le lecteur CSI pour les disques Azure, consultez Utiliser des disques Azure avec des pilotes CSI.
- Pour utiliser le lecteur CSI pour Azure Files, consultez Utiliser Azure Files avec des pilotes CSI.
- Pour utiliser le pilote CSI pour le stockage Blob Azure, consultez Utiliser le stockage Blob Azure avec les pilotes CSI
- Pour plus d’informations sur les bonnes pratiques en matière de stockage, consultez Meilleures pratiques relatives au stockage et aux sauvegardes dans Azure Kubernetes Service (AKS).
- Pour plus d’informations sur la migration CSI, consultez Migration de volumes Kubernetes dans l’arborescence vers CSI.
Azure Kubernetes Service