Usar un recurso compartido de archivos de Azure
GKE en Azure permite montar recursos compartidos de Azure Files . Si ya tiene un recurso compartido de Azure Files para usar con GKE en Azure, puede crear un objeto PersistentVolume (PV) y reservarlo para un PersistentVolumeClaim (PVC) específico.
Esta página explica cómo crear un PV usando un recurso compartido existente lleno de datos y cómo usar el PV en un Pod.
Antes de empezar
- Conéctese a su clúster
- Tener acceso a un recurso compartido de archivos de Azure o crear uno. Para obtener más información, consulte Crear un recurso compartido de archivos de Azure .
Almacene la información de su cuenta de almacenamiento de Azure
GKE en Azure almacena la información para acceder a su cuenta de almacenamiento de Azure en un secreto. Si no ha creado un secreto en su clúster, debe agregar uno. Si ya tiene este secreto en su clúster, vaya a "Crear un volumen persistente para un recurso compartido preexistente" .
Para crear el secreto, copie el siguiente manifiesto en un archivo llamado '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
Reemplace lo siguiente:
- STORAGE_ACCOUNT_NAME : el nombre de su cuenta de almacenamiento de Azure
- STORAGE_ACCOUNT_KEY : su clave de cuenta de almacenamiento de Azure
Aplique el archivo a su clúster con la herramienta
kubectl
:kubectl apply -f azure-service-account-key.yaml
Crear un PersistentVolume para un recurso compartido preexistente
Para importar un recurso compartido de archivos de Azure existente, especifique un nuevo PV en el clúster. Para crear el PV, siga estos pasos:
Copie el siguiente YAML en un archivo llamado
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
Reemplace lo siguiente:
- VOLUME_NAME : un nombre para el volumen
- VOLUME_CAPACITY : tamaño del volumen. Por ejemplo,
30Gi
. Para obtener más información sobre cómo especificar la capacidad del volumen en Kubernetes, consulte el significado de memoria . - VOLUME_ID : un ID único para el volumen, formateado como una cadena de
RESOURCE_GROUP_NAME # STORAGE_ACCOUNT_NAME # FILESHARE_NAME #
donde - FILE_SHARE_NAME : el nombre del recurso compartido de archivos de Azure
Si su cuenta de almacenamiento pertenece a un grupo de recursos diferente al de su clúster, debe agregar una referencia a un secreto que contenga la clave de su cuenta de almacenamiento. Para agregar la referencia, inserte lo siguiente en la sección
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
Reemplace lo siguiente:
- NODE_STAGE_SECRET_NAME : el nombre del secreto
- NODE_STAGE_SECRET_NAMESPACE el espacio de nombres que contiene el secreto
Aplique el YAML a su clúster.
kubectl apply -f existing-volume.yaml
Confirme la creación de su PV con
kubectl describe pv
.kubectl describe pv VOLUME_NAME
La salida de este comando contiene el estado del PV.
Utilice el volumen con un PersistentVolumeClaim y Pod
Después de haber importado su volumen, puede crear un PVC y un Pod que monte el PVC.
El siguiente YAML crea un PVC y lo conecta a un pod que ejecuta el servidor web Nginx. Cópielo 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
Reemplace lo siguiente:
- STORAGE_CLASS : el nombre de la clase de almacenamiento del volumen persistente creado anteriormente. Por ejemplo,
standard-rwo
. - ACCESS_MODE : el modo de acceso del volumen. Para discos de Azure, use
ReadWriteOnce
. Para archivos de Azure, useReadWriteMany
. - VOLUME_CAPACITY : tamaño del volumen. Por ejemplo,
30Gi
.
- STORAGE_CLASS : el nombre de la clase de almacenamiento del volumen persistente creado anteriormente. Por ejemplo,
Aplique el YAML a su clúster.
kubectl apply -f nginx.yaml
Comprueba el estado de tu instancia de Nginx con
kubectl describe
. La salida debe tener elSTATUS
EnRunning
.kubectl describe pod web-server
Para eliminar el Pod, utilice el comando
kubectl delete
.kubectl delete -f nginx.yaml
¿Qué sigue?
- Utilice controladores de almacenamiento adicionales con GKE en Azure.
- Lea la documentación del controlador CSI de archivos de Azure .