En este documento se explica cómo crear una copia o una instantánea de un volumen de almacenamiento en un momento específico para tu aplicación de contenedor. Una captura de volumen te permite restaurar un volumen a un estado anterior o aprovisionar un volumen nuevo.
Este documento está dirigido a los desarrolladores del grupo de operadores de aplicaciones, que son los responsables de crear cargas de trabajo de aplicaciones para su organización. Para obtener más información, consulta Audiencias de la documentación aislada de GDC.
Antes de empezar
Para completar las tareas de este documento, debes tener los siguientes recursos y roles:
Para ejecutar comandos en un clúster de Kubernetes, asegúrate de que tienes los siguientes recursos:
Busca el nombre del clúster de Kubernetes o pregunta a un miembro del grupo de administradores de la plataforma cuál es el nombre del clúster.
Inicia sesión y genera el archivo kubeconfig del clúster de Kubernetes si no tienes uno.
Usa la ruta kubeconfig del clúster de Kubernetes para sustituir
KUBERNETES_CLUSTER_KUBECONFIGen estas instrucciones.
Para obtener los permisos necesarios para gestionar las copias de seguridad de volúmenes en un clúster compartido, pide al administrador de IAM de tu organización que te asigne el rol Administrador de espacio de nombres (
namespace-admin) en el espacio de nombres de tu proyecto.Para obtener los permisos necesarios para gestionar las copias de seguridad de volúmenes en un clúster estándar, pide a tu administrador de gestión de identidades y accesos de la organización que te asigne el rol de desarrollador de clúster (
cluster-developer) en un clúster estándar.
Hacer una captura de volumen
Para hacer una captura de un objeto PersistentVolumeClaim, crea un objeto VolumeSnapshot. El sistema no garantiza la coherencia de los datos. Pausa la aplicación y vacía los datos antes de hacer una captura.
Crea un
VolumeSnapshotrecurso personalizado:kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \ --namespace NAMESPACE apply -f - <<EOF apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshot metadata: name: VOLUME_SNAPSHOT_NAME spec: source: persistentVolumeClaimName: PVC_NAME EOFHaz los cambios siguientes:
KUBERNETES_CLUSTER_KUBECONFIG: el archivo kubeconfig del clúster.NAMESPACE: el espacio de nombres en el que se va a crear la captura del volumen. En el caso de los clústeres compartidos, debe ser un espacio de nombres del proyecto. En los clústeres estándar, puede ser cualquier espacio de nombres.VOLUME_SNAPSHOT_NAME: el nombre del objetoVolumeSnapshot.PVC_NAME: el nombre del PVC para el que vas a crear una instantánea.
La operación de creación de la instantánea se completa cuando el campo
.status.readyToUsepasa a sertrue. Puedes usar el siguiente comando para comprobar el estado:kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG get volumesnapshot \ -o custom-columns='NAME:.metadata.name,READY:.status.readyToUse'Actualiza el manifiesto de PVC con la captura del volumen especificada como fuente de datos:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \ --namespace NAMESPACE apply -f - <<EOF apiVersion: v1 kind: PersistentVolumeClaim metadata: name: PVC_NAME spec: dataSource: name: VOLUME_SNAPSHOT_NAME kind: VolumeSnapshot apiGroup: snapshot.storage.k8s.io storageClassName: standard-rwo accessModes: - ReadWriteOnce resources: requests: storage: 10Gi EOFHaz los cambios siguientes:
KUBERNETES_CLUSTER_KUBECONFIG: el archivo kubeconfig del clúster.NAMESPACE: el espacio de nombres en el que se encuentra el recurso PVC. En el caso de los clústeres compartidos, debe ser un espacio de nombres del proyecto. En los clústeres estándar, puede ser cualquier espacio de nombres.PVC_NAME: el nombre del PVC para el que vas a crear una instantánea.VOLUME_SNAPSHOT_NAME: el nombre de la instantánea del volumen.
Siguientes pasos
- Información general sobre las cargas de trabajo de contenedores
- Crear cargas de trabajo con reconocimiento del estado
- Acceder al almacenamiento persistente