Compartir a través de


Utilice los controladores de archivos de Interfaz de Almacenamiento de Contenedores (CSI) en AKS habilitados mediante Azure Arc.

> 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

  1. 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
    
  1. 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
    
  2. 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

  1. 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
    
  1. 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

Pasos siguientes