Partager via


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 :

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 :

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 :

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