워크로드 클러스터에 대한 시스템 상태 점검 관리

이 항목에서는 제어부 및 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-NAMEMachineHealthCheck 개체에 선택하는 이름입니다. 지정하지 않으면 이름은 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:5mUnknown: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 플래그를 생략합니다.

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