À propos de Node Eligibility Service
Dans un GitHub Enterprise Server cluster, un nœud individuel peut devenir inaccessible par d’autres nœuds en raison d’une défaillance matérielle ou logicielle. Après, même si vous restaurez l’intégrité du nœud, la synchronisation ultérieure des données peut avoir un impact négatif sur les performances de votre instance.
Vous pouvez atténuer de manière proactive l’impact de la disponibilité réduite des nœuds à l’aide Node Eligibility Servicede . Ce service surveille l’état des nœuds de votre cluster et émet un avertissement si un nœud est hors connexion depuis trop longtemps. Vous pouvez également empêcher un nœud hors connexion de rejoindre le cluster. Si vous le souhaitez, vous pouvez autoriser Node Eligibility Service à mettre hors connexion des nœuds non éligibles.
Par défaut, Node Eligibility Service est désactivé. Si vous activez Node Eligibility Service, votre instance vous avertit des nœuds défectueux en affichant une bannière dans l’interface utilisateur web d’administration pour GitHub Enterprise Server, et en sortie CLI pour certains utilitaires liés au cluster, tels que ghe-config-apply et ghe-cluster-diagnostics.
Node Eligibility Service vous permet de surveiller l’intégrité des nœuds individuels. Vous pouvez également surveiller l’intégrité globale de votre cluster. Pour plus d’informations, consultez « Surveillance de la santé de votre cluster ».
À propos de la santé et de l’éligibilité des nœuds de cluster
Pour déterminer s’il faut émettre un avertissement ou ajuster automatiquement la configuration de votre cluster, Node Eligibility Service surveille en permanence l’intégrité de chaque nœud. Chaque nœud signale régulièrement un état d’intégrité horodaté, qui Node Eligibility Service compare à une durée de vie (TTL).
Chaque nœud a un état d’intégrité et un état d’éligibilité.
- La santé fait référence à l’accessibilité du nœud au sein du cluster et a trois états possibles :
healthy,warningoucritical. - L’éligibilité fait référence à la capacité du nœud à travailler dans le cluster et a deux états possibles :
eligibleouineligible.
Node Eligibility Service fournit un paramètre de durée de vie configurable pour deux états et warn``fail.
warn: Le nœud est hors connexion pendant une courte période. Cela peut indiquer un problème avec le nœud que les administrateurs doivent investiguer. Le paramètre par défaut est de 15 minutes.fail: Le nœud est hors connexion pendant une longue période, et sa réintroduction dans le cluster pourrait entraîner des problèmes de performances en raison de la resynchronisation. Le paramètre par défaut est de 60 minutes.
Pour chaque nœud, Node Eligibility Service détermine l’intégrité et l’éligibilité de la participation au cluster de la manière suivante.
- Si un nœud a été observé comme étant sain, l’état d’intégrité est
healthyet l’état d’éligibilité esteligible. - Si un nœud n’a pas été observé comme étant sain pendant plus longtemps que la durée TTL
warn, l’état d’intégrité estwarninget l’état d’éligibilité esteligible. - Si un nœud n’a pas été observé comme étant sain pendant plus longtemps que la durée TTL
fail, l’état d’intégrité estcriticalet son état d’éligibilité estineligible.
Activation Node Eligibility Service de votre cluster
Par défaut, Node Eligibility Service est désactivé. Vous pouvez l’activer Node Eligibility Service en définissant la valeur à app.nes.enabled utiliser ghe-config.
-
Pour vous connecter à votre instance GitHub Enterprise Server, connectez-vous en SSH à n’importe lequel des nœuds de votre cluster. À partir de votre station de travail, exécutez la commande suivante. Remplacez HOSTNAME par le nom d’hôte du nœud. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ».
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME -
Pour vérifier si Node Eligibility Service elle est actuellement activée, exécutez la commande suivante.
Shell ghe-config app.nes.enabled
ghe-config app.nes.enabled -
Pour activer Node Eligibility Service, exécutez la commande suivante.
Shell ghe-config app.nes.enabled true
ghe-config app.nes.enabled true -
Pour appliquer la configuration, exécutez la commande suivante.
Remarque
Durant une exécution de configuration, les services sur votre instance GitHub Enterprise Server peuvent redémarrer, ce qui peut entraîner un bref temps d’arrêt pour les utilisateurs.
Shell ghe-config-apply
ghe-config-apply -
Attendez la fin de l’exécution de la configuration.
-
Pour vérifier qu’il Node Eligibility Service s’exécute, à partir de n’importe quel nœud, exécutez la commande suivante.
Shell nomad status nes
nomad status nes
Configuration des paramètres de durée de vie pour Node Eligibility Service
Pour déterminer comment Node Eligibility Service vous avertir, vous pouvez configurer les paramètres de durée de vie des états et warn des fail états. La durée TTL de l’état fail doit être plus longue que la durée TLL de l’état warn.
-
Pour vous connecter à votre instance GitHub Enterprise Server, connectez-vous en SSH à n’importe lequel des nœuds de votre cluster. À partir de votre station de travail, exécutez la commande suivante. Remplacez HOSTNAME par le nom d’hôte du nœud. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ».
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME -
Pour vérifier les paramètres TTL actuels, exécutez la commande suivante.
Shell nes get-node-ttl all
nes get-node-ttl all -
Pour définir la durée TTL de l’état
fail, exécutez la commande suivante. Remplacez MINUTES par le nombre de minutes à utiliser pour les échecs.Shell nes set-node-ttl fail MINUTES
nes set-node-ttl fail MINUTES -
Pour définir la durée TTL de l’état
warn, exécutez la commande suivante. Remplacez MINUTES par le nombre de minutes à utiliser pour les avertissements.Shell nes set-node-ttl warn MINUTES
nes set-node-ttl warn MINUTES
Gestion de la possibilité Node Eligibility Service de mettre un nœud hors connexion
Par défaut, Node Eligibility Service fournit des alertes pour vous informer des modifications apportées à l’intégrité des nœuds de cluster. Si vous le souhaitez, si le service détermine qu’un nœud non sain n’est pas éligible pour rejoindre le cluster, vous pouvez autoriser le service à mettre le nœud hors connexion.
Lorsqu’un nœud est mis hors connexion, l’instance supprime les allocations de travaux du nœud. Si le nœud exécute des services de stockage de données, Node Eligibility Service met à jour la configuration pour refléter l’inéligibilité du nœud pour rejoindre le cluster.
Pour gérer si Node Eligibility Service un nœud et ses services sont hors connexion, vous pouvez configurer adminaction des états pour le nœud. Si un nœud est dans l’état approved , Node Eligibility Service peut mettre le nœud hors connexion. Si un nœud est dans l’état none , Node Eligibility Service ne peut pas mettre le nœud hors connexion.
-
Pour vous connecter à votre instance GitHub Enterprise Server, connectez-vous en SSH à n’importe lequel des nœuds de votre cluster. À partir de votre station de travail, exécutez la commande suivante. Remplacez HOSTNAME par le nom d’hôte du nœud. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ».
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME -
Pour configurer si Node Eligibility Service un nœud peut être mis hors connexion, exécutez l’une des commandes suivantes.
-
Pour permettre au service d’effectuer automatiquement une action administrative lorsqu’un nœud passe hors connexion, exécutez la commande suivante. Remplacez HOSTNAME par le nom d’hôte du nœud.
Shell nes set-node-adminaction approved HOSTNAME
nes set-node-adminaction approved HOSTNAME -
Pour révoquer la possibilité de mettre Node Eligibility Serviceun nœud hors connexion, exécutez la commande suivante. Remplacez HOSTNAME par le nom d’hôte du nœud.
Shell nes set-node-adminaction none HOSTNAME
nes set-node-adminaction none HOSTNAME
-
Affichage d’une vue d’ensemble de l’intégrité des nœuds
Pour afficher une vue d’ensemble de l’intégrité de vos nœuds à l’aide Node Eligibility Servicede l’une des méthodes suivantes.
- Établissez une connexion SSH à n’importe quel nœud du cluster, puis exécutez
nes get-cluster-health. - Accédez à la Console de gestionpage « État ». Pour plus d’informations, consultez « Accès à la console de gestion ».
Réactivation d’un nœud inéligible pour rejoindre le cluster
Après Node Eligibility Service avoir détecté qu’un nœud a dépassé la durée de vie de l’état fail , et après que le service marque le nœud comme ineligible, le service ne met plus à jour l’état d’intégrité du nœud. Pour réactiver un nœud pour lui permettre de rejoindre le cluster, vous pouvez supprimer l’état ineligible du nœud.
-
Pour vous connecter à votre instance GitHub Enterprise Server, connectez-vous en SSH à n’importe lequel des nœuds de votre cluster. À partir de votre station de travail, exécutez la commande suivante. Remplacez HOSTNAME par le nom d’hôte du nœud. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ».
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME -
Pour vérifier l’état
adminactionactuel du nœud, exécutez la commande suivante. Remplacez HOSTNAME par le nom d’hôte du nœud inéligible.Shell nes get-node-adminaction HOSTNAME
nes get-node-adminaction HOSTNAME -
Si l’état
adminactionest actuellement défini surapproved, remplacez par l’étatnoneen exécutant la commande suivante. Remplacez HOSTNAME par le nom d’hôte du nœud inéligible.Shell nes set-node-adminaction none HOSTNAME
nes set-node-adminaction none HOSTNAME -
Pour vous assurer que le nœud est dans un état sain, exécutez la commande suivante et vérifiez que l’état du nœud est
ready.Shell nomad node status
nomad node status-
Si l’état du nœud est
ineligible, rendez le nœud éligible en vous connectant au nœud via SSH et en exécutant la commande suivante.Shell nomad node eligibility -enable -self
nomad node eligibility -enable -self
-
-
Pour mettre à jour l’éligibilité du nœud, Node Eligibility Serviceexécutez la commande suivante. Remplacez HOSTNAME par le nom d’hôte du nœud.
Shell nes set-node-eligibility eligible HOSTNAME
nes set-node-eligibility eligible HOSTNAME -
Attendez 30 secondes, puis vérifiez l’intégrité du cluster pour confirmer que le nœud cible est éligible en exécutant la commande suivante.
Shell nes get-cluster-health
nes get-cluster-health
Affichage des journaux pour Node Eligibility Service
Vous pouvez afficher les journaux d’activité à Node Eligibility Service partir de n’importe quel nœud du cluster ou du nœud qui exécute le service. Si vous générez un bundle de support, les journaux sont inclus. Pour plus d’informations, consultez « Fourniture de données au support GitHub ».
-
Pour vous connecter à votre instance GitHub Enterprise Server, connectez-vous en SSH à n’importe lequel des nœuds de votre cluster. À partir de votre station de travail, exécutez la commande suivante. Remplacez HOSTNAME par le nom d’hôte du nœud. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ».
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME -
Pour afficher les journaux d’activité à Node Eligibility Service partir d’un nœud du cluster, exécutez la commande suivante.
Shell nomad alloc logs -job nes
nomad alloc logs -job nes -
Vous pouvez également afficher les journaux d’activité Node Eligibility Service sur le nœud qui exécute le service. Le service écrit les journaux dans le journal systemd.
-
Pour déterminer quel nœud s’exécute Node Eligibility Service, exécutez la commande suivante.
Shell nomad job status "nes" | grep running | grep "${nomad_node_id}" | awk 'NR==2{ print $1 }' | xargs nomad alloc status | grep "Node Name"nomad job status "nes" | grep running | grep "${nomad_node_id}" | awk 'NR==2{ print $1 }' | xargs nomad alloc status | grep "Node Name" -
Pour consulter les journaux sur le nœud, connectez-vous au nœud via SSH, puis exécutez la commande suivante.
Shell journalctl -t nes
journalctl -t nes
-