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
- Conecte-se ao seu cluster
- Tenha acesso ou crie um compartilhamento de arquivos do Azure. Para obter mais informações, consulte Criar um compartilhamento de arquivos do Azure .
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 .
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
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:
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
Aplique o YAML ao seu cluster.
kubectl apply -f existing-volume.yaml
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.
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, useReadWriteMany
. - VOLUME_CAPACITY : tamanho do volume. Por exemplo,
30Gi
.
- STORAGE_CLASS : o nome da StorageClass do PersistentVolume criado anteriormente. Por exemplo,
Aplique o YAML ao seu cluster.
kubectl apply -f nginx.yaml
Verifique o status da sua instância do Nginx com
kubectl describe
. A saída deve ter oSTATUS
Running
.kubectl describe pod web-server
Para excluir o Pod, use o comando
kubectl delete
.kubectl delete -f nginx.yaml
O que vem a seguir
- Use drivers de armazenamento adicionais com o GKE no Azure.
- Leia a documentação do driver CSI do arquivo Azure .