第 1 章 问题:在 Argo CD 与机器配置同步过程中自动重启
在 Red Hat OpenShift Container Platform 中,节点通过 Red Hat OpenShift Machine Config Operator (MCO) 自动更新。Machine Config Operator (MCO) 是一个自定义资源,供集群用来管理其节点的完整生命周期。
当在集群中创建或更新 MCO 资源时,MCO 会选择更新,对所选节点执行必要的更改,并通过封锁、排空和重新引导这些节点来安全地重启节点。它会处理从内核到 kubelet 的所有活动。
但是,MCO 和 GitOps 工作流之间的交互可能会带来重大性能问题和其他不必要的行为。本节介绍如何使 MCO 和 Argo CD GitOps 编配工具正常工作。
1.1. 解决方案 :提高机器配置和 Argo CD 的性能
当您将 Machine Config Operator 用作 GitOps 工作流的一部分时,以下序列会生成子优化的性能:
- Argo CD 在提交包含应用程序资源的 Git 存储库后启动自动同步任务。
- 如果 Argo CD 在同步操作过程中发现新的或更新的机器配置,MCO 会获取机器配置的更改并开始重启节点以应用更改。
- 如果集群中的重新引导节点包含 Argo CD 应用程序控制器,应用程序控制器会终止,应用程序同步将中止。
当 MCO 按顺序重启节点时,可以在每次重启时重新调度 Argo CD 工作负载,可能需要一些时间才能完成同步。这会导致未定义的行为,直到 MCO 重启受同步中机器配置影响的所有节点。