Usar drivers de arquivo CSI (Interface de Armazenamento de Contêiner) no AKS habilitado pelo Azure Arc
> Aplica-se a: AKS no Azure Stack HCI 22H2, AKS no Windows Server, AKS no Azure Local, versão 23H2
Este artigo descreve como usar drivers CSI (Interface de Armazenamento em Contêiner) para arquivos para montar um SMB (Bloco de Mensagens do Servidor) ou compartilhamentos NFS quando vários nós precisam de acesso simultâneo ao mesmo volume de armazenamento no AKS habilitado pelo Azure Arc.
Visão geral do CSI no AKS Arc
A CSI (Interface de Armazenamento de Contêiner) é um padrão para expor sistemas de blocos e de armazenamento de arquivos arbitrários a cargas de trabalho em contêineres no Kubernetes. Usando o CSI, o AKS habilitado pelo Arc pode gravar, implantar e iterar plug-ins para expor novos sistemas de armazenamento. O uso do CSI também pode melhorar os existentes no Kubernetes sem precisar tocar no código principal do Kubernetes e aguardar seus ciclos de lançamento.
Os drivers CSI de disco e arquivo usados pelo AKS Arc são drivers compatíveis com a especificação CSI.
O suporte ao driver de armazenamento CSI no AKS Arc permite que você use:
Discos do AKS Arc que você pode usar para criar um recurso do Kubernetes DataDisk . Eles são montados como ReadWriteOnce, portanto, estão disponíveis apenas para um único pod por vez. Para volumes de armazenamento que podem ser acessados por vários pods simultaneamente, use arquivos AKS Arc.
Arquivos do AKS Arc que você pode usar para montar um compartilhamento SMB ou NFS em pods. Eles são montados como ReadWriteMany, para que você possa compartilhar dados entre vários nós e pods. Eles também podem ser montados como ReadWriteOnce com base na especificação PVC (declaração de volume persistente).
Usar volumes persistentes de arquivos usando drivers CSI ReadWriteMany
Se vários nós precisarem de acesso simultâneo aos mesmos volumes de armazenamento no AKS Arc, você poderá usar drivers CSI para arquivos para montar compartilhamentos SMB ou NFS como ReadWriteMany. Você deve provisionar os compartilhamentos SMB ou NFS com antecedência.
Usar drivers SMB
Verifique se o driver SMB está implantado. O driver CSI do SMB é instalado por padrão quando você cria um cluster do Kubernetes usando o portal do Azure ou o
az aksarc create
comando. Se você criar um cluster do Kubernetes usando--disable-smb-driver
o , deverá habilitar o driver SMB nesse cluster usando oaz aksarc update
comando:az aksarc update -n $aksclustername -g $resource_group --enable-smb-driver
Crie segredos do Kubernetes para armazenar as credenciais necessárias para acessar compartilhamentos SMB executando o seguinte comando:
kubectl create secret generic smbcreds --from-literal username=$username --from-literal password=$password --from-literal domain=$domain
Crie uma classe de armazenamento usando
kubectl
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
Usar drivers NFS
Verifique se o driver NFS está implantado. O driver CSI do NFS é instalado por padrão quando você cria um cluster do Kubernetes usando o portal do Azure ou o
az aksarc create
comando. Se você criar um cluster do Kubernetes usando--disable-nfs-driver
o , deverá ativar o driver NFS nesse cluster usando oaz aksarc update
comando:az aksarc update -n $aksclustername -g $resource_group --enable-nfs-driver
Crie uma classe de armazenamento NFS usando 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 drivers SMB ou NFS
Use os seguintes comandos da CLI do Azure para desinstalar os drivers 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