4.17. Red Hat OpenShift GitOps의 문제 해결
Red Hat OpenShift GitOps로 작업할 때 성능, 모니터링, 구성 및 기타 측면과 관련된 문제가 발생할 수 있습니다. 이 섹션에서는 이러한 문제를 이해하고 해결할 수 있는 솔루션을 제공하는 데 도움이 됩니다.
4.17.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 오케스트레이션 도구가 제대로 작동하도록 만드는 방법을 보여줍니다.
4.17.1.1. 해결책: 머신 구성 및 Argo CD의 향상된 성능
GitOps 워크플로우의 일부로 Machine Config Operator를 사용하는 경우 다음 순서에서 하위 최적화 성능을 생성할 수 있습니다.
- Argo CD는 애플리케이션 리소스가 포함된 Git 리포지토리에 커밋한 후 자동화된 동기화 작업을 시작합니다.
- 동기화 작업이 진행되는 동안 Argo CD가 새로운 또는 업데이트된 머신 구성을 알리는 경우 MCO는 머신 구성에 대한 변경 사항을 선택하고 노드 재부팅을 시작하여 변경 사항을 적용합니다.
- 클러스터의 재부팅 노드에 Argo CD 애플리케이션 컨트롤러가 포함된 경우 애플리케이션 컨트롤러가 종료되고 애플리케이션 동기화가 중단됩니다.
MCO는 노드를 순차적으로 재부팅하고 재부팅할 때마다 Argo CD 워크로드를 다시 예약할 수 있으므로 동기화를 완료하는 데 시간이 다소 걸릴 수 있습니다. 이로 인해 MCO가 동기화 내에서 머신 구성의 영향을 받는 모든 노드를 재부팅할 때까지 정의되지 않은 동작이 발생합니다.