5.4. Machine Config Operator 정보
OpenShift Container Platform 4.11은 운영 체제와 클러스터 관리를 모두 통합합니다. 클러스터는 클러스터 노드에서 RHCOS(Red Hat Enterprise Linux CoreOS)에 대한 업데이트를 포함하여 자체 업데이트를 관리하므로 OpenShift Container Platform은 노드 업그레이드 오케스트레이션을 단순화하는 독단적인 라이프사이클 관리 환경을 제공합니다.
OpenShift Container Platform은 3개의 데몬 세트와 컨트롤러를 사용하여 노드 관리를 단순화합니다. 이러한 데몬 세트는 표준 Kubernetes 스타일 구성을 사용하여 호스트에 대한 운영 체제 업데이트 및 구성 변경을 오케스트레이션합니다. 다음이 포함됩니다.
-
컨트롤 플레인에서 머신 업그레이드를 조정하는
machine-config-controller
. 모든 클러스터 노드를 모니터링하고 구성 업데이트를 오케스트레이션합니다. -
클러스터의 각 노드에서 실행되며 머신 구성에 정의된 구성으로 MachineConfigController의 지시에 따라 머신을 업데이트하는
machine-config-daemon
데몬 세트. 노드가 변경사항을 감지하면 포드를 비우고 업데이트를 적용한 다음 재부팅합니다. 이러한 변경사항은 지정된 머신 구성 및 제어 kubelet 구성을 적용하는 Ignition 구성 파일의 형태로 제공됩니다. 업데이트 자체는 컨테이너로 제공됩니다. 이 프로세스는 OpenShift Container Platform 및 RHCOS 업데이트를 성공적으로 관리하는 데 핵심입니다. -
클러스터에 참여할 때 컨트롤 플레인 노드에 Ignition 구성 파일을 제공하는
machine-config-server
데몬 세트.
머신 구성은 Ignition 구성의 서브 세트입니다. machine-config-daemon
은 OSTree 업데이트를 수행해야 하는지 아니면 일련의 systemd kubelet 파일 변경, 구성 변경 또는 운영 체제나 OpenShift Container Platform 구성의 기타 변경 사항을 적용해야 하는지 확인하기 위해 머신 구성을 읽습니다.
노드 관리 작업을 수행할 때 KubeletConfig
사용자 정의 리소스(CR)를 생성하거나 수정합니다.
머신 구성을 변경하면 MCO(Machine Config Operator)가 변경 사항을 적용하기 위해 해당 노드를 자동으로 재부팅합니다.
머신 구성 변경사항이 적용된 후 노드가 자동 재부팅되지 않게 하려면 해당 머신 구성 풀에서 spec.paused
필드를 true
로 설정하여 자동 부팅 프로세스를 일시중지해야 합니다. 일시 정지되면 spec.paused
필드를 false
로 설정하고 노드가 새 구성으로 재부팅될 때까지 머신 구성 변경 사항이 적용되지 않습니다.
CA 인증서 교체가 발생할 때 풀이 일시 중지되지 않았는지 확인합니다. MCP가 일시 중지되면 MCO는 새로 순환된 인증서를 해당 노드로 푸시할 수 없습니다. 이로 인해 클러스터의 성능이 저하되고 oc debug
,
,oc
logsoc exec
, oc attach
를 포함하여 여러 oc 명령에서 오류가 발생합니다. 인증서가 순환될 때 MCP가 일시 중지되면 OpenShift Container Platform 웹 콘솔의 경고 UI에 알림이 표시됩니다.
다음 수정 사항에서는 노드 재부팅이 트리거되지 않습니다.
MCO가 다음 변경 사항을 감지하면 노드를 드레이닝하거나 재부팅하지 않고 업데이트를 적용합니다.
-
머신 구성의
spec.config.passwd.users.sshAuthorizedKeys
매개변수에서 SSH 키 변경 -
openshift-config
네임 스페이스에서 글로벌 풀 시크릿 또는 풀 시크릿 관련 변경 사항 -
Kubernetes API Server Operator의
/etc/kubernetes/kubelet-ca.crt
인증 기관(CA) 자동 교체
-
머신 구성의
MCO가ICSP(
ImageContentSourcePolicy
) 오브젝트 추가 또는 편집과 같은/etc/containers/registries.conf
파일의 변경 사항을 감지하면 해당 노드를 비우고 변경 사항을 적용한 후 노드를 분리합니다. 노드 드레이닝은 다음과 같은 변경에 대해 발생하지 않습니다.-
각 미러에 대해 설정된
pull-from-mirror = "digest-only"
매개변수를 사용하여 레지스트리를 추가합니다. -
레지스트리에 설정된
pull-from-mirror = "digest-only"
매개변수를 사용하여 미러를 추가합니다. -
unqualified-search-registries
목록에 항목이 추가되었습니다.
-
각 미러에 대해 설정된
노드의 구성이 현재 적용된 머신 구성에서 지정하는 것과 완전히 일치하지 않는 경우가 있을 수 있습니다. 이 상태를 구성 드리프트 라고 합니다. MCD(Machine Config Daemon)는 노드가 구성 드리프트가 있는지 정기적으로 확인합니다. MCD가 구성 드리프트를 감지하면 MCO는 관리자가 노드 구성을 수정할 때까지 노드의 성능이 저하된
노드를 표시합니다. 성능이 저하된 노드는 온라인 상태이지만 업데이트할 수 없습니다.
추가 리소스
- 구성 드리프트 감지에 대한 자세한 내용은 구성 드리프트 탐지 이해를 참조하십시오.
- Machine Config Operator가 머신 구성을 변경한 후 컨트롤 플레인 머신이 재부팅되지 않도록 하는 방법에 대한 자세한 내용은 Disabling Machine Config Operator from automatically reboot .