Utiliser des pilotes de fichiers CSI (Container Storage Interface) dans AKS activés par Azure Arc
> S’applique à : AKS sur Azure Stack HCI 22H2, AKS sur Windows Server, AKS sur Azure Local, version 23H2
Cet article explique comment utiliser des pilotes CSI (Container Storage Interface) pour les fichiers pour monter un partage SMB (Server Message Block) ou NFS lorsque plusieurs nœuds ont besoin d’un accès simultané au même volume de stockage dans AKS activé par Azure Arc.
Vue d’ensemble de CSI dans AKS Arc
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. À l’aide de CSI, AKS activé par Arc peut écrire, déployer et itérer des plug-ins pour exposer de nouveaux systèmes de stockage. L’utilisation de CSI peut aussi améliorer ceux existants dans Kubernetes sans avoir à modifier le code de Kubernetes et attendre ses cycles de publication.
Les pilotes CSI de disque et de fichier utilisés par AKS Arc sont des pilotes conformes aux spécifications CSI.
La prise en charge du pilote de stockage CSI sur AKS Arc vous permet d’utiliser :
Disques AKS Arc que vous pouvez utiliser pour créer une ressource DataDisk Kubernetes. Ces disques étant montés en tant que ReadWriteOnce, ils ne sont disponibles que pour un seul pod à la fois. Pour les volumes de stockage accessibles simultanément par plusieurs pods, utilisez des fichiers AKS Arc.
Fichiers AKS Arc que vous pouvez utiliser pour monter un partage SMB ou NFS sur des pods. Ces fichiers étant montés en tant que ReadWriteMany, vous pouvez partager des données entre plusieurs nœuds et pods. Ils peuvent également être montés en tant que ReadWriteOnce en fonction de la spécification PVC.
Utiliser des volumes persistants de fichiers à l’aide de pilotes CSI ReadWriteMany
Si plusieurs nœuds ont besoin d’un accès simultané aux mêmes volumes de stockage dans AKS Arc, vous pouvez utiliser des pilotes CSI pour monter des partages SMB ou NFS en tant que ReadWriteMany. Vous devez provisionner les partages SMB ou NFS à l’avance.
Utiliser des pilotes SMB
Vérifiez que le pilote SMB est déployé. Le pilote CSI SMB est installé par défaut lorsque vous créez un cluster Kubernetes à l’aide de la Portail Azure ou de la
az aksarc create
commande. Si vous créez un cluster Kubernetes à l’aide--disable-smb-driver
de , vous devez activer le pilote SMB sur ce cluster à l’aide de laaz aksarc update
commande :az aksarc update -n $aksclustername -g $resource_group --enable-smb-driver
Créez des secrets Kubernetes afin de stocker les informations d’identification nécessaires pour accéder aux partages SMB en exécutant la commande suivante :
kubectl create secret generic smbcreds --from-literal username=$username --from-literal password=$password --from-literal domain=$domain
Créez une classe de stockage en utilisant
kubectl
pour créer une classe de stockage SMB avec le manifeste suivant :apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: smb-csi provisioner: smb.csi.akshci.com parameters: source: \\smb-server\share csi.storage.k8s.io/node-stage-secret-name: "smbcreds" csi.storage.k8s.io/node-stage-secret-namespace: "default" reclaimPolicy: Retain # only Retain is supported volumeBindingMode: Immediate mountOptions: - dir_mode=0777 - file_mode=0777 - uid=1001 - gid=1001
Utiliser des pilotes NFS
Vérifiez que le pilote NFS est déployé. Le pilote CSI NFS est installé par défaut lorsque vous créez un cluster Kubernetes à l’aide de la Portail Azure ou de la
az aksarc create
commande. Si vous créez un cluster Kubernetes à l’aide--disable-nfs-driver
de , vous devez activer le pilote NFS sur ce cluster à l’aide de laaz aksarc update
commande :az aksarc update -n $aksclustername -g $resource_group --enable-nfs-driver
Créez une classe de stockage NFS avec le manifeste suivant :
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: nfs-csi provisioner: nfs.csi.akshci.com parameters: server: nfs-server.default.svc.cluster.local # NFS server endpoint share: / # NFS share path reclaimPolicy: Retain volumeBindingMode: Immediate mountOptions: - hard - nfsvers=4.1
Pour désinstaller les pilotes SMB ou NFS
Utilisez les commandes Azure CLI suivantes pour désinstaller les pilotes SMB ou NFS :
az aksarc update -n $aksclustername -g $resource_group --disable-smb-driver
az aksarc update -n $aksclustername -g $resource_group --disable-nfs-driver