7.6.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 업데이트 재부팅을 일시 중지하거나 일시 중지 해제하려면 다음을 수행합니다.
자동 재부팅 프로세스를 일시 중지합니다.
MachineConfigPool
사용자 정의 리소스를 업데이트하여spec.paused
필드를true
로 설정합니다.컨트롤 플레인 (마스터) 노드
$ oc patch --type=merge --patch='{"spec":{"paused":true}}' machineconfigpool/master
작업자 노드
$ oc patch --type=merge --patch='{"spec":{"paused":true}}' machineconfigpool/worker
MCP가 일시 중지되었는지 확인합니다.
컨트롤 플레인 (마스터) 노드
$ oc get machineconfigpool/master --template='{{.spec.paused}}'
작업자 노드
$ oc get machineconfigpool/worker --template='{{.spec.paused}}'
출력 예
true
spec.paused
필드가true
이고 MCP가 일시 중지되었습니다.MCP에 보류 중인 변경 사항이 있는지 확인합니다.
# oc get machineconfigpool
출력 예
NAME CONFIG UPDATED UPDATING master rendered-master-33cf0a1254318755d7b48002c597bf91 True False worker rendered-worker-e405a5bdb0db1295acea08bcca33fa60 False False
UPDATED 열이 False이고 UPDATING이 False이면 보류 중인 변경 사항이 있습니다. UPDATED가 True이고 UPDATING이 False인 경우 보류 중인 변경 사항이 없습니다. 이전 예에서 작업자 노드에 보류 중인 변경 사항이 있습니다. 컨트롤 플레인 노드(마스터 노드라고도 함)에는 보류 중인 변경 사항이 없습니다.
중요Updated 및 Updating 열이 모두 False인 보류 중인 변경 사항이 있는 경우 최대한 빨리 재부팅할 수 있도록 유지 관리 기간을 예약하는 것이 좋습니다. 자동 재부팅 프로세스를 일시 중지 해제하려면 다음 단계를 사용하여 마지막 재부팅 이후 대기열에 있는 변경 사항을 적용합니다.
자동 재부팅 프로세스의 일시 중지를 해제합니다.
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)를 재부팅합니다.
MCP가 일시 중지되지 않았는지 확인합니다.
컨트롤 플레인 (마스터) 노드
$ oc get machineconfigpool/master --template='{{.spec.paused}}'
작업자 노드
$ oc get machineconfigpool/worker --template='{{.spec.paused}}'
출력 예
false
spec.paused
필드가false
이고 MCP가 일시 중지되지 않습니다.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입니다. UPDATED가 True이고 UPDATING이 False이면 추가 변경 사항이 없습니다. 이전 예에서 MCO는 작업자 노드를 업데이트하고 있습니다.