Share via


Utilizar controladores de ficheiros da Interface de Armazenamento de Contentores (CSI) no AKS ativado pelo Azure Arc

> Aplica-se a: AKS no Azure Stack HCI 22H2, AKS no Windows Server, AKS no Azure Stack HCI 23H2

Este artigo descreve como utilizar controladores da Interface de Armazenamento de Contentores (CSI) para ficheiros para montar partilhas de Protocolo SMB (Server Message Block) ou NFS quando vários nós precisam de acesso simultâneo ao mesmo volume de armazenamento no AKS ativado pelo Azure Arc.

Descrição geral da CSI no AKS Arc

A Interface de Armazenamento de Contentores (CSI) é uma norma para expor sistemas arbitrários de armazenamento de ficheiros e blocos a cargas de trabalho em contentores no Kubernetes. Ao utilizar a CSI, o AKS ativado pelo Arc pode escrever, implementar e iterar plug-ins para expor novos sistemas de armazenamento. A utilização da CSI também pode melhorar as existentes no Kubernetes sem ter de tocar no código principal do Kubernetes e, em seguida, aguardar pelos respetivos ciclos de lançamento.

Os controladores CSI de disco e ficheiro utilizados pelo AKS Arc são controladores compatíveis com a especificação CSI.

O suporte do controlador de armazenamento CSI no AKS Arc permite-lhe utilizar:

  • Discos do AKS Arc que pode utilizar para criar um recurso do Kubernetes DataDisk . Estes são montados como ReadWriteOnce, pelo que só estão disponíveis para um único pod de cada vez. Para volumes de armazenamento que podem ser acedidos por vários pods em simultâneo, utilize ficheiros arc do AKS.

  • Ficheiros Arc do AKS que pode utilizar para montar uma partilha SMB ou NFS em pods. Estes são montados como ReadWriteMany, para que possa partilhar dados entre vários nós e pods. Também podem ser montados como ReadWriteOnce com base na especificação PVC (afirmação de volume persistente).

Utilizar volumes persistentes de ficheiros com controladores CSI ReadWriteMany

Se vários nós precisarem de acesso simultâneo aos mesmos volumes de armazenamento no AKS Arc, pode utilizar controladores CSI para ficheiros para montar partilhas SMB ou NFS como ReadWriteMany. Tem de aprovisionar as partilhas SMB ou NFS com antecedência.

Utilizar controladores SMB

  1. Certifique-se de que o controlador SMB está implementado. O controlador SMB CSI é instalado por predefinição quando cria um cluster do Kubernetes com o portal do Azure ou o az aksarc create comando . Se criar um cluster do Kubernetes com --disable-smb-drivero , tem de ativar o controlador SMB neste cluster com o az aksarc update comando :

    az aksarc update -n $aksclustername -g $resource_group --enable-smb-driver
    
  1. Crie segredos do Kubernetes para armazenar as credenciais necessárias para aceder às partilhas SMB ao executar o seguinte comando:

    kubectl create secret generic smbcreds --from-literal username=$username --from-literal password=$password --from-literal domain=$domain
    
  2. Crie uma classe de armazenamento com kubectl o para criar uma nova classe de armazenamento SMB com o seguinte manifesto:

    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
    

Utilizar controladores NFS

  1. Certifique-se de que o controlador NFS está implementado. O controlador NFS CSI é instalado por predefinição quando cria um cluster do Kubernetes com o portal do Azure ou o az aksarc create comando . Se criar um cluster do Kubernetes com --disable-nfs-drivero , tem de ativar o controlador NFS neste cluster com o az aksarc update comando :

    az aksarc update -n $aksclustername -g $resource_group --enable-nfs-driver
    
  1. Crie uma classe de armazenamento NFS com o seguinte manifesto:

    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 SMB ou NFS

Utilize os seguintes comandos da CLI do Azure para desinstalar os controladores 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

Passos seguintes