Uso de controladores de archivos de interfaz de almacenamiento de contenedores (CSI) en AKS habilitados por Azure Arc
> Se aplica a: AKS en Azure Stack HCI 22H2, AKS en Windows Server, AKS en Azure Local, versión 23H2
En este artículo se describe cómo usar controladores de interfaz de almacenamiento de contenedores (CSI) para archivos para montar un bloque de mensajes del servidor (SMB) o recursos compartidos NFS cuando varios nodos necesitan acceso simultáneo al mismo volumen de almacenamiento en AKS habilitado por Azure Arc.
Introducción a CSI en AKS Arc
La interfaz de almacenamiento de contenedores (CSI) es un estándar para exponer sistemas de almacenamiento de archivos y bloques arbitrarios a cargas de trabajo en contenedores en Kubernetes. Mediante CSI, AKS habilitado por Arc puede escribir, implementar e iterar complementos para exponer nuevos sistemas de almacenamiento. Con CSI también puede mejorar los existentes en Kubernetes sin tener que tocar el código base de Kubernetes y luego esperar sus ciclos de versión.
Los controladores CSI de disco y archivo usados por AKS Arc son controladores compatibles con la especificación CSI.
La compatibilidad con el controlador de almacenamiento CSI en AKS Arc le permite usar:
Discos de AKS Arc que puede usar para crear un recurso de DataDisk de Kubernetes. Estos se montan como ReadWriteOnce, por lo que solo están disponibles para un único pod a la vez. En el caso de los volúmenes de almacenamiento a los que pueden acceder varios pods simultáneamente, use archivos de AKS Arc.
Archivos de AKS Arc que puede usar para montar un recurso compartido SMB o NFS en pods. Se montan como ReadWriteMany, por lo que puede compartir datos entre varios nodos y pods. También se pueden montar como ReadWriteOnce en función de la especificación PVC (notificación de volumen persistente).
Uso de volúmenes persistentes de archivos mediante controladores READWriteMany CSI
Si varios nodos necesitan acceso simultáneo a los mismos volúmenes de almacenamiento en AKS Arc, puede usar controladores CSI para que los archivos monten recursos compartidos SMB o NFS como ReadWriteMany. Debe aprovisionar los recursos compartidos SMB o NFS con antelación.
Uso de controladores de SMB
Asegúrese de que el controlador SMB está implementado. El controlador CSI de SMB se instala de forma predeterminada al crear un clúster de Kubernetes mediante Azure Portal o el
az aksarc create
comando . Si crea un clúster de Kubernetes mediante--disable-smb-driver
, debe habilitar el controlador SMB en este clúster mediante elaz aksarc update
comando :az aksarc update -n $aksclustername -g $resource_group --enable-smb-driver
Cree secretos de Kubernetes para almacenar las credenciales necesarias para acceder a los recursos compartidos de SMB mediante la ejecución del comando siguiente:
kubectl create secret generic smbcreds --from-literal username=$username --from-literal password=$password --from-literal domain=$domain
Cree una clase de almacenamiento mediante
kubectl
para crear una clase de almacenamiento de SMB con el manifiesto siguiente: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
Uso de controladores de NFS
Asegúrese de que el controlador NFS está implementado. El controlador CSI NFS se instala de forma predeterminada al crear un clúster de Kubernetes mediante Azure Portal o el
az aksarc create
comando . Si crea un clúster de Kubernetes mediante--disable-nfs-driver
, debe habilitar el controlador NFS en este clúster mediante elaz aksarc update
comando :az aksarc update -n $aksclustername -g $resource_group --enable-nfs-driver
Cree una clase de almacenamiento de NFS mediante el manifiesto siguiente:
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
Para desinstalar controladores de SMB o NFS
Use los siguientes comandos de la CLI de Azure para desinstalar los controladores SMB o NFS:
az aksarc update -n $aksclustername -g $resource_group --disable-smb-driver
az aksarc update -n $aksclustername -g $resource_group --disable-nfs-driver