Share via


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

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

Os Arquivos NetApp do Azure dão suporte a volumes que usam 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 Kubernetes do Azure

Esta seção descreve como expor um volume de protocolo duplo do Azure NetApp Files estaticamente ao Kubernetes. São fornecidas instruções para os protocolos SMB e NFS. Você pode expor o mesmo volume via SMB para nós de trabalho do Windows e via NFS para nós de trabalho do Linux.

Criar o volume persistente para NFS

  1. Defina variáveis para uso posterior. Substitua myresourcegroup, myaccountname, mypool1, myvolname por um valor apropriado do seu volume de protocolo duplo.

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

    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 nomeado pv-nfs.yaml e copie no seguinte YAML. Verifique se o servidor corresponde ao endereço IP de saída da etapa anterior e se o caminho corresponde à saída de creationToken cima. 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 kubectl apply comando:

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

    kubectl describe pv pv-nfs
    

Criar uma declaração de volume persistente para NFS

  1. Crie um arquivo nomeado pvc-nfs.yaml e copie no seguinte YAML. Este manifesto cria um PVC nomeado pvc-nfs para o modo de armazenamento e ReadWriteMany acesso de 100Gi, correspondente ao PV que você criou.

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

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

    kubectl describe pvc pvc-nfs
    

Montar dentro de um pod usando NFS

  1. Crie um arquivo nomeado nginx-nfs.yaml e copie no seguinte YAML. Esse manifesto define um nginx pod 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 kubectl applycomando kubectl-apply :

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

    kubectl describe pod nginx-nfs
    
  4. Verifique se o volume foi montado no pod usando kubectl exec para se conectar ao pod e, em seguida, use df -h para verificar se o volume está 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óximos passos

O Astra Trident suporta muitas funcionalidades com os Ficheiros NetApp do Azure. Para obter mais informações, consulte: