Usar drivers de arquivo CSI (Container Storage Interface) 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 (Container Storage Interface) para arquivos para montar um SMB (Server Message Block) 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 Interface de Armazenamento de Contentores (CSI) é uma norma para expor sistemas de blocos e armazenamento de ficheiros arbitrários a cargas de trabalho em contentores no Kubernetes. Usando CSI, o AKS habilitado pela Arc pode escrever, implantar e iterar plug-ins para expor novos sistemas de armazenamento. Usar CSI também pode melhorar os existentes no Kubernetes sem ter que tocar no código principal do Kubernetes e, em seguida, esperar por 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:
AKS Arc discos que você pode usar para criar um recurso Kubernetes DataDisk . Eles são montados como ReadWriteOnce, portanto, só estão disponíveis para um único pod de cada vez. Para volumes de armazenamento que podem ser acessados por vários pods simultaneamente, use arquivos AKS Arc.
Arquivos 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 (reivindicação de volume persistente).
Usar volumes persistentes de arquivos usando drivers ReadWriteMany CSI
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 as ações SMB ou NFS com antecedência.
Usar drivers SMB
Verifique se o driver SMB está implantado. O driver SMB CSI é instalado por padrão quando você cria um cluster Kubernetes usando o portal do Azure ou o
az aksarc create
comando. Se você criar um cluster 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 NFS é instalado por padrão quando você cria um cluster Kubernetes usando o portal do Azure ou o
az aksarc create
comando. Se você criar um cluster Kubernetes usando--disable-nfs-driver
o , deverá habilitar 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