1장. 문제: Argo CD 동기화 중에 머신 구성과 자동 재부팅
Red Hat OpenShift Container Platform에서 노드는 Red Hat OpenShift Machine Config Operator ( MCO)를 통해 자동으로 업데이트됩니다. MCO(Machine Config Operator)는 노드의 전체 라이프 사이클을 관리하는 데 클러스터에서 사용하는 사용자 정의 리소스입니다.
클러스터에서 MCO 리소스가 생성되거나 업데이트되면 MCO가 업데이트를 선택하고 선택한 노드에 필요한 변경 사항을 수행한 다음 해당 노드를 차단, 드레이닝, 재부팅하여 노드를 정상적으로 다시 시작합니다. 커널에서 kubelet까지 모든 것을 처리합니다.
그러나 MCO와 GitOps 워크플로 간의 상호 작용으로 인해 주요 성능 문제 및 기타 바람직하지 않은 동작이 발생할 수 있습니다. 이 섹션에서는 MCO와 Argo CD GitOps 오케스트레이션 도구가 함께 작동하도록 하는 방법을 보여줍니다.
1.1. 솔루션: 머신 구성 및 Argo CD의 성능 강화
GitOps 워크플로우의 일부로 Machine Config Operator를 사용하는 경우 다음 시퀀스에서 최적의 성능을 생성할 수 있습니다.
- Argo CD는 애플리케이션 리소스가 포함된 Git 리포지토리에 커밋한 후 자동화된 동기화 작업을 시작합니다.
- 동기화 작업이 진행되는 동안 Argo CD에 새 머신 구성을 알 수 있는 경우 MCO는 머신 구성에 대한 변경 사항을 선택하고 노드를 재부팅하여 변경 사항을 적용하기 시작합니다.
- 클러스터의 재부팅 노드에 Argo CD 애플리케이션 컨트롤러가 포함된 경우 애플리케이션 컨트롤러가 종료되고 애플리케이션 동기화가 중단됩니다.
MCO가 노드를 순차적으로 재부팅하고 각 재부팅 시 Argo CD 워크로드를 다시 예약할 수 있으므로 동기화를 완료하는 데 약간의 시간이 걸릴 수 있습니다. 이로 인해 MCO가 동기화 내의 머신 구성의 영향을 받는 모든 노드를 재부팅할 때까지 정의되지 않은 동작이 발생합니다.