En este tema se describe cómo configurar MachineHealthCheck para clústeres de Servicio TKG aprovisionados mediante la API v1beta1.
MachineHealthCheck para clústeres v1beta1
MachineHealthCheck es un recurso de la API de clúster de Kubernetes que define las condiciones para corregir máquinas en mal estado. En Kubernetes, una máquina es un recurso personalizado que puede ejecutar kubelet. En vSphere IaaS control plane, un recurso de máquina de Kubernetes está respaldado por una máquina virtual de vSphere. Para obtener más información, consulte la documentación ascendente.
Al aprovisionar un clúster mediante Servicio TKG, el sistema crea objetos predeterminados MachineHealthCheck, uno para todos los planos de control y otro para cada implementación de máquina. A partir de vSphere 8 Update 3, se pueden configurar las comprobaciones de estado de las máquinas para los clústeres v1beta1. La configuración admitida incluye lo siguiente:
- maxUnhealthy
- nodeStartupTimeout
- unhealthyConditions
- unhealthyRange
Campo | Valor | Descripción |
---|---|---|
maxUnhealthy |
string Número absoluto o porcentaje |
No se realizará la corrección cuando el número de máquinas en mal estado supere el valor. |
nodeStartupTimeout |
string Duración con el formato |
Cualquier máquina que se esté creando que tarde más que el tiempo en unirse al clúster se considera con errores y se corregirá. |
unhealthyConditions |
matriz [] de tipos unhealthyConditions Tipos de condición disponibles: [ Estados de condición disponibles: [ |
Lista de condiciones que determinan si un nodo del plano de control se considera en mal estado. |
unhealthyRange |
string | Cualquier otra corrección solo se permite si el número de máquinas seleccionadas por el "selector" como en mal estado está dentro del rango de Tiene prioridad sobre |
Ejemplo de MachineHealthCheck
machineHealthCheck
para un
machineDeployment
determinado.
... topology: class: tanzukubernetescluster version: v1.28.8---vmware.1-fips.1-tkg.2 controlPlane: machineHealthCheck: enable: true maxUnhealthy: 100% nodeStartupTimeout: 4h0m0s unhealthyConditions: - status: Unknown timeout: 5m0s type: Ready - status: "False" timeout: 12m0s type: Ready ... workers: machineDeployments: - class: node-pool failureDomain: np1 machineHealthCheck: enable: true maxUnhealthy: 100% nodeStartupTimeout: 4h0m0s unhealthyConditions: - status: Unknown timeout: 5m0s type: Ready - status: "False" timeout: 12m0s type: Ready
Revisar MachineHealthCheck mediante Kubectl
MachineHealthCheck
de un clúster v1beta1 después de que se haya aprovisionado, utilice el método
patch
.
MachineHealthCheck
de un clúster existente.
- Obtenga
machineDeployment
a partir de la definición de recursos del clúster.kubectl get cluster CLUSTER_NAME -o yaml
En la sección
spec.topology.workers.machineDeployments
, debería ver el valor que identifica cadamachineDeployment
. - Elimine el nodo de trabajo MachineHealthCheck.
kubectl patch cluster <Cluster Name> -n <cluster namespace> --type json -p='{"op": "replace", "path": "/spec/topology/workers/machineDeployments/<index>/machineHealthCheck", "value":{"enable":false}}'
- Elimine el plano de control MachineHealthCheck.
kubectl patch cluster <cluster-name> -n <cluster-namespace> --type json -p='{"op": "replace", "path": "/spec/topology/controlPlane/machineHealthCheck", "value":{"enable":false}}'
- Cree o actualice el plano de control MachineHealthCheck con la configuración deseada.
kubectl patch cluster <cluster-name> -n <cluster-namespace> --type json -p='[{"op": "replace", "path": "/spec/topology/controlPlane/machineHealthCheck", "value":{"enable":true,"nodeStartupTimeout":"1h58m","unhealthyConditions":[{"status":"Unknown","timeout":"5m10s","type":"Unknown"},{"status":"Unknown","timeout":"5m0s","type":"Ready"}],"maxUnhealthy":"100%"}}]'
- Cree o actualice el nodo de trabajo MachineHealthCheck con la configuración deseada.
kubectl patch cluster <cluster-name> -n <cluster-namespace> --type json -p='[{"op": "replace", "path": "/spec/topology/workers/machineDeployments/<index>/machineHealthCheck", "value":{"enable":true,"nodeStartupTimeout":"1h58m","unhealthyConditions":[{"status":"Unknown","timeout":"5m10s","type":"Unknown"},{"status":"Unknown","timeout":"5m0s","type":"Ready"}],"maxUnhealthy":"100%"}}]'
Configurar MachineHealthCheck mediante la CLI de Tanzu
Puede utilizar la CLI de Tanzu a fin de configurar MachineHealthCheck para un clúster v1beta1.
tanzu cluster mhc control-plane set <cluster-name> --node-startup-timeout 2h7m10s
tanzu cluster mhc control-plane get <cluster-name>
tanzu cluster mhc node set <cluster-name> --machine-deployment node-pool-1 --node-startup-timeout 1h59m0s
tanzu cluster mhc node get <cluster-name> -m <cluster-name>-node-pool-1-nr7r5
Además de obtener y establecer, el sistema admite la operación de eliminación. Por ejemplo:
tanzu cluster mhc control-plane delete <cluster-name>Por el nodo puede usar el siguiente comando:
tanzu cluster mhc <cluster-name> --machine-deployment <machine deployment name>