Cette rubrique explique comment utiliser l'interface de ligne de commande (CLI) Tanzu pour créer, mettre à jour, récupérer et supprimer des objets MachineHealthCheck
pour les nœuds worker et de plan de contrôle.
Pour plus d'informations, reportez-vous à la section tanzu cluster machinehealthcheck
dans la Référence de commande de CLI Tanzu.
MachineHealthCheck
MachineHealthCheck
est un contrôleur qui assure la surveillance de la santé et la réparation automatique des machines. Il est automatiquement activé dans tous les clusters de gestion et de charge de travail pour les nœuds de plan de contrôle et les nœuds worker. Si le contrôleur est activé lorsque vous déployez un cluster basé sur une classe avec un déploiement de machines unique ou un cluster hérité, Tanzu Kubernetes Grid crée deux objets par défaut MachineHealthCheck
dans le cluster, un pour les nœuds de plan de contrôle et l'autre pour les nœuds worker. Pour les clusters basés sur une classe avec plusieurs déploiements de machines, Tanzu Kubernetes Grid crée un objet MachineHealthCheck
pour le plan de contrôle et un objet pour chaque déploiement de machines. Ces objets sont créés dans le même espace de noms que le cluster.
Si vous désactivez le contrôleur, vous pouvez le réactiver à l'aide des commandes documentées dans la section Créer ou mettre à jour un objet MachineHealthCheck
. Vous pouvez également utiliser ces commandes pour mettre à jour les objets MachineHealthCheck
existants.
MachineHealthCheck
Suivez les étapes ci-dessous pour créer ou mettre à jour des objets MachineHealthCheck
pour vos clusters.
Clusters basés sur une classe :
Pour créer l'objet par défaut MachineHealthCheck
pour le plan de contrôle d'un cluster basé sur une classe :
tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME
Pour créer l'objet par défaut MachineHealthCheck
pour les nœuds worker d'un cluster basé sur une classe :
Si le cluster dispose d'un déploiement de machines unique, exécutez :
tanzu cluster machinehealthcheck node set CLUSTER-NAME
Si le cluster dispose de plusieurs déploiements de machines, exécutez la commande suivante pour chaque déploiement de machines. Cela crée l'objet par défaut MachineHealthCheck
pour chaque déploiement de machines.
tanzu cluster machinehealthcheck node set CLUSTER-NAME --machine-deployment MACHINE-DEPLOYMENT-NAME
Où :
CLUSTER-NAME
est le nom du cluster cible.MACHINE-DEPLOYMENT-NAME
correspond au nom du déploiement de machines. Par exemple, md-0
. Pour récupérer le nom du déploiement de machines, exécutez kubectl get cluster CLUSTER-NAME -o yaml
, puis recherchez spec.topology.workers.machineDeployments.name
dans la sortie.Clusters hérités :
Pour créer l'objet par défaut MachineHealthCheck
pour le plan de contrôle d'un cluster hérité :
tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME --mhc-name MHC-NAME
Pour créer l'objet par défaut MachineHealthCheck
pour les nœuds worker d'un cluster hérité :
tanzu cluster machinehealthcheck node set CLUSTER-NAME --mhc-name MHC-NAME
Où :
CLUSTER-NAME
est le nom du cluster cible.MHC-NAME
est un nom que vous choisissez pour l'objet MachineHealthCheck
. S'il n'est pas spécifié, le nom est défini sur CLUSTER-NAME
. Si vous exécutez ces deux commandes, la spécification de --mhc-name
est requise. L'indicateur --mhc-name
est ignoré pour les clusters basés sur une classe.Vous pouvez également utiliser les commandes ci-dessus pour créer des objets MachineHealthCheck
personnalisés ou pour mettre à jour des objets MachineHealthCheck
existants. Pour personnaliser ou mettre à jour un objet MachineHealthCheck
, vous pouvez spécifier un ou plusieurs des indicateurs ci-dessous.
RemarqueCes exemples supposent que vous personnalisez ou mettez à jour vos paramètres
MachineHealthCheck
pour un cluster basé sur une classe avec un déploiement de machines unique. Lors de la personnalisation ou de la mise à jour de l'objetMachineHealthCheck
pour les nœuds worker d'un cluster basé sur une classe avec plusieurs déploiements de machines, vous devez spécifier l'indicateur--machine-deployment
. Pour les clusters hérités, spécifiez--mhc-name
, comme décrit ci-dessus.
--match-labels
: cette option filtre les machines par clés et valeurs d'étiquette. Vous pouvez spécifier une ou plusieurs contraintes d'étiquette. L'objet MachineHealthCheck
est appliqué à toutes les machines qui répondent aux contraintes spécifiées. Formatez les paires clé-valeur comme suit :
tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME --match-labels "key1:value1,key2:value2"
tanzu cluster machinehealthcheck node set CLUSTER-NAME --match-labels "key1:value1,key2:value2"
--max-unhealthy
: Si le nombre de machines défectueuses dépasse la valeur que vous avez définie à l'aide de cet indicateur, le contrôleur MachineHealthCheck
n'effectue pas de correction. Le paramètre --max-unhealthy
est défini par défaut sur 100%
. Vous pouvez spécifier un nombre absolu ou un pourcentage pour cet indicateur.
tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME --max-unhealthy "60%"
tanzu cluster machinehealthcheck node set CLUSTER-NAME --max-unhealthy "60%"
--node-startup-timeout
: cette option contrôle la durée pendant laquelle le contrôleur MachineHealthCheck
attend qu'une machine rejoigne le cluster avant de considérer que la machine est défectueuse. Par exemple, les commandes ci-dessous définissent l'option --node-startup-timeout
sur 21m
:
tanzu cluster machinehealthcheck control-plane set my-cluster --node-startup-timeout 21m
tanzu cluster machinehealthcheck node set my-cluster --node-startup-timeout 21m
Si une machine ne parvient pas à joindre le cluster dans le délai spécifié, le contrôleur MachineHealthCheck
recrée la machine.
--unhealthy-conditions
: cette option peut définir les conditions Ready
, MemoryPressure
, DiskPressure
, PIDPressure
et NetworkUnavailable
. Le contrôleur MachineHealthCheck
utilise les conditions que vous avez définies pour surveiller la santé de votre plan de contrôle et de vos nœuds worker. Pour définir l'état d'une condition, utilisez True
, False
ou Unknown
. Par exemple :
tanzu cluster machinehealthcheck control-plane set my-cluster --unhealthy-conditions "Ready:False:5m,Ready:Unknown:5m"
tanzu cluster machinehealthcheck node set my-cluster --unhealthy-conditions "Ready:False:5m,Ready:Unknown:5m"
L'exemple ci-dessus définit la condition Ready
sur False:5m
et Unknown:5m
. Si une machine reste dans l'état Unknown
ou False
pendant plus de 5m
, le contrôleur MachineHealthCheck
considère que la machine est défectueuse et la recrée.
MachineHealthCheck
Suivez les étapes ci-dessous pour récupérer les objets MachineHealthCheck
pour vos clusters. L'indicateur --mhc-name
est ignoré pour les clusters basés sur une classe.
Pour récupérer l'objet MachineHealthCheck
du plan de contrôle du cluster cible, exécutez :
tanzu cluster machinehealthcheck control-plane get CLUSTER-NAME --mhc-name MHC-NAME
Omettez l'indicateur --mhc-name
si l'objet a été créé avec le nom par défaut ou si vous ciblez un cluster basé sur une classe.
Pour récupérer l'objet MachineHealthCheck
des nœuds worker du cluster cible, exécutez :
tanzu cluster machinehealthcheck node get CLUSTER-NAME --mhc-name MHC-NAME
Omettez l'indicateur --mhc-name
si l'objet a été créé avec le nom par défaut ou si vous ciblez un cluster basé sur une classe.
MachineHealthCheck
Suivez les étapes ci-dessous pour supprimer les objets MachineHealthCheck
pour vos clusters.
Clusters basés sur une classe :
Pour supprimer l'objet MachineHealthCheck
pour le plan de contrôle d'un cluster basé sur une classe :
tanzu cluster machinehealthcheck control-plane delete CLUSTER-NAME
Pour supprimer le ou les objets MachineHealthCheck
pour les nœuds worker d'un cluster basé sur une classe :
Si le cluster dispose d'un déploiement de machines unique, exécutez :
tanzu cluster machinehealthcheck node delete CLUSTER-NAME
Si le cluster dispose de plusieurs déploiements de machines, exécutez la commande suivante pour chacun d'entre eux :
tanzu cluster machinehealthcheck node delete CLUSTER-NAME --machine-deployment MACHINE-DEPLOYMENT-NAME
Clusters hérités :
Pour supprimer l'objet MachineHealthCheck
pour le plan de contrôle d'un cluster hérité :
tanzu cluster machinehealthcheck control-plane delete CLUSTER-NAME --mhc-name MHC-NAME
Omettez l'indicateur --mhc-name
si l'objet a été créé avec le nom par défaut.
Pour supprimer l'objet MachineHealthCheck
des nœuds worker du cluster hérité, exécutez :
tanzu cluster machinehealthcheck node delete CLUSTER-NAME --mhc-name MHC-NAME
Omettez l'indicateur --mhc-name
si l'objet a été créé avec le nom par défaut.