第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 のパフォーマンスを向上させる
GitOps ワークフローの一部として Machine Config Operator を使用している場合、次のシーケンスではパフォーマンスが最適化されない可能性があります。
- Argo CD は、アプリケーションリソースを含む Git リポジトリーにコミットした後、自動同期ジョブを開始します。
- 同期操作の進行中に Argo CD が新しいマシン設定または更新されたマシン設定を認識すると、MCO はマシン設定への変更を取得し、ノードの再起動を開始して変更を適用します。
- クラスター内の再起動ノードに Argo CD アプリケーションコントローラーが含まれている場合は、アプリケーションコントローラーが終了し、アプリケーションの同期が中止します。
MCO はノードを順番に再起動し、再起動のたびに Argo CD ワークロードを再スケジュールできるため、同期が完了するまでに時間がかかる場合があります。これにより、MCO が同期内のマシン設定の影響を受けるすべてのノードを再起動するまで、未定義の動作が発生します。