Usar um compartilhamento de arquivos do Azure
O GKE no Azure é compatível com a montagem de compartilhamentos de Arquivos do Azure. Se você já tiver um compartilhamento de arquivos do Azure para usar com o GKE no Azure, crie um objeto PersistentVolume (PV) e reserve-o para um PersistentVolumeClaim (PVC) específico.
Nesta página, explicamos como criar um PV usando um compartilhamento existente preenchido com dados e como usá-lo em um pod.
Antes de começar
- Conectar-se ao seu cluster
- Ter acesso ou criar um compartilhamento de arquivos do Azure Para mais informações, consulte Criar um compartilhamento de arquivos do Azure.
Armazenar as informações da conta de armazenamento do Azure
O GKE no Azure armazena informações de acesso à conta de armazenamento do Azure em um secret. Se você não tiver criado um secret no cluster, é necessário adicionar um. Se você tiver esse secret no cluster, pule para Criar um PersistentVolume para um compartilhamento preexistente.
Para criar o secret, copie o manifesto a seguir 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:
- STORAGE_ACCOUNT_NAME: o nome da conta de armazenamento do Azure
- STORAGE_ACCOUNT_KEY: a chave da conta de armazenamento do Azure
Aplique o arquivo ao cluster com a ferramenta
kubectl
:kubectl apply -f azure-service-account-key.yaml
Como criar um PersistentVolume para um compartilhamento preexistente
Para importar um compartilhamento de arquivos existente do Azure, especifique um novo PV no cluster. Para criar o PV, faça o seguinte:
Copie o seguinte YAML para 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:
- VOLUME_NAME: um nome para o volume
- VOLUME_CAPACITY: tamanho do volume. Por exemplo,
30Gi
. Para mais informações sobre como especificar a capacidade do volume no Kubernetes, consulte o Significado da memória. - VOLUME_ID: um ID exclusivo para o volume, formatado como uma string de
RESOURCE_GROUP_NAME#STORAGE_ACCOUNT_NAME#FILESHARE_NAME#
em que - FILE_SHARE_NAME: o nome do compartilhamento de arquivos do Azure
Se a conta de armazenamento estiver em um grupo de recursos diferente do cluster, será necessário adicionar uma referência a um secret que contenha a chave da 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:
- NODE_STAGE_SECRET_NAME: o nome do secret
- NODE_STAGE_SECRET_NAMESPACE é o namespace que contém o secret.
Aplique o YAML ao cluster.
kubectl apply -f existing-volume.yaml
Confirme a criação do PV com
kubectl describe pv
.kubectl describe pv VOLUME_NAME
A saída desse comando contém o status do PV.
Como usar o volume com um PersistentVolumeClaim e um pod
Depois de importar o volume, é possível criar um PVC e um Pod que anexe o PVC.
O YAML a seguir cria um PVC e o anexa a um Pod que executa o servidor da 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:
- STORAGE_CLASS: o nome do StorageClass do
PersistentVolume criado anteriormente. Por exemplo,
standard-rwo
. - ACCESS_MODE: o modo de acesso do volume. No Azure Disk,
use
ReadWriteOnce
. Para os Arquivos do Azure, useReadWriteMany
. - VOLUME_CAPACITY: tamanho do volume. Por exemplo,
30Gi
.
- STORAGE_CLASS: o nome do StorageClass do
PersistentVolume criado anteriormente. Por exemplo,
Aplique o YAML ao cluster.
kubectl apply -f nginx.yaml
Verifique o status da sua instância do Nginx com
kubectl describe
. A saída precisa ter umSTATUS
deRunning
.kubectl describe pod web-server
Para excluir o pod, use o comando
kubectl delete
.kubectl delete -f nginx.yaml
A seguir
- Use outros drivers de armazenamento com o GKE no Azure.
- Leia a documentação do driver CSI de arquivo do Azure.