Usar um compartilhamento de arquivos do Azure

O GKE no Azure oferece suporte à montagem de compartilhamentos de Arquivos do Azure . Se você já possui um compartilhamento de Arquivos do Azure para usar com o GKE no Azure, pode criar um objeto PersistentVolume (PV) e reservá-lo para um PersistentVolumeClaim (PVC) específico.

Esta página explica como criar um PV usando um compartilhamento existente preenchido com dados e como usar o PV em um Pod.

Antes de começar

Armazene as informações da sua conta de armazenamento do Azure

O GKE no Azure armazena informações para acessar sua conta de armazenamento do Azure em um Segredo. Se você não criou um Segredo no seu cluster, precisará adicionar um. Se você tiver esse Segredo no cluster, pule para Criar um PersistentVolume para um compartilhamento preexistente .

  1. Para criar o segredo, copie o seguinte manifesto em um arquivo chamado 'azure-service-account-key.yaml'.

    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: azure-secret-account-key
    type: Opaque
    stringData:
      accountname: STORAGE_ACCOUNT_NAME
      accountkey: STORAGE_ACCOUNT_KEY
    

    Substitua o seguinte:

    • STORAGE_ACCOUNT_NAME : o nome da sua conta de armazenamento do Azure
    • STORAGE_ACCOUNT_KEY : sua chave de conta de armazenamento do Azure
  2. Aplique o arquivo ao seu cluster com a ferramenta kubectl :

    kubectl apply -f azure-service-account-key.yaml
    

Crie um PersistentVolume para um compartilhamento pré-existente

Importe um compartilhamento de arquivos do Azure existente especificando um novo PV no seu cluster. Para criar o PV, faça o seguinte:

  1. Copie o seguinte YAML em um arquivo chamado existing-volume.yaml :

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: VOLUME_NAME
    spec:
      capacity:
        storage: VOLUME_CAPACITY
      storageClassName: standard-rwx
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      csi:
        driver: file.csi.azure.com
        readOnly: false
        volumeHandle: VOLUME_ID
    

    Substitua o seguinte:

    • VOLUME_NAME : um nome para o volume
    • VOLUME_CAPACITY : tamanho do volume. Por exemplo, 30Gi . Para obter mais informações sobre como especificar a capacidade do volume no Kubernetes, consulte o Significado de memória .
    • VOLUME_ID : um ID exclusivo para o volume, formatado como uma sequência de caracteres de RESOURCE_GROUP_NAME # STORAGE_ACCOUNT_NAME # FILESHARE_NAME # onde
    • FILE_SHARE_NAME : o nome do compartilhamento de arquivos do Azure

    Se a sua conta de armazenamento estiver em um grupo de recursos diferente do seu cluster, você precisará adicionar uma referência a um segredo que contenha a chave da sua conta de armazenamento. Para adicionar a referência, insira o seguinte na seção spec.csi :

    # Optional. Only required if your storageAccount is in a different resource group than the cluster.
        nodeStageSecretRef:
          name: NODE_STAGE_SECRET_NAME
          namespace: NODE_STAGE_SECRET_NAMESPACE
    

    Substitua o seguinte:

    • NODE_STAGE_SECRET_NAME : o nome do segredo
    • NODE_STAGE_SECRET_NAMESPACE o namespace que contém o segredo
  2. Aplique o YAML ao seu cluster.

    kubectl apply -f existing-volume.yaml
    
  3. Confirme a criação do seu PV com kubectl describe pv .

    kubectl describe pv VOLUME_NAME
    

    A saída deste comando contém o status do PV.

Use o volume com um PersistentVolumeClaim e Pod

Depois de importar seu volume, você pode criar um PVC e um Pod que monta o PVC.

  1. O YAML a seguir cria um PVC e o anexa a um Pod que executa o servidor web Nginx. Copie-o para um arquivo chamado nginx.yaml :

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: my-pvc
    spec:
      storageClassName: STORAGE_CLASS_NAME
      volumeName: VOLUME_NAME
      accessModes:
        - ACCESS_MODE
      resources:
        requests:
          storage: VOLUME_CAPACITY
    ---
    
    apiVersion: v1
    kind: Pod
    metadata:
      name: web-server
    spec:
      containers:
       - name: web-server
         image: nginx
         volumeMounts:
           - mountPath: /var/lib/www/html
             name: data
      volumes:
       - name: data
         persistentVolumeClaim:
           claimName: my-pvc
    

    Substitua o seguinte:

    • STORAGE_CLASS : o nome da StorageClass do PersistentVolume criado anteriormente. Por exemplo, standard-rwo .
    • ACCESS_MODE : o modo de acesso do volume. Para o Azure Disk, use ReadWriteOnce . Para o Azure File, use ReadWriteMany .
    • VOLUME_CAPACITY : tamanho do volume. Por exemplo, 30Gi .
  2. Aplique o YAML ao seu cluster.

    kubectl apply -f nginx.yaml
    
  3. Verifique o status da sua instância do Nginx com kubectl describe . A saída deve ter o STATUS Running .

    kubectl describe pod web-server
    
  4. Para excluir o Pod, use o comando kubectl delete .

    kubectl delete -f nginx.yaml
    

O que vem a seguir