Saltar al contenido principal

Configuración y puesta en marcha del clúster

información

💰 Función disponible con la suscripción a Yucca Enterprise

Introducción

En esta guía se describe cómo configurar un clúster de Yucca de 3 nodos. Necesitará tener instalados Yucca y Postgres, ya que en modo clúster solo es posible trabajar con esta base de datos. Así como también una licencia para la cantidad de nodos necesaria.

Puesta en marcha

Para ejecutar Yucca en modo clúster, es necesario habilitar el propio modo e indicar las direcciones mediante las cuales los servidores se comunicarán entre sí. Necesitaremos definir los siguientes parámetros:

  • --cluster=true: habilita el modo clúster.
  • --cluster-advertise-address=127.0.0.1:9941: indica la dirección a través de la cual los demás miembros del clúster pueden contactar a este servidor.
  • --cluster-listen-address=:9941: indica qué puerto se debe escuchar para las solicitudes de los miembros del clúster.
nota

Los parámetros también se pueden definir mediante el archivo de configuración y mediante variables de entorno

Como ejemplo, ejecutaré todo localmente en 1 computadora; en un entorno de trabajo se supone que serían servidores físicos distintos. Cabe destacar que, al ejecutarse en 1 nodo, los servidores deben tener obligatoriamente un state_dir distinto, ya que en este directorio se crea un archivo cluster_node_id que contendrá el identificador único del servidor en el clúster. No elimine ni modifique este archivo. Mediante este identificador, el servidor se reconoce a sí mismo en el clúster; si se elimina, el servidor intentará unirse al clúster como un nuevo nodo y todas las cámaras configuradas previamente serán ignoradas. En caso de trasladar un nodo del clúster a otro hardware, asegúrese de trasladar también este archivo.

Iniciemos el primer nodo de Yucca en el clúster:

/opt/yucca/yucca server \
--data-dir=/opt/yucca/data/cluster/data1 \
--database-type="postgres" \
--telemetry=false \
--smtp-server=false \
--cluster=true \
--cluster-advertise-address=127.0.0.1:9941 \
--cluster-listen-address=0.0.0.0:9941 \
--log-level=debug \
--web.listen-address=0.0.0.0:9911

Segunda instancia de Yucca en el clúster:

/opt/yucca/yucca server \
--data-dir=/opt/yucca/data/cluster/data2 \
--database-type="postgres" \
--telemetry=false \
--smtp-server=false \
--cluster=true \
--cluster-advertise-address=127.0.0.1:9942 \
--cluster-listen-address=0.0.0.0:9942 \
--log-level=debug \
--web.listen-address=0.0.0.0:9912

Tercera instancia de Yucca en el clúster:

/opt/yucca/yucca server \
--data-dir=/opt/yucca/data/cluster/data3 \
--database-type="postgres" \
--telemetry=false \
--smtp-server=false \
--cluster=true \
--cluster-advertise-address=127.0.0.1:9943 \
--cluster-listen-address=0.0.0.0:9943 \
--log-level=debug \
--web.listen-address=0.0.0.0:9913

A continuación, abrimos la interfaz de los 3 servidores. Veremos la página de inicialización de la base de datos en uno de los servidores, el que logró convertirse en líder. El líder es un rol especial del servidor en el clúster; es responsable de numerosas operaciones y del seguimiento de estados en el clúster, aunque al mismo tiempo es un miembro más, que también aloja cámaras, etc. Si el líder actual deja de estar disponible de repente, otro nodo ocupará inmediatamente su lugar. Así, el clúster siempre tiene un líder. El resto de los nodos son miembros o candidatos y esperan a que el líder les permita unirse al clúster.

init1

Después de la inicialización, agregamos la licencia:

nota

Tenga en cuenta que indiqué una licencia para un clúster de 2 nodos, mientras que puse en marcha 3 nodos

license1

El líder también controla las cuotas. Si su licencia tiene una cuota para 2 nodos en el clúster e intenta agregar un 3.º, el nuevo nodo permanecerá en el estado candidato en espera de ingreso al clúster, pero no podrá unirse a él.

cluster1

El líder verifica las cuotas no solo al arrancar, sino también durante el funcionamiento. Por ejemplo, si aplica una licencia con una cuota de 10 nodos, configura todo, y luego aplica una licencia con una cuota de 3 nodos, al advertirlo el líder drenará (sacará de servicio) los nodos sobrantes. La elección de los nodos sobrantes se realiza de forma aleatoria.