Conversión de réplica a cluster independiente con CloudNativePG en Kubernetes
Conversión de réplica a cluster independiente con CloudNativePG en Kubernetes

CloudNativePG – Replica Cluster – III

Distributed Topology

Este es el último blog de esta serie que hemos querido acometer para explicar las diferentes configuraciones que introdujimos en el primer blog “CloudNativePG – Replica Cluster – I”. En este blog realizaremos una configuración sencilla de un cluster en la configuración denominada: Distributed Topology.

Con esta configuración, CloudNativePG puede controlar de forma declarativa la degradación de un clúster principal (demotion) y la posterior promoción (promotion) de un clúster de réplica mediante un token de promoción. De esta manera sencilla podemos conseguir hacer una “promoción” controlada entre dos cluster diferentes.

Ejemplo práctico

1. Creamos el cluster principal

Este cluster se replicará vía streaming-replication con otro cluster secundario (lo habitual sería hacerlo vía barmanObjectStore, pero no queremos añadir complejidad al ejemplo).

2. Creamos el cluster con Distributed Topology

Ahora verificamos que la replicación entre los dos cluster está activa y funcionando.

En este momento, podríamos realizar un “switchover” controlado entre los dos cluster. Para ello realizamos los siguientes pasos:

3. Verificamos que el cluster DR (secundario) está en modo lectura

4. Realizamos el demotion del cluster principal

Esto degrada el cluster principal a un cluster réplica (read-only) y el cluster-DR se promueve a cluster primario:

  • cluster-dt-principal ==> se convierte en réplica cluster
  • cluster-dt-dr ==> se convierte en el nuevo cluster primario

5. Editamos el archivo cluster-dt-principal.yaml

Modificamos el campo replica=<clustername> con el cluster que se convertirá en el nuevo primario.

6. Aplicamos los cambios al cluster-dt-principal

En este momento, el cluster principal se queda en modo READ-ONLY y genera el demotionToken (JSON codificado en base64).

7. Verificamos que el cluster-dt-principal ahora está en modo read-only

8. Obtenemos la información del demotionToken del cluster antiguo

9. Realizamos el promote del cluster-dt-dr como nuevo Primary Cluster

Verificamos que el cluster-dt-dr sigue en modo read-only.

Modificamos el cluster-dt-dr para que se convierta en el nuevo cluster primario y cambiamos la etiqueta primary con el nombre del nuevo primario (en este caso el DR) y añadimos el promotionToken.

10. Configuramos el cluster aplicando los cambios en el manifiesto

Una vez aplicados los cambios, verificamos que se ha realizado el switchover entre ambos datacenters. Comprobaremos que ahora en el cluster DR se permite escribir datos.

Verificamos que el cluster-dt-principal ahora es réplica-cluster del cluster-dt-replica y que está en modo lectura.


Conclusiones

Como se puede comprobar, este tipo de arquitectura puede ser de mucha utilidad en entornos que queramos tener alta disponibilidad (HA) en múltiples datacenters (separados geográficamente, por ejemplo) y disponer de cierta manera un control de cuándo realizar un cambio de datacenter de una forma segura.

Share on:

Categories

Latest posts

SUSE Liberty Linux, la alternativa sin migración para usuarios de CentOS 7 y 8.5
Muchas empresas se enfrentan a decisiones difíciles: ¿migrar a otra distribución? ¿Asumir los riesgos de seguir sin soporte? ¿Invertir en [...]
Gráfico sobre el aumento de ciberataques con inteligencia artificial en 2025
En los últimos años, la Inteligencia Artificial (IA) se ha convertido en una aliada esencial para la defensa cibernética, potenciando [...]
Configuración práctica de un Standalone Replica Cluster en Kubernetes con CloudNativePG

Standalone Replica Cluster En este segundo blog, continuación de “CloudNativePG – Replica Cluster – I”, queremos hacer un ejemplo sencillo [...]

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.