Compartilhar via


Provisionar os volumes de protocolo duplo do Azure NetApp Files para o Serviço de Kubernetes do Azure

Depois de configurar o Azure NetApp Files para o Serviço de Kubernetes do Azure, você pode provisionar os volumes do Azure NetApp Files para um Serviço de Kubernetes do Azure.

O Azure NetApp Files dá suporte aos volumes que utilizam NFS (NFSv3 ou NFSv4.1), SMB e protocolo duplo (NFSv3 e SMB ou NFSv4.1 e SMB).

Este artigo mostra como provisionar volumes estaticamente para acesso de protocolo duplo usando NFS ou SMB.

Antes de começar

Provisionar um volume de protocolo duplo no Serviço de Kubernetes do Azure

Esta seção descreve como expor um volume de protocolo duplo do Azure NetApp Files para o Kubernetes de modo estático. São fornecidas orientações para ambos os protocolos SMB e NFS. Você pode expor o mesmo volume por meio de SMB para nós de trabalho do Windows e por meio de nós de trabalho NFS para Linux.

Criar o volume persistente para NFS

  1. Definir variáveis para usar mais tarde. Substitua myresourcegroup, myaccountname, mypool1, myvolname por um valor apropriado de seu volume de protocolo duplo.

    RESOURCE_GROUP="myresourcegroup"
    ANF_ACCOUNT_NAME="myaccountname"
    POOL_NAME="mypool1"
    VOLUME_NAME="myvolname"
    
  2. Liste os detalhes do volume usando o comando az netappfiles volume show.

    az netappfiles volume show \
        --resource-group $RESOURCE_GROUP \
        --account-name $ANF_ACCOUNT_NAME \
        --pool-name $POOL_NAME \
        --volume-name $VOLUME_NAME -o JSON
    

    A saída a seguir é um exemplo do comando acima executado com valores reais.

    {
      ...
      "creationToken": "myfilepath2",
      ...
      "mountTargets": [
        {
          ...
          "ipAddress": "10.0.0.4",
          ...
        }
      ],
      ...
    }
    
  3. Crie um arquivo chamado pv-nfs.yaml e copie no YAML a seguir. Certifique-se de que o servidor corresponda ao endereço IP de saída da etapa anterior, e que o caminho corresponda à saída de creationToken acima. A capacidade também deve corresponder ao tamanho do volume da Etapa 2.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-nfs
    spec:
      capacity:
        storage: 100Gi
      accessModes:
        - ReadWriteMany
      mountOptions:
        - vers=3
      nfs:
        server: 10.0.0.4
        path: /myfilepath2
    
  4. Crie o volume persistente usando o comando kubectl apply:

    kubectl apply -f pv-nfs.yaml
    
  5. Verifique se o status do volume persistente é Disponível usando o comando kubectl describe:

    kubectl describe pv pv-nfs
    

Criar uma declaração de volume persistente para NFS

  1. Crie um arquivo chamado pvc-nfs.yaml e copie no YAML a seguir. Esse manifesto cria um PVC chamado pvc-nfs para o modo de acesso ReadWriteMany e armazenamento de 100Gi, correspondendo ao PV criado.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-nfs
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: ""
      resources:
        requests:
          storage: 100Gi
    
  2. Crie a declaração do volume persistente usando o comando kubectl apply:

    kubectl apply -f pvc-nfs.yaml
    
  3. Verifique se o Status da declaração de volume persistente é Limitado usando o comando kubectl describe:

    kubectl describe pvc pvc-nfs
    

Montar em um pod usando NFS

  1. Crie um arquivo chamado nginx-nfs.yaml e copie no YAML a seguir. Esse manifesto define um pod nginx que usa a declaração de volume persistente.

    kind: Pod
    apiVersion: v1
    metadata:
      name: nginx-nfs
    spec:
      containers:
      - image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
        name: nginx-nfs
        command:
        - "/bin/sh"
        - "-c"
        - while true; do echo $(date) >> /mnt/azure/outfile; sleep 1; done
        volumeMounts:
        - name: disk01
          mountPath: /mnt/azure
      volumes:
      - name: disk01
        persistentVolumeClaim:
          claimName: pvc-nfs
    
  2. Crie o pod usando o comando kubectl applykubectl-apply:

    kubectl apply -f nginx-nfs.yaml
    
  3. Verifique se o pod está Em execução usando o comando kubectl apply:

    kubectl describe pod nginx-nfs
    
  4. Verifique se o volume foi montado no pod usando kubectl exec para se conectar ao pod e df -h para verificar se o volume foi montado.

    kubectl exec -it nginx-nfs -- sh
    
    / # df -h
    Filesystem             Size  Used Avail Use% Mounted on
    ...
    10.0.0.4:/myfilepath2  100T  384K  100T   1% /mnt/azure
    ...
    

Próximas etapas

O Astra Trident é compatível com muitos recursos do Azure NetApp Files. Para obter mais informações, consulte: