12.4. 베어 메탈의 전원 기반 업데이트 적용 정보
베어 메탈 클러스터에서 노드의 업데이트 적용은 클러스터의 전반적인 상태를 보장하는 데 중요합니다. 물리적으로 클러스터에 업데이트를 적용하는 것은 어려움이 있을 수 있으며 머신을 안전하거나 운영 체제로 전환하기 위한 지연으로 인해 클러스터가 성능 저하된 상태로 유지되는 시간이 길어지고 이후의 장애 발생으로 인해 클러스터가 클러스터를 오프라인 상태가 될 수 있습니다. 전원 기반 문제 해결은 이러한 문제에 대응하는 데 도움이 됩니다.
전원 기반 업데이트 적용에서는 노드를 재프로비저닝하는 대신 전원 컨트롤러를 사용하여 작동하지 않는 노드의 전원을 끕니다. 이러한 유형의 수정을 전원 펜싱이라고 합니다.
OpenShift Container Platform은 MachineHealthCheck
컨트롤러를 사용하여 문제가 있는 베어 메탈 노드를 감지합니다. 전원 기반 업데이트 적용은 신속하게 수행되며 클러스터에서 문제가 있는 노드를 제거하는 대신 재부팅합니다.
전원 기반 업데이트 적용은 다음과 같은 기능을 제공합니다.
- 컨트롤 플레인 노드를 복구 가능
- 하이퍼컨버지드 환경에서 데이터 손실 위험을 줄입니다.
- 물리적 머신 복구와 관련된 다운타임 감소
12.4.1. 베어 메탈에서 MachineHealthCheck 링크 복사링크가 클립보드에 복사되었습니다!
베어 메탈 클러스터에서 머신 삭제를 사용하면 베어 메탈 호스트의 재프로비저닝이 트리거됩니다. 일반적으로 베어 메탈 재프로비저닝은 시간이 오래 걸리는 프로세스로, 이 과정에서 클러스터에 컴퓨팅 리소스가 누락되고 애플리케이션이 중단될 수 있습니다.
기본 수정 프로세스를 머신 삭제에서 호스트 전원 껐다 켜기로 변경하는 방법에는 두 가지가 있습니다.
-
MachineHealthCheck
리소스에machine.openshift.io/remediation-strategy: external-baremetal
주석을 추가합니다. -
Metal3RemediationTemplate
리소스를 만들고MachineHealthCheck
의spec.remediationTemplate
에서 이를 참조합니다.
이러한 방법 중 하나를 사용한 후에는 Baseboard Management Controller(BMC) 자격 증명을 사용하여 상태가 좋지 않은 컴퓨터의 전원을 껐다가 다시 켭니다.
12.4.2. 주석 기반 수정 프로세스 이해 링크 복사링크가 클립보드에 복사되었습니다!
수정 프로세스는 다음과 같이 작동합니다.
- MHC(MachineHealthCheck) 컨트롤러는 노드가 비정상임을 감지합니다.
- MHC는 비정상 노드의 전원을 끄도록 요청하는 베어 메탈 머신 컨트롤러에 통지합니다.
- 전원이 꺼지면 노드가 삭제되어 클러스터가 다른 노드에서 영향을 받는 워크로드를 다시 예약할 수 있습니다.
- 베어 메탈 머신 컨트롤러에서 노드의 전원을 켜도록 요청합니다.
- 노드가 가동되면 노드가 클러스터와 함께 다시 등록되어 새 노드가 생성됩니다.
- 노드가 다시 생성되면 베어 메탈 머신 컨트롤러는 삭제하기 전에 비정상 노드에 존재하는 주석 및 레이블을 복원합니다.
전원 작업이 완료되지 않은 경우 베어 메탈 머신 컨트롤러는 컨트롤 플레인 노드 또는 외부 프로비저닝 노드가 아닌 한 비정상 노드의 재프로비저닝을 트리거합니다.
12.4.3. 금속3 기반 정화 과정 이해 링크 복사링크가 클립보드에 복사되었습니다!
수정 프로세스는 다음과 같이 작동합니다.
- MHC(MachineHealthCheck) 컨트롤러는 노드가 비정상임을 감지합니다.
- MHC는 metal3 치료 컨트롤러에 대한 metal3 치료 사용자 지정 리소스를 생성하여 건강에 해로운 노드의 전원을 끄도록 요청합니다.
- 전원이 꺼지면 노드가 삭제되어 클러스터가 다른 노드에서 영향을 받는 워크로드를 다시 예약할 수 있습니다.
- metal3 수정 컨트롤러에서 노드의 전원을 켜도록 요청합니다.
- 노드가 가동되면 노드가 클러스터와 함께 다시 등록되어 새 노드가 생성됩니다.
- 노드가 재생성된 후, metal3 복구 컨트롤러는 삭제되기 전에 해당 노드에 존재했던 주석과 라벨을 복원합니다.
전원 작업이 완료되지 않으면 metal3 복구 컨트롤러는 제어 평면 노드나 외부에서 프로비저닝된 노드가 아닌 이상 비정상 노드의 재프로비저닝을 트리거합니다.
12.4.4. 베어 메탈의 MachineHealthCheck 리소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- OpenShift Container Platform은 설치 관리자 프로비저닝 인프라(IPI)를 사용하여 설치됩니다.
- BMC 자격 증명에 대한 액세스(또는 각 노드에 대한 BMC 액세스).
- 비정상 노드의 BMC 인터페이스에 대한 네트워크 액세스가 있어야 합니다.
프로세스
-
머신 상태 점검 정의가 포함된
healthcheck.yaml
파일을 생성합니다. 다음 명령을 사용하여
healthcheck.yaml
파일을 클러스터에 적용합니다.oc apply -f healthcheck.yaml
$ oc apply -f healthcheck.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
베어 메탈, 주석 기반 수정을 위한 샘플 MachineHealthCheck
리소스
- 1
- 배포할 머신 상태 점검의 이름을 지정합니다.
- 2
- 베어 메탈 클러스터의 경우 전원 사이클 수정을 활성화하려면
annotations
섹션에machine.openshift.io/remediation-strategy: external-baremetal
주석을 포함해야 합니다. 이 업데이트 적용 전략으로 비정상 호스트가 클러스터에서 제거되지 않고 재부팅됩니다. - 3 4
- 확인할 머신 풀의 레이블을 지정합니다.
- 5
<cluster_name>-<label>-<zone>
형식으로 추적할 컴퓨팅 머신 세트를 지정합니다. 예를 들어prod-node-us-east-1a
입니다.- 6 7
- 노드 상태에 대한 시간 제한을 지정합니다. 시간 제한 기간 중 상태가 일치되면 머신이 수정됩니다. 시간 제한이 길어지면 비정상 머신의 워크로드에 대한 다운타임이 길어질 수 있습니다.
- 8
- 대상 풀에서 동시에 복구할 수 있는 시스템 수를 지정합니다. 이는 백분율 또는 정수로 설정할 수 있습니다. 비정상 머신의 수가
maxUnhealthy
에서의 설정 제한을 초과하면 복구가 수행되지 않습니다. - 9
- 머신 상태가 비정상으로 확인되기 전에 노드가 클러스터에 참여할 때까지 기다려야 하는 시간 초과 기간을 지정합니다.
matchLabels
는 예제일 뿐입니다. 특정 요구에 따라 머신 그룹을 매핑해야 합니다.
베어 메탈, metal3 기반 수정을 위한 샘플 MachineHealthCheck
리소스
베어 메탈, metal3 기반 복구를 위한 샘플 Metal3RemediationTemplate
리소스
matchLabels
는 예제일 뿐입니다. 특정 요구에 따라 머신 그룹을 매핑해야 합니다. 주석
섹션은 metal3 기반 치료에 적용되지 않습니다. 주석 기반 교정과 metal3 기반 교정은 상호 배타적입니다.
12.4.5. 전원 기반 수정 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
전원 기반 수정 문제를 해결하려면 다음을 확인합니다.
- BMC에 액세스할 수 있습니다.
- BMC는 수정 작업을 실행하는 컨트롤 플레인 노드에 연결됩니다.