Menu Close
Settings Close

Language and Page Formatting Options

7.5.6.2. CLI를 사용하여 Machine Config Operator가 자동으로 재부팅되지 않도록 비활성화

MCO(Machine Config Operator)의 변경으로 인한 원치 않는 중단을 방지하려면 OpenShift CLI(oc)를 사용하여 MCP(Machine Config Pool)를 수정하여 MCO가 해당 풀의 노드를 변경하지 못하도록 할 수 있습니다. 이렇게 하면 일반적으로 MCO 업데이트 프로세스의 일부인 재부팅을 방지할 수 있습니다.

참고

MCP를 일시 중지하면 MCO가 연결된 노드에 구성 변경 사항을 적용하지 못합니다. MCP를 일시 중지하면 자동으로 순환된 인증서가 kube-apiserver-to-kubelet-signer CA 인증서의 자동 순환을 포함하여 관련 노드로 푸시되지 않습니다. kube-apiserver-to-kubelet-signer CA 인증서가 만료되고 MCO가 자동으로 인증서를 갱신하려고 하면 새 인증서가 생성되지만 일시 중지된 MCP의 노드에 적용되지 않습니다. 이로 인해 oc debug, oc logs, oc exec, oc attach를 포함하여 여러 oc 명령이 실패합니다. MCP 일시 중지는 kube-apiserver-to-kubelet-signer CA 인증서 만료에 대해 신중하게 고려하여 단기간 동안만 수행해야 합니다.

새 CA 인증서는 설치 날짜로부터 292일 후에 생성되며 해당 날짜로부터 365일 후에 제거됩니다. 다음 자동 CA 인증서 교체를 확인하려면 Red Hat OpenShift 4의 Understand CA 인증서 자동 갱신을 참조하십시오.

사전 요구 사항

  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

절차

자동 MCO 업데이트 재부팅을 일시 중지하거나 일시 중지 해제하려면 다음을 수행합니다.

  • 자동 재부팅 프로세스를 일시 중지합니다.

    1. MachineConfigPool 사용자 정의 리소스를 업데이트하여 spec.paused 필드를 true로 설정합니다.

      컨트롤 플레인 (마스터) 노드

      $ oc patch --type=merge --patch='{"spec":{"paused":true}}' machineconfigpool/master

      작업자 노드

      $ oc patch --type=merge --patch='{"spec":{"paused":true}}' machineconfigpool/worker

    2. MCP가 일시 중지되었는지 확인합니다.

      컨트롤 플레인 (마스터) 노드

      $ oc get machineconfigpool/master --template='{{.spec.paused}}'

      작업자 노드

      $ oc get machineconfigpool/worker --template='{{.spec.paused}}'

      출력 예

      true

      spec.paused 필드가 true이고 MCP가 일시 중지되었습니다.

    3. MCP에 보류 중인 변경 사항이 있는지 확인합니다.

      # oc get machineconfigpool

      출력 예

      NAME     CONFIG                                             UPDATED   UPDATING
      master   rendered-master-33cf0a1254318755d7b48002c597bf91   True      False
      worker   rendered-worker-e405a5bdb0db1295acea08bcca33fa60   False     False

      UPDATED 열이 False이고 UPDATINGFalse이면 보류 중인 변경 사항이 있습니다. UPDATEDTrue이고 UPDATINGFalse인 경우 보류 중인 변경 사항이 없습니다. 이전 예에서 작업자 노드에 보류 중인 변경 사항이 있습니다. 컨트롤 플레인 노드(마스터 노드라고도 함)에는 보류 중인 변경 사항이 없습니다.

      중요

      UpdatedUpdating 열이 모두 False인 보류 중인 변경 사항이 있는 경우 최대한 빨리 재부팅할 수 있도록 유지 관리 기간을 예약하는 것이 좋습니다. 자동 재부팅 프로세스를 일시 중지 해제하려면 다음 단계를 사용하여 마지막 재부팅 이후 대기열에 있는 변경 사항을 적용합니다.

  • 자동 재부팅 프로세스의 일시 중지를 해제합니다.

    1. MachineConfigPool 사용자 정의 리소스에서 spec.paused 필드를 false로 업데이트합니다.

      컨트롤 플레인 (마스터) 노드

      $ oc patch --type=merge --patch='{"spec":{"paused":false}}' machineconfigpool/master

      작업자 노드

      $ oc patch --type=merge --patch='{"spec":{"paused":false}}' machineconfigpool/worker

      참고

      MCP의 일시 정지를 해제하면 MCO는 일시 중지된 모든 변경 사항을 적용하고 필요에 따라 RHCOS(Red Hat Enterprise Linux CoreOS)를 재부팅합니다.

    2. MCP가 일시 중지되지 않았는지 확인합니다.

      컨트롤 플레인 (마스터) 노드

      $ oc get machineconfigpool/master --template='{{.spec.paused}}'

      작업자 노드

      $ oc get machineconfigpool/worker --template='{{.spec.paused}}'

      출력 예

      false

      spec.paused 필드가 false이고 MCP가 일시 중지되지 않습니다.

    3. MCP에 보류 중인 변경 사항이 있는지 확인합니다.

      $ oc get machineconfigpool

      출력 예

      NAME     CONFIG                                   UPDATED  UPDATING
      master   rendered-master-546383f80705bd5aeaba93   True     False
      worker   rendered-worker-b4c51bb33ccaae6fc4a6a5   False    True

      MCP에서 보류 중인 변경 사항을 적용하는 경우 UPDATED 열은 False이고 UPDATING 열은 True입니다. UPDATEDTrue이고 UPDATINGFalse이면 추가 변경 사항이 없습니다. 이전 예에서 MCO는 작업자 노드를 업데이트하고 있습니다.