Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
> Se aplica a: AKS en Windows Server, AKS en Azure Local
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.
Resumen de 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. CSI también puede mejorar los existentes en Kubernetes sin tener que tocar el código principal de Kubernetes y, a continuación, esperar a sus ciclos de lanzamiento.
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 AKS Arc que puede utilizar para crear un recurso Kubernetes DataDisk. Estos se montan como ReadWriteOnce, por lo que solo están disponibles para un único pod a la vez. Para volúmenes de almacenamiento a los que puedan acceder varios pods simultáneamente, utilice Archivos AKS Arc.
Archivos AKS Arc que puede utilizar para montar un recurso compartido SMB o NFS en los 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 de antemano.
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 el
az aksarc create
comando . Si crea el clúster de AKS mediante Azure Portal, una plantilla de Azure Resource Manager (ARM) o Terraform, el controlador CSI de SMB no se instala de forma predeterminada. Debe habilitar el controlador SMB en el clúster de AKS. El comando equivalente de la CLI de Azure para actualizar un clúster de AKS existente y habilitar SMB es: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
Utilice controladores de NFS
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 el
az aksarc create
comando . Si crea el clúster de AKS mediante Azure Portal, una plantilla de Azure Resource Manager (ARM) o Terraform, el controlador CSI de SMB no se instala de forma predeterminada. Debe habilitar el controlador SMB en el clúster de AKS. El comando equivalente de la CLI de Azure para actualizar un clúster de AKS existente y habilitar SMB es: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