Importar um volume de disco do Azure preexistente
Se você já tem um volume do Disco do Azure para usar com o GKE no Azure, é possível criar um objeto PersistentVolume (PV) e reservá-lo para um PersistentVolumeClaim (PVC) específico.
Nesta página, explicamos como criar um PV usando um volume atual preenchido com dados e como usá-lo em um pod.
Antes de começar
Como criar um PersistentVolume para um volume preexistente
É possível importar um volume EBS atual especificando um novo PV.
Copie o seguinte YAML para um arquivo chamado
existing-volume.yaml
.:apiVersion: v1 kind: PersistentVolume metadata: name: VOLUME_NAME annotations: pv.kubernetes.io/provisioned-by: disk.csi.azure.com spec: capacity: storage: VOLUME_CAPACITY accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: STORAGE_CLASS_NAME claimRef: name: my-pvc namespace: default csi: driver: disk.csi.azure.com volumeHandle: /subscriptions/SUBSCRIPTION_ID/resourcegroups/RESOURCE_GROUP_NAME/providers/microsoft.compute/disks/DISK_NAME fsType: FILE_SYSTEM_TYPE
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. STORAGE_CLASS_NAME: nome do StorageClass que provisiona o volume. Por exemplo, use o padrão
.standard-rwo
.SUBSCRIPTION_ID: o ID da assinatura do Azure que contém o volume.
RESOURCE_GROUP_NAME: o grupo de recursos do Azure que contém o volume.
DISK_NAME: o nome do disco do Azure.
FS_TYPE: o tipo de sistema de arquivos do volume. Por exemplo,
ext4
.
Aplicar o YAML ao cluster
kubectl apply -f existing-volume.yaml
Confirmar a criação do 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,
Aplicar 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
A seguir
- Use outros drivers de armazenamento com o GKE no Azure.
- Leia a documentação do driver CSI do disco do Azure.