Importar un volumen de disco preexistente de Azure
Si ya tienes un volumen de disco de Azure para usar con clústeres de GKE en Azure, puedes crear un objeto PersistentVolume (PV) y reservarlo para un PersistentVolumeClaim (PVC) específico.
En esta página, se explica cómo crear un PV con un volumen existente propagado con datos, y cómo usarlo en un Pod.
Antes de comenzar
Crea un PersistentVolume para un volumen preexistente
Puedes importar un volumen existente si especificas un nuevo PV.
Copia el siguiente YAML en un archivo llamado
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
Reemplaza lo siguiente:
- VOLUME_NAME: nombre para el volumen
- VOLUME_CAPACITY: El tamaño del volumen. Por ejemplo,
30Gi
. Para obtener más información sobre cómo especificar la capacidad de volumen en Kubernetes, consulta el Significado de memoria. STORAGE_CLASS_NAME: El nombre de la StorageClass que aprovisiona el volumen. Por ejemplo, puedes usar el
standard-rwo
predeterminado.SUBSCRIPTION_ID: ID de suscripción de Azure que contiene el volumen.
RESOURCE_GROUP_NAME: grupo de recursos de Azure que contiene el volumen.
DISK_NAME: nombre del volumen de disco de Azure.
FS_TYPE: el tipo de sistema de archivos del volumen. Por ejemplo,
ext4
.
Aplica el YAML al clúster.
kubectl apply -f existing-volume.yaml
Confirma la creación del PV.
kubectl describe pv VOLUME_NAME
El resultado de este comando contiene el estado del PV.
Usa el volumen con un PersistentVolumeClaim y un Pod
Después de importar el volumen, puedes crear un PVC y un Pod que conecte el PVC.
Mediante el siguiente YAML, se crea un PVC y se lo conecta a un Pod que ejecuta el servidor web Nginx. Cópialo en un archivo llamado
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
Reemplaza lo siguiente:
- STORAGE_CLASS: nombre de la StorageClass del
PersistentVolume que creaste antes. Por ejemplo,
standard-rwo
- ACCESS_MODE: modo de acceso del volumen. Para Azure Disk,
usa
ReadWriteOnce
. Para Azure File, usaReadWriteMany
. - VOLUME_CAPACITY: El tamaño del volumen. Por ejemplo,
30Gi
.
- STORAGE_CLASS: nombre de la StorageClass del
PersistentVolume que creaste antes. Por ejemplo,
Aplica el YAML al clúster.
kubectl apply -f nginx.yaml
Verifica el estado de la instancia Nginx con
kubectl describe
. El resultado debería tener unSTATUS
deRunning
.kubectl describe pod web-server
¿Qué sigue?
- Usa controladores de almacenamiento adicionales con GKE en Azure.
- Lee la documentación del controlador CSI de disco de Azure.