Share via


Uso de controladores de archivos de la 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 Stack HCI 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 del controlador de almacenamiento CSI en AKS Arc le permite usar:

  • Discos de AKS Arc que puede usar para crear un recurso dataDisk de Kubernetes. Estos se montan como ReadWriteOnce, por lo que solo están disponibles para un único pod a la vez. Para 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 los 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

  1. Asegúrese de que el controlador SMB está implementado. El controlador CSI de SMB se instala de forma predeterminada cuando se crea un clúster de Kubernetes mediante el 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 el az aksarc update comando :

    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
    

Uso de controladores de NFS

  1. Asegúrese de que el controlador NFS está implementado. El controlador NFS CSI se instala de forma predeterminada al crear un clúster de Kubernetes mediante el 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 el az aksarc update comando :

    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