Use uma partilha de ficheiros do Azure
O GKE no Azure suporta a montagem de partilhas do Azure Files. Se já tiver uma partilha de ficheiros 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 uma partilha existente preenchida com dados e como usar o PV num podcast.
Antes de começar
- Estabeleça ligação ao seu cluster
- Ter acesso ou criar uma partilha de ficheiros do Azure. Para mais informações, consulte o artigo Crie uma partilha de ficheiros do Azure.
Armazene as informações da sua conta de armazenamento do Azure
O GKE no Azure armazena informações para aceder à sua conta de armazenamento do Azure num segredo. Se não tiver criado um segredo no cluster, tem de adicionar um. Se tiver este segredo no cluster, avance para Criar um PersistentVolume para uma partilha pré-existente.
Para criar o segredo, copie o seguinte manifesto para um ficheiro denominado "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: a chave da sua conta de armazenamento do Azure
Aplique o ficheiro ao seu cluster com a ferramenta
kubectl
:kubectl apply -f azure-service-account-key.yaml
Crie um PersistentVolume para uma partilha pré-existente
Importa uma partilha de ficheiros do Azure existente especificando um novo PV no cluster. Para criar a PV, faça o seguinte:
Copie o seguinte YAML para um ficheiro com o nome
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 mais informações sobre como especificar a capacidade do volume no Kubernetes, consulte o artigo 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#
, onde - FILE_SHARE_NAME: o nome da partilha de ficheiros do Azure
Se a sua conta de armazenamento estiver num grupo de recursos diferente do seu cluster, tem de 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 secçã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 espaço de nomes 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
O resultado deste comando contém o estado da PV.
Use o volume com um PersistentVolumeClaim e um pod
Depois de importar o volume, pode criar um PVC e um pod que monte o PVC.
O YAML seguinte cria um PVC e anexa-o a um pod que executa o servidor Web Nginx. Copie-o para um ficheiro com o nome
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 que criou anteriormente. Por exemplo,
standard-rwo
. - ACCESS_MODE: o modo de acesso do volume. Para o disco do Azure,
use
ReadWriteOnce
. Para o Azure File, useReadWriteMany
. - VOLUME_CAPACITY: tamanho do volume. Por exemplo,
30Gi
.
- STORAGE_CLASS: o nome da StorageClass do PersistentVolume que criou anteriormente. Por exemplo,
Aplique o YAML ao seu cluster.
kubectl apply -f nginx.yaml
Verifique o estado da sua instância do Nginx com
kubectl describe
. O resultado deve ter umSTATUS
deRunning
.kubectl describe pod web-server
Para eliminar o pod, use o comando
kubectl delete
.kubectl delete -f nginx.yaml
O que se segue?
- Use controladores de armazenamento adicionais com o GKE no Azure.
- Leia a documentação do controlador CSI de ficheiros do Azure.