이 항목에서는 제어부 및 Worker 노드용 MachineHealthCheck
개체를 생성, 업데이트, 검색, 삭제하는 데 Tanzu CLI(명령줄 인터페이스)를 사용하는 방법을 설명합니다.
자세한 내용은 Tanzu CLI 명령 참조에서 tanzu cluster machinehealthcheck
를 참조하십시오.
MachineHealthCheck
정보MachineHealthCheck
시스템에 대한 상태 모니터링 및 자동 복구를 제공하는 컨트롤러입니다. 제어부 및 작업자 노드 모두에 대해 모든 관리 및 워크로드 클러스터에서 자동으로 사용하도록 설정되어 있습니다. 단일 시스템 배포 또는 레거시 클러스터로 클래스 기반 클러스터를 배포할 때 컨트롤러가 활성화된 경우, Tanzu Kubernetes Grid는 클러스터에 두 개의 기본 MachineHealthCheck
개체를 생성합니다. 하나는 제어부 노드용이고 Worker 노드용입니다. 여러 시스템 배포가 있는 클래스 기반 클러스터의 경우 Tanzu Kubernetes Grid 제어부에 하나의 MachineHealthCheck
개체를 생성하고 각 시스템 배포에 하나씩 생성합니다. 이러한 개체는 클러스터와 동일한 네임스페이스에 생성된 것입니다.
컨트롤러를 비활성화하는 경우 MachineHealthCheck
개체 생성 또는 업데이트 섹션에 있는 명령을 사용하여 다시 사용하도록 설정할 수 있습니다. 이 명령을 사용하여 기존 MachineHealthCheck
개체를 업데이트할 수도 있습니다.
MachineHealthCheck
개체 생성 또는 업데이트아래 단계에 따라 클러스터에 MachineHealthCheck
개체를 생성하거나 업데이트합니다.
클래스 기반 클러스터:
클래스 기반 클러스터의 제어부에 기본 MachineHealthCheck
개체를 생성하려면:
tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME
클래스 기반 클러스터의 Worker 노드에 기본 MachineHealthCheck
개체를 생성하려면:
클러스터에 단일 시스템 배포가 있는 경우 다음을 실행합니다.
tanzu cluster machinehealthcheck node set CLUSTER-NAME
클러스터에 여러 시스템 배포가 있는 경우 각 시스템 배포에 다음 명령을 실행합니다. 이렇게 하면 각 시스템 배포에 기본 MachineHealthCheck
개체가 생성됩니다.
tanzu cluster machinehealthcheck node set CLUSTER-NAME --machine-deployment MACHINE-DEPLOYMENT-NAME
형식 설명:
CLUSTER-NAME
은 대상 클러스터의 이름입니다.MACHINE-DEPLOYMENT-NAME
은 시스템 배포의 이름입니다. 예: md-0
. 시스템 배포 이름을 검색하려면 kubectl get cluster CLUSTER-NAME -o yaml
을 실행한 다음 출력에서 spec.topology.workers.machineDeployments.name
을 찾습니다.레거시 클러스터:
레거시 클러스터의 제어부에 기본 MachineHealthCheck
개체를 생성하려면:
tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME --mhc-name MHC-NAME
레거시 클러스터의 Worker 노드에 기본 MachineHealthCheck
개체를 생성하려면:
tanzu cluster machinehealthcheck node set CLUSTER-NAME --mhc-name MHC-NAME
형식 설명:
CLUSTER-NAME
은 대상 클러스터의 이름입니다.MHC-NAME
은 MachineHealthCheck
개체에 선택하는 이름입니다. 지정하지 않으면 이름은 CLUSTER-NAME
으로 설정되어 있습니다. 이러한 두 명령을 모두 실행하는 경우 --mhc-name
을 지정해야 합니다. 클래스 기반 클러스터에서는 --mhc-name
플래그가 무시됩니다.또한 위 명령을 사용하여 사용자 지정된 MachineHealthCheck
개체를 생성하거나 기존 MachineHealthCheck
개체를 업데이트할 수 있습니다. MachineHealthCheck
개체를 사용자 지정하거나 업데이트하려면 다음 플래그 중 하나 이상을 지정할 수 있습니다.
참고이러한 예에서는 단일 시스템 배포를 사용하는 클래스 기반 클러스터에
MachineHealthCheck
설정을 사용자 지정하거나 업데이트한다고 가정합니다. 여러 시스템 배포가 있는 클래스 기반 클러스터의 Worker 노드에MachineHealthCheck
개체를 사용자 지정하거나 업데이트할 때--machine-deployment
플래그를 지정해야 합니다. 레거시 클러스터의 경우 위에 설명된 대로--mhc-name
을 지정합니다.
--match-labels
: 이 옵션은 레이블 키 및 값을 기준으로 시스템을 필터링합니다. 레이블 제약 조건을 하나 이상 지정할 수 있습니다. MachineHealthCheck
개체는 지정된 제약 조건을 충족하는 모든 시스템에 적용되어 있습니다. 다음과 같이 키-값 쌍의 형식을 지정합니다.
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
: 비정상 시스템 수가 이 플래그를 사용할 때 설정한 값을 초과하면 MachineHealthCheck
컨트롤러가 업데이트 적용을 하지 않습니다. --max-unhealthy
설정은 기본적으로 100%
입니다. 이 플래그에 절대 수 또는 백분율을 지정할 수 있습니다.
tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME --max-unhealthy "60%"
tanzu cluster machinehealthcheck node set CLUSTER-NAME --max-unhealthy "60%"
--node-startup-timeout
: 이 옵션은 시스템 비정상 상태를 고려하기 전에 MachineHealthCheck
컨트롤러가 시스템이 클러스터에 가입할 때까지 대기하는 시간을 제어합니다. 예를 들어 아래 명령은 --node-startup-timeout
옵션을 21m
으로 설정합니다.
tanzu cluster machinehealthcheck control-plane set my-cluster --node-startup-timeout 21m
tanzu cluster machinehealthcheck node set my-cluster --node-startup-timeout 21m
지정된 시간 내에 시스템이 클러스터에 가입하지 못하면 MachineHealthCheck
컨트롤러가 시스템을 다시 생성합니다.
--unhealthy-conditions
: 이 옵션은 Ready
, MemoryPressure
, DiskPressure
, PIDPressure
, NetworkUnavailable
조건을 설정할 수 있습니다. MachineHealthCheck
컨트롤러는 사용자가 설정한 조건을 사용하여 제어부 및 작업자 노드의 상태를 모니터링합니다. 조건의 상태를 설정하려면 True
, False
또는 Unknown
을 사용합니다. 예:
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"
위 예에서는 Ready
조건을 False:5m
및 Unknown:5m
으로 설정합니다. 시스템이 5m
이상인 Unknown
또는 False
상태에 있는 경우, MachineHealthCheck
컨트롤러는 시스템을 비정상 상태로 간주하고 다시 생성합니다.
MachineHealthCheck
개체 검색아래 단계에 따라 클러스터의 MachineHealthCheck
개체를 검색합니다. 클래스 기반 클러스터에서는 --mhc-name
플래그가 무시됩니다.
대상 클러스터의 제어부용 MachineHealthCheck
개체를 검색하려면 다음을 실행합니다.
tanzu cluster machinehealthcheck control-plane get CLUSTER-NAME --mhc-name MHC-NAME
개체가 기본 이름으로 생성되었거나 클래스 기반 클러스터를 대상으로 하는 경우 --mhc-name
플래그를 생략합니다.
대상 클러스터의 Worker 노드용 MachineHealthCheck
개체를 검색하려면 다음을 실행합니다.
tanzu cluster machinehealthcheck node get CLUSTER-NAME --mhc-name MHC-NAME
개체가 기본 이름으로 생성되었거나 클래스 기반 클러스터를 대상으로 하는 경우 --mhc-name
플래그를 생략합니다.
MachineHealthCheck
개체 삭제아래 단계에 따라 클러스터의 MachineHealthCheck
개체를 삭제합니다.
클래스 기반 클러스터:
클래스 기반 클러스터의 제어부용 MachineHealthCheck
개체를 삭제하려면:
tanzu cluster machinehealthcheck control-plane delete CLUSTER-NAME
클래스 기반 클러스터의 Worker 노드용 MachineHealthCheck
개체를 삭제하려면:
클러스터에 단일 시스템 배포가 있는 경우 다음을 실행합니다.
tanzu cluster machinehealthcheck node delete CLUSTER-NAME
클러스터에 여러 시스템 배포가 있는 경우 각 시스템 배포에 다음 명령을 실행합니다.
tanzu cluster machinehealthcheck node delete CLUSTER-NAME --machine-deployment MACHINE-DEPLOYMENT-NAME
레거시 클러스터:
레거시 클러스터의 제어부용 MachineHealthCheck
개체를 삭제하려면:
tanzu cluster machinehealthcheck control-plane delete CLUSTER-NAME --mhc-name MHC-NAME
개체가 기본 이름으로 생성된 경우--mhc-name
플래그를 생략합니다.
레거시 클러스터의 Worker 노드용 MachineHealthCheck
개체를 삭제하려면 다음을 실행합니다.
tanzu cluster machinehealthcheck node delete CLUSTER-NAME --mhc-name MHC-NAME
개체가 기본 이름으로 생성된 경우--mhc-name
플래그를 생략합니다.