10장. 머신 상태 점검 배포

머신 풀에서 손상된 머신을 자동으로 복구하도록 머신 상태 점검을 구성하고 배포할 수 있습니다.

중요

이 프로세스는 시스템을 수동으로 프로비저닝한 클러스터에는 적용되지 않습니다. 머신 API가 작동하는 클러스터에서만 고급 머신 관리 및 스케일링 기능을 사용할 수 있습니다.

10.1. 머신 상태 점검 정보

MachineHealthCheck 리소스를 사용하여 클러스터의 시스템이 비정상적으로 간주되는 조건을 정의할 수 있습니다. 조건과 일치하는 머신이 자동으로 수정됩니다.

시스템 상태를 모니터링하려면 NotReady 상태를 15 분 동안 유지하거나 노드 문제 탐지기(node-problem-detector)에 영구적인 조건을 표시하는 등 검사할 조건과 모니터링할 머신 세트의 레이블을 설정이 포함된 MachineHealthCheck 사용자 지정 리소스 (CR)를 생성합니다.

MachineHealthCheck CR을 모니터링하는 컨트롤러에서 사용자가 정의한 상태를 점검합니다. 머신이 상태 확인에 실패하면 머신이 자동으로 삭제되고 대체할 새로운 머신이 만들어집니다. 머신이 삭제되면 machine deleted 이벤트가 표시됩니다.

참고

마스터 역할이 있는 머신의 경우 머신 상태 확인을 통해 상태가 좋지 않은 노드 수를 보고하지만 머신은 삭제되지 않습니다. 예를 들면 다음과 같습니다.

출력 예

$ oc get machinehealthcheck example -n openshift-machine-api

NAME      MAXUNHEALTHY   EXPECTEDMACHINES   CURRENTHEALTHY
example   40%            3                  1

머신 삭제로 인한 영향을 제한하기 위해 컨트롤러는 한 번에 하나의 노드만 드레인하고 삭제합니다. 대상 머신 풀에서 허용된 maxUnhealthy 임계값 보다 많은 비정상적인 머신이 있는 경우 컨트롤러가 머신 삭제를 중지하고 사용자가 수동으로 개입해야 합니다.

검사를 중지하려면 사용자 정의 리소스를 제거합니다.

10.1.1. 베어 메탈에서 MachineHealthCheck

베어 메탈 클러스터에서 머신 삭제를 사용하면 베어 메탈 호스트의 재프로비저닝이 트리거됩니다. 일반적으로 베어 메탈 재프로비저닝은 시간이 오래 걸리는 프로세스로, 이 과정에서 클러스터에 컴퓨팅 리소스가 누락되고 애플리케이션이 중단될 수 있습니다. 기본 수정 프로세스를 머신 삭제에서 호스트 전원 사이클로 변경하려면 machine.openshift.io/remediation-strategy: external-baremetal 주석을 MachineHealthCheck 리소스에 추가합니다.

주석을 설정하면 BMC 인증 정보를 사용하여 비정상 머신이 전원을 껐다가 켭니다.

10.1.2. 머신 상태 검사 배포 시 제한 사항

머신 상태 점검을 배포하기 전에 고려해야 할 제한 사항은 다음과 같습니다.

  • 머신 세트가 소유한 머신만 머신 상태 검사를 통해 업데이트를 적용합니다.
  • 컨트롤 플레인 시스템은 현재 지원되지 않으며 비정상적인 경우 업데이트 적용되지 않습니다.
  • 머신의 노드가 클러스터에서 제거되면 머신 상태 점검에서 이 머신을 비정상적으로 간주하고 즉시 업데이트를 적용합니다.
  • nodeStartupTimeout 후 시스템의 해당 노드가 클러스터에 참여하지 않으면 업데이트가 적용됩니다.
  • Machine 리소스 단계가 Failed하면 즉시 머신에 업데이트를 적용합니다.

추가 리소스