14.4. 베어 메탈의 전원 기반 업데이트 적용 정보


베어 메탈 클러스터에서 노드의 업데이트 적용은 클러스터의 전반적인 상태를 보장하는 데 중요합니다. 물리적으로 클러스터에 업데이트를 적용하는 것은 어려움이 있을 수 있으며 머신을 안전하거나 운영 체제로 전환하기 위한 지연으로 인해 클러스터가 성능 저하된 상태로 유지되는 시간이 길어지고 이후의 장애 발생으로 인해 클러스터가 클러스터를 오프라인 상태가 될 수 있습니다. 전원 기반 문제 해결은 이러한 문제에 대응하는 데 도움이 됩니다.

전원 기반 업데이트 적용에서는 노드를 재프로비저닝하는 대신 전원 컨트롤러를 사용하여 작동하지 않는 노드의 전원을 끕니다. 이러한 유형의 수정을 전원 펜싱이라고 합니다.

OpenShift Container Platform은 MachineHealthCheck 컨트롤러를 사용하여 문제가 있는 베어 메탈 노드를 감지합니다. 전원 기반 업데이트 적용은 신속하게 수행되며 클러스터에서 문제가 있는 노드를 제거하는 대신 재부팅합니다.

전원 기반 업데이트 적용은 다음과 같은 기능을 제공합니다.

  • 컨트롤 플레인 노드를 복구 가능
  • 하이퍼컨버지드 환경의 데이터 손실 위험을 줄입니다.
  • 물리적 머신 복구와 관련된 다운타임 감소

14.4.1. 베어 메탈에서 MachineHealthCheck

베어 메탈 클러스터에서 머신 삭제를 사용하면 베어 메탈 호스트의 재프로비저닝이 트리거됩니다. 일반적으로 베어 메탈 재프로비저닝은 시간이 오래 걸리는 프로세스로, 이 과정에서 클러스터에 컴퓨팅 리소스가 누락되고 애플리케이션이 중단될 수 있습니다.

기본 수정 프로세스를 시스템 삭제에서 호스트 전원 사이클로 변경하는 방법은 다음 두 가지가 있습니다.

  1. machine.openshift.io/remediation-strategy: external-baremetal 주석을 사용하여 MachineHealthCheck 리소스에 주석을 답니다.
  2. Metal3RemediationTemplate 리소스를 생성하고 MachineHealthCheckspec.remediationTemplate 에서 참조하십시오.

이러한 방법 중 하나를 사용하면 비정상 머신이 BMC(Baseboard Management Controller) 인증 정보를 사용하여 전원을 켭니다.

14.4.2. 주석 기반 수정 프로세스 이해

수정 프로세스는 다음과 같이 작동합니다.

  1. MHC(MachineHealthCheck) 컨트롤러는 노드가 비정상임을 감지합니다.
  2. MHC는 비정상 노드의 전원을 끄도록 요청하는 베어 메탈 머신 컨트롤러에 통지합니다.
  3. 전원이 꺼지면 노드가 삭제되어 클러스터가 다른 노드에서 영향을 받는 워크로드를 다시 예약할 수 있습니다.
  4. 베어 메탈 머신 컨트롤러에서 노드의 전원을 켜도록 요청합니다.
  5. 노드가 가동되면 노드가 클러스터와 함께 다시 등록되어 새 노드가 생성됩니다.
  6. 노드가 다시 생성되면 베어 메탈 머신 컨트롤러는 삭제하기 전에 비정상 노드에 존재하는 주석 및 레이블을 복원합니다.
참고

전원 작업이 완료되지 않은 경우 베어 메탈 머신 컨트롤러는 컨트롤 플레인 노드 또는 외부 프로비저닝 노드가 아닌 한 비정상 노드의 재프로비저닝을 트리거합니다.

14.4.3. metal3- 기반 수정 프로세스 이해

수정 프로세스는 다음과 같이 작동합니다.

  1. MHC(MachineHealthCheck) 컨트롤러는 노드가 비정상임을 감지합니다.
  2. MHC는 metal3 수정 컨트롤러에 대한 metal3 수정 사용자 정의 리소스를 생성하여 비정상 노드의 전원을 끄도록 요청합니다.
  3. 전원이 꺼지면 노드가 삭제되어 클러스터가 다른 노드에서 영향을 받는 워크로드를 다시 예약할 수 있습니다.
  4. metal3 수정 컨트롤러에서 노드의 전원을 켜도록 요청합니다.
  5. 노드가 가동되면 노드가 클러스터와 함께 다시 등록되어 새 노드가 생성됩니다.
  6. 노드가 다시 생성되면 metal3 수정 컨트롤러에서 삭제하기 전에 비정상 노드에 존재하는 주석 및 레이블을 복원합니다.
참고

전원 작업이 완료되지 않으면 metal3 수정 컨트롤러에서 컨트롤 플레인 노드 또는 외부 프로비저닝 노드가 아닌 한 비정상 노드의 재프로비저닝을 트리거합니다.

14.4.4. 베어 메탈의 MachineHealthCheck 리소스 생성

사전 요구 사항

  • OpenShift Container Platform은 설치 관리자 프로비저닝 인프라(IPI)를 사용하여 설치됩니다.
  • BMC 자격 증명(또는 각 노드에 대한 BMC 액세스)에 액세스합니다.
  • 비정상 노드의 BMC 인터페이스에 대한 네트워크 액세스가 있어야 합니다.

프로세스

  1. 머신 상태 점검 정의가 포함된 healthcheck.yaml 파일을 생성합니다.
  2. 다음 명령을 사용하여 healthcheck.yaml 파일을 클러스터에 적용합니다.

    $ oc apply -f healthcheck.yaml

베어 메탈, 주석 기반 수정을 위한 MachineHealthCheck 리소스 샘플

apiVersion: machine.openshift.io/v1beta1
kind: MachineHealthCheck
metadata:
  name: example 1
  namespace: openshift-machine-api
  annotations:
    machine.openshift.io/remediation-strategy: external-baremetal 2
spec:
  selector:
    matchLabels:
      machine.openshift.io/cluster-api-machine-role: <role> 3
      machine.openshift.io/cluster-api-machine-type: <role> 4
      machine.openshift.io/cluster-api-machineset: <cluster_name>-<label>-<zone> 5
  unhealthyConditions:
  - type:    "Ready"
    timeout: "300s" 6
    status: "False"
  - type:    "Ready"
    timeout: "300s" 7
    status: "Unknown"
  maxUnhealthy: "40%" 8
  nodeStartupTimeout: "10m" 9

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는 예제일 뿐입니다. 특정 요구에 따라 머신 그룹을 매핑해야 합니다.

베어 메탈의 MachineHealthCheck 리소스 샘플, metal3- 기반 수정

apiVersion: machine.openshift.io/v1beta1
kind: MachineHealthCheck
metadata:
  name: example
  namespace: openshift-machine-api
spec:
  selector:
    matchLabels:
      machine.openshift.io/cluster-api-machine-role: <role>
      machine.openshift.io/cluster-api-machine-type: <role>
      machine.openshift.io/cluster-api-machineset: <cluster_name>-<label>-<zone>
  remediationTemplate:
    apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
    kind: Metal3RemediationTemplate
    name: metal3-remediation-template
    namespace: openshift-machine-api
  unhealthyConditions:
  - type:    "Ready"
    timeout: "300s"

베어 메탈, metal3- 기반 수정에 대한 샘플 Metal3RemediationTemplate 리소스

apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: Metal3RemediationTemplate
metadata:
  name: metal3-remediation-template
  namespace: openshift-machine-api
spec:
  template:
    spec:
      strategy:
        type: Reboot
        retryLimit: 1
        timeout: 5m0s

참고

matchLabels는 예제일 뿐입니다. 특정 요구에 따라 머신 그룹을 매핑해야 합니다. annotations 섹션은 metal3- 기반 수정에는 적용되지 않습니다. 주석 기반 수정 및 metal3- 기반 수정은 함께 사용할 수 없습니다.

14.4.5. 전원 기반 수정 문제 해결

전원 기반 수정 문제를 해결하려면 다음을 확인합니다.

  • BMC에 액세스할 수 있습니다.
  • BMC는 수정 작업을 실행하는 컨트롤 플레인 노드에 연결됩니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.