Usar instantáneas / clones de volumen en Kubernetes

Una de las características más interesantes de Kubernetes en términos de almacenamiento es el volumen y la instantánea de clonación. Le permite tomar una instantánea del volumen de datos y luego clonarlo en un nuevo volumen, lo que abre una variedad de posibilidades, como copias de seguridad instantáneas o actualizaciones de prueba. Esta función también acerca las implementaciones de Kubernetes a los proveedores de la nube, lo que le permite obtener instantáneas de volumen con un solo clic.

Una palabra de precaución: para la base de datos, es posible que también deba aplicar fsfreeze y FLUSH TABLES WITH READ LOCK o
CERRAR CON LLAVE BINLOG EN ORDEN RESPALDO.

Ahora es mucho más fácil en MySQL 8, porque al igual que con el DDL atómico, MySQL 8 debería proporcionar instantáneas consistentes a prueba de fallos sin bloqueos adicionales.

Revisemos cómo podemos usar esta función. Google Cloud Kubernetes Engine es el operador de Percona Kubernetes para XtraDB Cluster.

Primero, la función de instantáneas todavía está en versión beta, por lo que no está disponible automáticamente. Debes usar la versión 1.14 de GKE o posterior y debes tener lo siguiente habilitado en tu GKE: https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/gce-pd-csi-driver#enabling_on_a_new_cluster.

Está diseñado para habilitar el «Controlador CSI de disco persistente de Compute Engine».

Ahora necesitamos crear un clúster usando storageClassName: standard-rwo para PersistentVolumeClaims. Entonces, la parte relevante en la definición de recursos se ve así:

Supongamos que tenemos cluster1 ejecutándose:

Y queremos clonar un clúster en un nuevo clúster, proporcionándole el mismo conjunto de datos. Claro, se puede hacer con la copia de seguridad en un nuevo volumen, pero las instantáneas y los clones facilitan mucho la tarea. También se necesitan algunos pasos adicionales, los enumeraré como Hoja de referencia.

1. Cree VolumeSnapshotClass (No estoy seguro de por qué esto no está presente de forma predeterminada)

2. Crea una instantánea

3. Clonar en un nuevo volumen

Cabe señalar que necesitamos usar lo siguiente como una convención de nomenclatura de volumen utilizada por Percona XtraDB Cluster Operator, es:

Donde CLUSTERNAME es el nombre que se usa al crear clústeres. Entonces ahora podemos clonar una instantánea en un volumen:

Donde newcluster es el nombre del nuevo clúster.

Importante: El tipo de volumen en storageClassName y accessModes y el tamaño de almacenamiento deben coincidir con el volumen original.

Después del volumen creativo creado, ahora podemos comenzar un nuevo clúster, sin embargo, todavía hay una advertencia; necesitamos usar:

Porque de lo contrario, Percona XtraDB Cluster pensará que los datos de la instantánea no fueron después de un apagado limpio (lo cual es cierto) y se negará a comenzar.

Siempre existe una limitación en este enfoque, que puede resultarle inconveniente: el volumen solo se puede clonar en el mismo espacio de nombres, por lo que no se puede transferir fácilmente del espacio de nombres PRODUCCIÓN al espacio de nombres QA.

Aunque todavía se puede hacer, pero requerirá algunos pasos adicionales y privilegios de administrador de Kubernetes, le mostraré cómo en las siguientes publicaciones del blog.

Author: Ing. Luis

A lo largo de conocer Windows y otros sistemas operativos me eh encontrado con diversos tipos de error, ahora brindo soluciones según mi experiencia-

Deja un comentario