Administrar comprobaciones de estado de máquinas para clústeres de carga de trabajo

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.

Acerca de 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.

Crear o actualizar un objeto 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.

Nota

En 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 objeto MachineHealthCheck 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.

Recuperar un objeto 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.

Eliminar un objeto 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.

check-circle-line exclamation-circle-line close-line
Scroll to top icon