Guide de déploiement de charmes OpenStack multi-nœuds 0.0.1.dev303-20 - Haute disponibilité du contrôleur

Documents de référence:

Contrôleur haute disponibilité

Afin de garantir une haute disponibilité des applications déployées, le contrôleur lui-même doit être hautement disponible. Cela nécessite la création d'autres contrôleurs, qui sont tous naturellement situés dans le modèle "contrôleur". Le contrôleur initial est appelé contrôleur principal et s'il perd la connexion avec l'homologue du cluster, il basculera automatiquement.

Pour plus d'informations sur les applications, consultez Haute disponibilité des applications .

Aperçu

Le contrôleur HA utilise des juju enable-hacommandes pour la gestion. Pour ce faire, il s'assure que le cluster dispose du nombre de contrôleurs nécessaire. Par défaut, ce nombre est de trois, mais le commutateur -n peut être utilisé pour modifier ce nombre. Par conséquent, cette commande peut à la fois activer HA et compenser les contrôleurs manquants, tout comme l'activation de HA puis la suppression d'un ou plusieurs contrôleurs.

Après avoir configuré le contrôleur, le code du serveur API sera installé avec la base de données MongoDB.

Le nombre de contrôleurs doit être un nombre impair pour que l'hôte puisse "voter" entre ses pairs. Un cluster avec un nombre pair de membres rendra les membres aléatoires inactifs. Ce dernier système deviendra un système de «secours d'urgence» et deviendra automatiquement actif lorsque d'autres membres échoueront. De plus, en raison de la limitation de la base de données sous-jacente dans le contexte HA, ce nombre ne peut pas dépasser 7. Tout cela signifie qu'un cluster ne peut avoir que trois, cinq ou sept membres actifs.

Les clients et agents Juju parlent à n'importe quel contrôleur du cluster. Cela signifie que le traitement au niveau du contrôleur (API) est distribué. Cependant, il n'y a qu'une seule base de données maître à un moment donné, et tous les contrôleurs y écrivent. Par conséquent, «main» fait en fait référence à la base de données sous-jacente.

Activer la haute disponibilité du contrôleur

Pour activer la haute disponibilité du contrôleur, appelez simplement la commande enable-ha:

juju enable-ha

Étant donné qu'aucun nombre spécifique d'ordinateurs de cluster n'est demandé, les trois par défaut sont utilisés. Par conséquent, nous espérons que deux nouveaux contrôleurs apparaîtront. En fait, la sortie de la commande ci-dessus reflète ceci:

maintaining machines: 0
adding machines: 1, 2

Nous pouvons également interroger les machines dans le modèle "contrôleur":

juju machines -m controller

La sortie doit afficher les deux nouveaux ordinateurs en cours de configuration:

Machine  State    DNS            Inst id              Series  AZ          Message
0        started  54.166.164.0   i-04790c2414e4c8e80  xenial  us-east-1a  running
1        pending  54.145.192.13  i-071660e9ce3c3cee5  xenial  us-east-1c  running
2        pending  54.80.176.66   i-0b36284d1ebb816cf  xenial  us-east-1a  running

Puisqu'il y a déjà trois contrôleurs, les appeler à nouveau juju enable-han'aura aucun effet.
Utilisez la juju controllers --refreshliste des contrôleurs d'actualisation pour montrer que le niveau HA est 3:

Controller  Model    User   Access     Cloud/Region         Models  Machines    HA  Version
aws-ha*     default  admin  superuser  aws/us-east-1             2         3     3  2.4-beta2

Supprimer des ordinateurs du cluster

Vous pouvez supprimer un ordinateur du cluster à tout moment. Les raisons typiques en sont les suivantes:

  • Le contrôleur se comporte anormalement et votre intention est de le remplacer par un autre contrôleur.

  • Vous avez décidé que vous n'avez pas besoin du niveau HA actuel et que vous souhaitez le réduire.

    • Si la désinstallation du contrôleur aboutit à un système pair, il agira comme un «disque de secours».
    • Si la suppression du contrôleur entraînerait un nombre impair de systèmes, chacun participera activement au cluster.

juju remove-machineVous pouvez supprimer le contrôleur du cluster en supprimant la machine du contrôleur ( ) du modèle .

En utilisant l'exemple du chapitre précédent, voici comment nous allons supprimer la machine "1":

juju remove-machine -m controller 1

juju controllers --refreshLa sortie de est maintenant :

Controller  Model    User   Access     Cloud/Region         Models  Machines    HA  Version
aws-ha*     default  admin  superuser  aws/us-east-1             2         2   1/2  2.4-beta2

Désormais, il n'y a qu'un seul contrôleur actif (et un contrôleur de secours) dans le cluster (c'est-à-dire que l'un des deux contrôleurs actifs est actif). Veuillez noter que cette situation doit être corrigée dès que possible.

Ajouter des ordinateurs au cluster

Utilisez la commande enable-ha pour obtenir le nombre requis de contrôleurs (c'est-à-dire le niveau HA).

Dans notre exemple en cours, notre cluster à 3 membres d'origine dispose désormais de deux ordinateurs. Nous pouvons le restaurer à trois en émettant à nouveau juju enable-ha, mais si nous décidons de le définir sur 5 clusters membres, nous pouvons faire ce qui suit:

juju enable-ha -n 5

Cela se traduira par trois contrôleurs supplémentaires (2 + 3 = 5).

juju controllers --refreshLa sortie est:

Controller  Model    User   Access     Cloud/Region         Models  Machines    HA  Version
aws-ha*     default  admin  superuser  aws/us-east-1             2         5     5  2.4-beta2

Afficher les informations HA du contrôleur étendu

show-controllerLes informations étendues sur le contrôleur HA peuvent être obtenues à partir de la commande:

contrôleur de spectacle juju

下面列出了我们的5成员集群的部分输出:
 ...
 ...
 controller-machines:
    "0":
      instance-id: i-04790c2414e4c8e80
      ha-status: ha-enabled
    "2":
      instance-id: i-0b36284d1ebb816cf
      ha-status: ha-enabled
    "3":
      instance-id: i-09ff42ba5fb9429b0
      ha-status: ha-enabled
    "4":
      instance-id: i-098222dad56cbe9a0
      ha-status: ha-enabled
    "5":
      instance-id: i-0613fb1fa8346de8a
      ha-status: ha-enabled
  models:
    controller:
      uuid: e8c4d910-8818-4a8a-8839-25766a1875d3
      machine-count: 5
      core-count: 5
  ...
  ...

Ici, le nombre d'ordinateurs est le nombre total d'ordinateurs dans le modèle «contrôleur» et le nombre de cœurs est le nombre d'ordinateurs contrôleurs. Si le membre est actif, le statut de la clé sera affiché comme "ha-enabled", si le membre est en mode hot standby, le statut sera "ha-pending".

Récupérer après une panne de contrôleur

En cas de contrôleur défectueux, un nouveau contrôleur ne sera pas automatiquement régénéré et le contrôleur défectueux ne sera pas supprimé. Cependant, tant que plus de la moitié des membres d'origine sont encore disponibles, la récupération manuelle est simple:

  1. Retirez le contrôleur endommagé (comme décrit ci-dessus).
  2. Ajoutez un nouveau contrôleur (comme décrit ci-dessus).

Avant d'ajouter un nouveau contrôleur, vous devez d'abord supprimer le contrôleur, car la enable-hacommande ne vérifie pas les défauts. Cela garantit simplement que le nombre total de membres existe.

Dans des circonstances malheureuses, si les contrôleurs disponibles sont insuffisants, vous devez restaurer à partir de la sauvegarde. Voir Sauvegarder et restaurer Juju pour comprendre comment cela fonctionne.

Si le contrôleur entre dans l'état "down", on considère que le contrôleur est défectueux. Il peut être surveillé en appliquant des commandes d’état au modèle «contrôleur»:

juju status -m controller

Cette sortie indique que le contrôleur fonctionnant sur la machine "3" a perdu sa connexion au reste du cluster:

Machine  State    DNS             Inst id              Series  AZ          Message
0        started  54.166.164.0    i-04790c2414e4c8e80  xenial  us-east-1a  running
2        started  54.80.176.66    i-0b36284d1ebb816cf  xenial  us-east-1a  running
3        down     54.157.161.147  i-09ff42ba5fb9429b0  xenial  us-east-1e  running
4        started  54.227.91.241   i-098222dad56cbe9a0  xenial  us-east-1d  running
5        started  174.129.90.47   i-0613fb1fa8346de8a  xenial  us-east-1c  running

Cependant, la colonne «HA» –refresh dans la sortie du contrôleur juju est toujours affichée comme «5» comme auparavant:

Controller  Model    User   Access     Cloud/Region         Models  Machines    HA  Version
aws-ha*     default  admin  superuser  aws/us-east-1             2         5     5  2.4-beta2

Pour récupérer à partir de ce cluster dégradé:

juju remove-machine -m controller 3
juju enable-ha -n 5

Contrôleur HA et journalisation

Tous les ordinateurs Juju envoient leurs journaux au contrôleur du cluster HA. Chaque contrôleur envoie à son tour ces journaux à la base de données MongoDB, qui est synchronisée entre les différents contrôleurs. Les utilisateurs utilisent généralement la commande juju debug-log pour lire les informations du journal. Voir le journal Juju.

Je suppose que tu aimes

Origine blog.csdn.net/m0_49212388/article/details/115318074
conseillé
Classement