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 pods simultanément, utilisez 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.
Important
À compter de Kubernetes version 1.21, AKS utilise uniquement les pilotes CSI par défaut et la migration CSI est activée. Les volumes persistants dans l’arborescence existants continueront de fonctionner. Toutefois, en interne, Kubernetes contrôle toutes les opérations de gestion du stockage (ciblant précédemment les pilotes dans l’arborescence) au niveau des pilotes CSI.
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.
Notes
Le pilote CSI de disque Azure v2 (préversion) améliore la scalabilité et réduit la latence de basculement des pods. Il utilise des disques partagés pour provisionner des réplicas d’attachement sur plusieurs nœuds de cluster, et s’intègre au planificateur de pods pour garantir qu’un nœud avec un réplica d’attachement est choisi lors d’un basculement de pod. Le pilote CSI de disque Azure v2 (préversion) offre également la possibilité d’optimiser les performances. Si vous souhaitez participer à la préversion, envoyez une demande : https://aka.ms/DiskCSIv2Preview. Cette préversion est fournie sans contrat de niveau de service, et il se peut que vous rencontriez de temps à temps des changements cassants pendant la préversion. La préversion n’est pas recommandée pour les charges de travail de production. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.
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 pour le stockage Blob CSI open source est installé sur votre cluster, désinstallez-le avant d’activer le pilote pour le stockage Blob Azure.
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 -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-blob-driver --disable-snapshot-controller
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 -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-blob-driver --disable-snapshot-controller
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 -n myAKSCluster -g myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller
Migrer des classes de stockage personnalisées dans l’arborescence vers 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.
La migration de ces classes de stockage implique de supprimer celles existantes et de les recréer avec le fournisseur défini sur disk.csi.azure.com si vous utilisez des disques Azure et files.csi.azure.com si vous utilisez Azure Files.
Migrer le provisionneur de classe de stockage
L’exemple de manifeste YAML suivant montre la différence entre la définition de classe de stockage dans l’arborescence configurée pour utiliser des disques Azure et l’équivalent utilisant une définition de classe de stockage CSI. Le système de stockage CSI prend en charge les mêmes fonctionnalités que les pilotes dans l’arborescence, de telle sorte qu’il est seulement nécessaire de changer la valeur de provisioner
.
Définition d’origine de la classe de stockage dans l’arborescence
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: custom-managed-premium
provisioner: kubernetes.io/azure-disk
reclaimPolicy: Delete
parameters:
storageAccountType: Premium_LRS
Définition de la classe de stockage CSI
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: custom-managed-premium
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
parameters:
storageAccountType: Premium_LRS
Le système de stockage CSI prend en charge les mêmes fonctionnalités que les pilotes dans l’arborescence, donc la seule modification nécessaire est le provisionneur.
Migrer des volumes persistants dans l’arborescence
Important
Si votre volume persistant dans l’arborescence reclaimPolicy
est défini sur Delete, vous devez définir sa stratégie sur Retain pour rendre vos données persistantes. Vous pouvez le faire à l’aide d’une opération de correction sur le volume persistant. Par exemple :
kubectl patch pv pv-azuredisk --type merge --patch '{"spec": {"persistentVolumeReclaimPolicy": "Retain"}}'
Migrer des volumes persistants sur des disques Azure dans l’arborescence
Si vous disposez de volumes persistants sur disques Azure dans l’arborescence, obtenez diskURI
depuis les volumes persistants dans l’arborescence, puis suivez ce guide pour configurer les volumes persistants du pilote CSI.
Migrer des volumes persistants Azure Files dans l’arborescence
Si vous disposez de volumes persistants Azure Files dans l’arborescence, récupérez secretName
, shareName
depuis les volumes persistants dans l’arborescence, puis suivez ce guide pour configurer les volumes persistants du pilote CSI.
É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 volume Kubernetes dans l’arborescence vers CSI.