在 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 编排工具协同工作。
当您将 Machine Config Operator 用作 GitOps 工作流的一部分时,以下顺序可能会导致次优性能
Argo CD 在提交包含应用程序资源的 Git 存储库后启动自动同步作业。
如果 Argo CD 在同步操作过程中注意到新的或更新的机器配置,MCO 会获取对机器配置的更改并开始重新启动节点以应用更改。
如果集群中重新启动的节点包含 Argo CD 应用程序控制器,则应用程序控制器将终止,并且应用程序同步将中止。
由于 MCO 按顺序重新启动节点,并且 Argo CD 工作负载可以在每次重新启动时重新调度,因此同步完成可能需要一些时间。这会导致未定义的行为,直到 MCO 重新启动同步中受机器配置影响的所有节点。