Cómo configurar Redis para alta disponibilidad con Sentinel en CentOS 8-Parte 2

Cómo configurar Redis para alta disponibilidad con Sentinel en CentOS 8-Parte 2

Redis. proporciona alta disponibilidad a través del sistema distribuido Redis Sentinel. Sentinel. ayuda a monitorear instancias de Redis. detecta fallas y realiza cambios de roles automáticamente, lo que permite que una implementación de Redis. resista cualquier tipo de fallas.

Cuenta con monitoreo de instancias Redis. (maestras y réplicas), admite la notificación de otros servicios/procesos o al administrador del sistema a través de un script, conmutación por error automática para promover una réplica a maestra cuando el master se desactiva y proporciona la configuración para que los clientes descubran el master actual que ofrece un servicio en particular.

Este artículo demuestra cómo configurar Redis. para alta disponibilidad con Redis Sentinel. en CentOS 8. incluida la configuración de centinelas, la verificación del estado de configuración y la prueba de una conmutación por error de Sentinel.

Requisito previo:

  1. Cómo configurar Replicación de Redis (con el modo de clúster deshabilitado) en CentOS 8-Parte 1

Configuración del entorno de prueba Maestro Servidor y Sentinel1. 10.42.0.247 Redis Replica1 y Sentinel2. 10.42.0.21 Redis Replica2 y Sentinel3. 10.42.0.34  Diagrama lógico de configuración de Redis Sentinel  Diagrama lógico de configuración de Redis Sentinel Diagrama lógico de configuración de Redis Sentinel

De acuerdo con la documentación de Redis Sentinel. se necesitan al menos tres Sentinel. instancias para una implementación robusta. Teniendo en cuenta nuestra configuración anterior, si el maestro. falla, Sentinels2. y Sentinel3. estarán de acuerdo sobre el error y podrán autorizar una conmutación por error, lo que las operaciones del cliente pueden continuar.

Paso 1: Iniciar y habilitar el servicio Redis Sentinel

1.. En CentOS 8. el El servicio Redis Sentinel. se instala junto con el servidor Redis. (lo que ya hicimos en la configuración de la replicación de Redis).

freestar.config.enabled_slots.push

Para iniciar el servicio centinela de Redis. y permitir que se inicie automáticamente al arrancar el sistema, utilice los siguientes comandos de systemctl. . Además, confirme que está en funcionamiento comprobando su estado. (haga esto en todos los nodos):

# systemctl start redis-sentinel # systemctl enable redis-sentinel # systemctl status redis-sentinel  Iniciar el servicio Redis Sentinel  Iniciar el servicio Redis Sentinel Iniciar el servicio Redis Sentinel

Paso 2: Configurar Redis Sentinel en todos los nodos de Redis

2.. En esta sección, explicamos cómo configurar Sentinel. en todos nuestros nodos. El servicio Sentinel. tiene un formato de configuración similar al del servidor Redis. Para configurarlo, use el archivo de configuración autodocumentado /etc/redis-sentinel.conf.

Primero, cree una copia de seguridad del archivo original y ábralo para editarlo.

# cp/etc/redis-sentinel.conf/etc/redis-sentinel.conf.orig # vi/etc/redis-sentinel.conf

3.. Por defecto, Sentinel escucha en el puerto 26379. verifique esto en todas las instancias. Tenga en cuenta que debe dejar el parámetro bind. comentado (o establecido en 0.0.0.0. .

puerto 26379  Establecer la interfaz de escucha y el puerto de Sentinel  Establecer la interfaz y el puerto de escucha de Sentinel Establecer la interfaz y el puerto de escucha de Sentinel

4.. A continuación, dígale a Sentinel. que supervise nuestro maestro. y que lo considere en el estado “ Objetivamente inactivo. solo si al menos 2 centinelas del quórum están de acuerdo. Puede reemplazar “ mymaster. con un nombre personalizado.

#On Master Server y Sentinel1 sentinel monitor mymaster 127.0.0.1 6379 2 #On Replica1 y Sentinel2 sentinel monitor mymaster 10.42.0.247 6379 2 # En Replica1 y Sentinel3 centinela monitor mymaster 10.42.0.247 6379 2 Establecer Redis Master como monitor  Establecer Redis Master en Monitor Establecer Redis Master en Monitor

Importante. la declaración del monitor centinela DEBE colocarse antes de la declaración centinela auth-pass. para evitar el error “ No existe tal mástil er con el nombre especificado.. ”al reiniciar el servicio centinela.

5.. Si el maestro Redis. para monitorear tiene una contraseña configurada (en nuestro caso, el maestro tiene), proporcione la contraseña para que la instancia de Sentinel pueda autenticarse con la instancia protegida.

sentinel auth-pass mymaster [email protected]  Establecer contraseña de autenticación maestra Establecer autenticación maestra Contraseña Establecer contraseña de autenticación maestra

6.. Luego, establezca el número de milisegundos a los que el maestro (o cualquier réplica adjunta o centinela) no debería estar accesible considerarlo en el estado “ Subjetivamente abajo. .

La siguiente configuración significa que se considerará que el maestro falla tan pronto como no recibamos ninguna respuesta de nuestros pings en 5 segundos (1 segundo equivale a 1000 milisegundos).

Sentinel Down-después de milisegundos mymaster 5000  Establecer tiempo de inactividad para Maestro  Establecer tiempo de inactividad para el maestro Establecer el tiempo de inactividad para el maestro

7.. A continuación, configure el tiempo de espera de la conmutación por error en milisegundos, lo que define muchas cosas (lea la documentación del parámetro en el archivo de configuración).

Sentinel failover-timeout mymaster 180000  Establecer tiempo de espera de falla  Establecer el ancho de tiempo de espera de falla Establecer tiempo de espera de conmutación por error

8.. Luego, establezca el número de réplicas que se pueden reconfigurar para usar el nuevo maestro después de una conmutación por error al mismo tiempo. Dado que tenemos dos réplicas, configuraremos una réplica ya que la otra será promovida al nuevo maestro.

Sentinel paralela-sincroniza mymaster 1  Establecer el número de réplicas de sincronización paralela Establecer el número de réplicas de sincronización paralela Establecer el número de réplicas de sincronización paralela

Tenga en cuenta que los archivos de configuración en Redis Replica1. y Sentinel2. Reddis Replica1. y Sentinel2. deben ser idénticos.

9.. A continuación, reinicie Sentinel. en todos los nodos para aplicar y los cambios recientes.

# systemctl restart redis-sentinel

10.. Luego, abra el puerto 26379. en el firewall en todos los nodos para habilitar el Instancias de Sentinel. para comenzar a hablar, recibir conexiones de las otras instancias de Sentinel. usando firewall-cmd.

# firewall-cmd–zone = public–permanent-add-port = 26379/tcp # firewall-cmd–reload

11.. Todas las réplicas se descubrirán automáticamente. Es importante destacar que Sentinel. actualizará la configuración automáticamente con información adicional sobre las réplicas. Puede confirmar esto abriendo el archivo de configuración Sentinel. para cada instancia y revisándolo.

Por ejemplo, cuando mira al final del archivo de configuración del maestro, debería ver las declaraciones centinelas conocidos. y réplicas conocidas. como se muestra en la siguiente captura de pantalla.

 Configuración generada automáticamente en Master  Configuración generada automáticamente en el maestro Configuración generada automáticamente en el maestro

Debe ser el mismo caso en réplica1. y réplica2. .

 Configuración generada automáticamente en Replica1  Configuración generada automáticamente en Replica1 Configuración generada automáticamente en Replica1  Configuración generada automáticamente en Replica2  Configuración generada automáticamente en Replica2 Configuración generada automáticamente en Replica2

Tenga en cuenta que la configuración de Sentinel. también se reescribe/actualiza cada vez que una réplica se promueve al estado maestro durante una conmutación por error y cada vez que se descubre un nuevo Sentinel en la configuración.

Paso 3: Verifique el estado de configuración de Redis Sentinel

12.. Ahora verifique el estado/información de Sentinel. en el maestro, usando el comando info sentinel. de la siguiente manera.

# redis-cli-p 26379 info centinela

De la salida del comando como se ve en la siguiente captura de pantalla, tenemos dos réplicas/esclavos y tres centinelas.

 Verifique la información de Sentinel en Master  Verificar la información de Sentinel en el maestro Verificar la información de Sentinel en el maestro

13.. Para muestra información detallada sobre el master. (llamado mymaster. , use el comando sentinel master.

# redis-cli-p 26379 sentinel master mymaster  Mostrar información detallada sobre el ancho de Sentinel Master  Mostrar información detallada sobre Sentinel Master Mostrar información detallada sobre Sentinel Master

14.. Para muestra información detallada sobre los esclavos. y centinelas. utilice el comando esclavos centinela. y el comando centinelas centinelas. respectivamente.

# redis-cli-p 26379 esclavos centinelas mymaster # redis-cli-p 26379 centinelas centinelas mymaster

15.. A continuación, pregunte la dirección del maestro por nombre de las instancias esclavas utilizando el comando centinela get-master-addr-by-name. de la siguiente manera.

La salida debe ser la dirección IP y el puerto de la instancia maestra actual: