En este tema se explica cómo usar la interfaz de línea de comandos (CLI) de Tanzu para crear, actualizar, recuperar y eliminar objetos MachineHealthCheck
para el plano de control y los nodos de trabajo.
Para obtener más información, consulte tanzu cluster machinehealthcheck
en la referencia de comandos de la CLI de Tanzu.
MachineHealthCheck
MachineHealthCheck
es un controlador que proporciona supervisión de estado y reparación automática para máquinas. Se habilita automáticamente en todos los clústeres de carga de trabajo y administración, tanto para los nodos de trabajo como para el plano de control. Si el controlador está habilitado cuando implementa un clúster basado en clases con una implementación de una sola máquina o un clúster heredado, Tanzu Kubernetes Grid crea dos objetos MachineHealthCheck
en el clúster, uno para los nodos del plano de control y otro para los nodos de trabajo. Para los clústeres basados en clases con varias implementaciones de máquinas, Tanzu Kubernetes Grid crea un objeto MachineHealthCheck
para el plano de control y otro para cada implementación de máquina. Estos objetos se crean en el mismo espacio de nombres que el clúster.
Si desactiva el controlador, puede volver a habilitarlo mediante los comandos documentados Crear o actualizar un objeto MachineHealthCheck
. También puede utilizar los comandos para actualizar objetos MachineHealthCheck
existentes.
MachineHealthCheck
Siga los pasos a continuación para crear o actualizar objetos MachineHealthCheck
para sus clústeres.
Clústeres basados en clases:
Para crear el objeto MachineHealthCheck
predeterminado para el plano de control de un clúster basado en clases:
tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME
Para crear el objeto MachineHealthCheck
predeterminado para los nodos de trabajo de un clúster basado en clases:
Si el clúster tiene una implementación de una sola máquina, ejecute:
tanzu cluster machinehealthcheck node set CLUSTER-NAME
Si el clúster tiene implementaciones de varias máquinas, ejecute el siguiente comando para cada implementación de máquina. Esto creará el objeto MachineHealthCheck
predeterminado para cada implementación de máquina.
tanzu cluster machinehealthcheck node set CLUSTER-NAME --machine-deployment MACHINE-DEPLOYMENT-NAME
Donde:
CLUSTER-NAME
es el nombre del clúster de destino.MACHINE-DEPLOYMENT-NAME
es el nombre de la implementación de la máquina. Por ejemplo, md-0
. Para recuperar el nombre de implementación de la máquina, ejecute kubectl get cluster CLUSTER-NAME -o yaml
y, a continuación, busque spec.topology.workers.machineDeployments.name
en los resultados.Clústeres heredados:
Para crear el objeto MachineHealthCheck
predeterminado para el plano de control de un clúster heredado:
tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME --mhc-name MHC-NAME
Para crear el objeto MachineHealthCheck
predeterminado para los nodos de trabajo de un clúster heredado:
tanzu cluster machinehealthcheck node set CLUSTER-NAME --mhc-name MHC-NAME
Donde:
CLUSTER-NAME
es el nombre del clúster de destino.MHC-NAME
es un nombre que eliges para el objeto MachineHealthCheck
. Si no se especifica, el nombre se establece en CLUSTER-NAME
. Si ejecuta ambos comandos, se requiere especificar --mhc-name
. La marca --mhc-name
se ignora para los clústeres basados en clases.También puede utilizar los comandos anteriores para crear objetos MachineHealthCheck
personalizados o para actualizar objetos MachineHealthCheck
existentes. Para personalizar o actualizar un objeto MachineHealthCheck
, puede especificar una o varias de las siguientes marcas.
NotaEn estos ejemplos, se supone que está personalizando o actualizando los ajustes de
MachineHealthCheck
para un clúster basado en clases con una implementación de una sola máquina. Al personalizar o actualizar el objetoMachineHealthCheck
para los nodos de trabajo de un clúster basado en clases con varias implementaciones de máquinas, debe especificar la marca--machine-deployment
. Para los clústeres heredados, especifique--mhc-name
como se describe anteriormente.
--match-labels
: Esta opción filtra las máquinas por claves y valores de etiqueta. Puede especificar una o varias restricciones de etiqueta. El objeto MachineHealthCheck
se aplica a todas las máquinas que cumplan las restricciones especificadas. Formatee los pares de clave-valor de la siguiente manera:
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 el número de máquinas en un estado incorrecto excede el valor que estableció usando este indicador, el controlador MachineHealthCheck
no realiza la corrección. La opción --max-unhealthy
se establece de forma predeterminada en 100%
. Puede especificar un número absoluto o un porcentaje para esta marca.
tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME --max-unhealthy "60%"
tanzu cluster machinehealthcheck node set CLUSTER-NAME --max-unhealthy "60%"
--node-startup-timeout
: Esta opción controla la cantidad de tiempo que el controlador MachineHealthCheck
espera a que una máquina se una al clúster antes de considerar que la máquina tiene un estado incorrecto. Por ejemplo, los siguientes comandos establecen la opción --node-startup-timeout
en 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 una máquina no puede unirse al clúster dentro del tiempo especificado, el controlador MachineHealthCheck
vuelve a crear la máquina.
--unhealthy-conditions
: Esta opción puede establecer las condiciones Ready
, MemoryPressure
, DiskPressure
, PIDPressure
y NetworkUnavailable
. El controlador MachineHealthCheck
utiliza las condiciones que estableció para supervisar el estado del plano de control y de los nodos de trabajo. Para establecer el estado de una condición, utilice True
, False
o Unknown
. Por ejemplo:
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"
El ejemplo anterior establece la condición Ready
en False:5m
y Unknown:5m
. Si una máquina permanece en el estado Unknown
o False
durante más de 5m
, el controlador MachineHealthCheck
considera que la máquina tiene un estado incorrecto y la vuelve a crear.
MachineHealthCheck
Siga los pasos a continuación para recuperar los objetos MachineHealthCheck
para sus clústeres. La marca --mhc-name
se ignora para los clústeres basados en clases.
Para recuperar el objeto MachineHealthCheck
para el plano de control del clúster de destino, ejecute:
tanzu cluster machinehealthcheck control-plane get CLUSTER-NAME --mhc-name MHC-NAME
Omita la marca --mhc-name
si el objeto se creó con el nombre predeterminado o si tiene como objetivo un clúster basado en clases.
Para recuperar el objeto MachineHealthCheck
para los nodos de trabajo del clúster de destino, ejecute:
tanzu cluster machinehealthcheck node get CLUSTER-NAME --mhc-name MHC-NAME
Omita la marca --mhc-name
si el objeto se creó con el nombre predeterminado o si tiene como objetivo un clúster basado en clases.
MachineHealthCheck
Siga los pasos a continuación para eliminar los objetos MachineHealthCheck
para sus clústeres.
Clústeres basados en clases:
Para eliminar el objeto MachineHealthCheck
para el plano de control de un clúster basado en clases:
tanzu cluster machinehealthcheck control-plane delete CLUSTER-NAME
Para eliminar el objeto o los objetos MachineHealthCheck
para los nodos de trabajo de un clúster basado en clases:
Si el clúster tiene una implementación de una sola máquina, ejecute:
tanzu cluster machinehealthcheck node delete CLUSTER-NAME
Si el clúster tiene implementaciones de varias máquinas, ejecute el siguiente comando para cada implementación de máquina:
tanzu cluster machinehealthcheck node delete CLUSTER-NAME --machine-deployment MACHINE-DEPLOYMENT-NAME
Clústeres heredados:
Para eliminar el objeto MachineHealthCheck
del plano de control de un clúster heredado:
tanzu cluster machinehealthcheck control-plane delete CLUSTER-NAME --mhc-name MHC-NAME
Omita la marca --mhc-name
si el objeto se creó con el nombre predeterminado.
Para eliminar el objeto MachineHealthCheck
para los nodos de trabajo de un clúster heredado, ejecute:
tanzu cluster machinehealthcheck node delete CLUSTER-NAME --mhc-name MHC-NAME
Omita la marca --mhc-name
si el objeto se creó con el nombre predeterminado.