Comment configurer un cluster redis dans Centos 8 - Partie 3

Comment configurer un cluster redis dans Centos 8 - Partie 3

Cluster redis est un intégré Redis fonctionnalité qui prend en charge la rupture automatique, la réplication et la haute disponibilité qui ont été précédemment implémentées en utilisant Sentinelles. Il est conçu à deux fins principales: la première consiste à diviser automatiquement votre ensemble de données entre plusieurs instances et deuxièmement pour fournir un certain degré de disponibilité pendant les partitions, pour poursuivre les opérations lorsque certains cas (en particulier les maîtres) échouent ou ne sont pas en mesure de communiquer avec la majorité de la majorité de nœuds dans le cluster.

Cependant, le cluster s'arrête pour fonctionner en cas de défaillances plus importantes (e.g lorsque la majorité des instances principales ne sont pas disponibles). De plus, si un maître et des esclaves échouent en même temps, le cluster ne peut pas poursuivre les opérations normales (bien que la solution de contournement soit d'ajouter plus de nœuds ou de créer une asymétrie dans le cluster, pour secouer automatiquement la disposition du cluster).

Selon le Redis Documentation en grappes, le «groupement minimal"Cela fonctionne comme prévu, il faut contenir au moins 3 nœuds maîtres. Mais la configuration la plus appropriée pour la haute disponibilité devrait avoir au moins 6 nœuds avec trois maîtres et trois esclaves, chaque maître ayant un esclave.

Important: Le cluster redis a également certaines limites qui manquent de soutien Carré les environnements ainsi que ceux où les adresses IP ou les ports TCP sont remappées par exemple sous Docker. De plus, toutes les bibliothèques clients ne le prennent pas en charge.

Cet article montre comment configurer un Cluster redis (avec Mode de cluster désactivé) dans Centos 8. Il comprend comment installer redis, configurer les nœuds de cluster, créer un cluster et tester le basculement du cluster.

Note: Pour ce guide, nous utiliserons des instances Redis fraîches / vides pour exécuter le mode de cluster. Le mode de cluster ne fonctionnera pas avec certaines configurations effectuées dans les deux premiers guides de notre série Redis, en particulier il ne fonctionne pas lorsque la réplique du paramètre est utilisée.

Conditions préalables:

  1. Serveurs avec installation CentOS 8

Configuration de l'environnement de test

Redis maître1: dix.42.0.247 Redis maître2: dix.42.0.197 Redis maître3: dix.42.0.132 Redis Slave1: dix.42.0.200 Redis Slave2: dix.42.0.21 Redis Slave3: dix.42.0.34 
Diagramme logique du cluster redis

Notre configuration a 3 nœuds maîtres de lecture / écriture et 3 nœuds de répliques en lecture seule, chaque maître ayant une réplique, donc trois éclats contiennent toutes les données du cluster dans chaque nœud. Une application API ou CLI Le client peut écrire uniquement sur les nœuds maître mais lire à partir de n'importe quel nœud du cluster.

Étape 1: Installation de Redis sur tous les nœuds

1. Connectez-vous à toutes les instances via Ssh, Ensuite, exécutez la commande suivante pour installer le Redis module utilisant le gestionnaire de packages DNF comme indiqué.

# module DNF Installer Redis 

2. Ensuite, commencez le Redis Service, activez-le pour démarrer automatiquement au démarrage du système et vérifier son état pour vérifier qu'il s'exécute (vérifiez le service sur les 6 instances):

# systemctl start redis # systemctl activer redis # systemctl status redis 

Étape 2: Configuration des instances Redis sur tous les nœuds

3. Cette section décrit comment configurer les nœuds de cluster redis. N'oubliez pas d'effectuer les configurations ici sur tous les nœuds.

Utilisez le / etc / redis.confli Fichier de configuration pour configurer le Redis serveur. En tant que pratique recommandée, créez une sauvegarde du fichier d'origine avant de la modifier à l'aide d'un éditeur de texte en ligne de commande de votre choix.

# cp / etc / redis.conf / etc / redis.confli.orig # vi / etc / redis.confli 

4. Ensuite, trouvez les paramètres de configuration suivants et modifiez leurs valeurs comme indiqué. Le lier Paramètres Définit l'interface du serveur redis écouter, définir sa valeur sur l'instance LAN IP. Retirer le 127.0.0.1 Parce que nous avons réalisé que le laisser là ralentit le processus de création de grappes, en particulier l'étape de rejoindre le cluster.

lier 10.42.0.247 

Puis définissez le mode protégé pour Non Pour permettre les connexions des autres instances sur le cluster.

mode protégé non 

Le paramètre de port définit le port sur lequel le serveur redis écoutera pour les connexions, la valeur par défaut est 6379. Ceci est le port de données pour communiquer avec les clients.

Port 6379 
Définir l'interface et le port de Redis écouter

5. Le prochain ensemble de paramètres permettra le mode de cluster et définira certaines de ses fonctionnalités utiles. Le en grappe paramètre, lorsqu'il est réglé sur Oui, active le mode de cluster.

Coulacement en cluster Oui 

Ensuite, le cluster-config-file Les paramètres définissent le nom du fichier de configuration de cluster d'un nœud de cluster (E.g NODES-6379.confli). Le fichier est créé dans le répertoire de travail (par défaut est / var / lib / redis défini en utilisant le diron paramètre) et n'est pas modifiable de l'utilisateur.

NODES CLUSTER-CONFIG-FILE-6379.confli 

La prochaine option de cluster utile est cluster-node-timeout, Il est utilisé pour définir la durée maximale en millisecondes, une instance peut être indisponible pour qu'elle soit considérée dans un état de défaillance. Une valeur de 15000 est équivalent à 15 secondes.

cluster-node-timeout 15000 
Définir le délai d'expiration du nœud de cluster

6. Nous devons également permettre la persistance redis sur le disque. Nous pouvons utiliser l'un des modes de persistance, c'est-à-dire le Ajouter le fichier uniquement (AOF): il se connecte (dans le fichier appendial.AOF créé dans le répertoire de travail) Chaque opération d'écriture a été reçue avec succès par le serveur. Les données seront lues pendant le démarrage du serveur pour reconstruire l'ensemble de données d'origine.

Pour l'activer, définissez le appendial paramètre Oui.

APPENDONLY OUI 
Définir les options de persistance

7. Après avoir apporté tous les changements, redémarrez le Redis Service sur tous les nœuds pour appliquer les changements récents.

# systemctl redémarrer redis 

8. À ce stade, chaque nœud de cluster devrait maintenant avoir un IDENTIFIANT. Vous pouvez vérifier cela dans le fichier de journaux situé à / var / log / redis / redis.enregistrer.

# Cat / var / log / redis / redis.enregistrer 
Vérifier le fichier journal du nœud de cluster

9. Ensuite, Open Port 6397 et 16379 Sur tous les cas. Le dernier port est utilisé pour le bus de cluster (un nœud à nœud canal de communication à l'aide d'un protocole binaire). Ceci est une exigence de base pour les connexions TCP du cluster redis.

# Firewall-CMD --zone = public --permanent --add-port = 6379 / tcp # Firewall-Cmd --zone = public --permanent --add-port = 16379 / tcp # Firewall-Cmd --reload 

Étape 3: Création du cluster redis

dix. Pour créer le cluster, utilisez le ligne de commande redis-CLI Client comme suit. Le --cluster crée Permet la création de grappes et --Cluster-Replicas 1 signifie créer une réplique par maître.

Pour notre configuration qui a 6 nœuds, nous aurons 3 maîtres et 3 esclaves.

Notez que les 6 premiers nœuds seront considérés maîtrise (M) Et les trois prochains seront considérés des esclaves (S). Le premier esclave je.e dix.42.0.200: 6379 reproduit le premier maître i.e dix.42.0.247: 6379, Le deuxième esclave reproduit le deuxième maître, dans cet ordre.

La commande suivante est formatée d'une manière que le résultat représentera notre configuration logique ci-dessus.

# redis-cli --cluster Créer 10.42.0.247: 6379 10.42.0.197: 6379 10.42.0.132: 6379 10.42.0.200: 6379 10.42.0.21: 6379 10.42.0.34: 6379 --Cluster-Replicas 1 
Créer un cluster redis

11. Une fois la création de cluster réussie, exécutez la commande suivante sur n'importe quel hôte (spécifiez son adresse IP à l'aide du -H drapeau) pour répertorier tous les nœuds de cluster.

# redis-Cli -h 10.42.0.247 -p 6379 nœuds de cluster 

Vous devriez pouvoir voir tous les nœuds de cluster, les esclaves indiquant leurs maîtres, comme indiqué dans la capture d'écran suivante.

Vérifiez tous les nœuds de cluster sur n'importe quel nœud

Les différents champs sont dans cet ordre: ID de nœud, adresse IP: port, drapeaux, dernier ping envoyé, dernier pong reçu, époque de configuration, lien-state, slots (pour les maîtres).

Étape 4: Tester le basculement du cluster redis

12. Dans cette section, nous montrerons comment tester un basculement de cluster. Tout d'abord, prenons note des maîtres.

# redis-Cli -h 10.42.0.247 -P 6379 Nœuds de cluster | maître grep 
Liste des maîtres du cluster redis

Aussi, prenez note des esclaves redis.

# redis-Cli -h 10.42.0.247 -P 6379 Nœuds de cluster | esclave grep 
Liste tous les esclaves Redis Cluster

13. Ensuite, arrêtons le service redis sur l'un des nœuds maîtres e.g dix.42.0.197 et vérifiez tous les nœuds maîtres du cluster.

# systemctl stop redis # redis-Cli -h 10.42.0.247 -P 6379 Nœuds de cluster | maître grep 

À partir de la capture d'écran suivante, vous pouvez voir que le nœud dix.42.0.197: 6367 est en état d'échec et son esclave dix.42.0.21: 6379 a été promu à l'état maître.

Vérifiez l'état du basculement du cluster

14. Commençons maintenant le Redis Service à nouveau sur le nœud défaillant et vérifiez tous les maîtres du cluster.

# systemctl start redis # redis-Cli -h 10.42.0.247 -P 6379 Nœuds de cluster | maître grep 
Vérifiez tous les états maître de Redis Cluster

Vérifiez également les esclaves du cluster pour confirmer que le maître défaillard est maintenant un esclave.

# redis-Cli -h 10.42.0.247 -P 6379 Nœuds de cluster | esclave grep 
Vérifiez tous les esclaves du cluster redis

Étape 5: Tester la réplication des données sur le cluster redis

15. Cette dernière section explique comment vérifier la réplication des données de cluster. Nous allons créer une clé et une valeur sur l'un des maîtres, puis essayer de le lire à partir de tous les nœuds de cluster comme suit. Utilisez le -c Passer pour activer la prise en charge du cluster sous les données de l'utilitaire Redis-Cli en mode cluster.

# redis-Cli -C -H 10.42.0.247 -P 6379 Nom de set 'Tecmint.com '# redis-Cli -C -H 10.42.0.247 -p 6379 Get Name # redis-Cli -C -H 10.42.0.21 -P 6379 Get Name # redis-Cli -C -H 10.42.0.132 -P 6379 Get Name # redis-Cli -C -H 10.42.0.200 -p 6379 Get Name # redis-Cli -C -H 10.42.0.197 -P 6379 Get Name # redis-Cli -C -H 10.42.0.34 -P 6379 Obtenez le nom 
Vérifiez la réplication des données du cluster redis

L'essentiel est le Cluster redis est le moyen préféré d'obtenir un fragment, une réplication et une haute disponibilité automatique. Il existe de nombreux autres paramètres de configuration bien documentés dans le reste du / etc / redis.confli Fichier, vous pouvez trouver plus d'informations dans la documentation officielle: Tutoriel Reded Cluster et Spécification Reded Cluster.

Cela nous amène à la fin de la série Tutorial Redis en trois parties. Le formulaire de rétroaction ci-dessous peut être utilisé pour publier des questions ou des commentaires.