第1章 インフラストラクチャーノードでの GitOps コントロールプレーンワークロードの実行
インフラストラクチャーノードを使用して、2 つの主要な目的でインフラストラクチャーワークロードを分離できます。
- サブスクリプションの数に関連する請求コストを防ぐ目的
- メンテナンスと管理を分離させる目的
OpenShift Container Platform を使用して、インフラストラクチャーノードで GitOps コントロールプレーンのワークロードを実行できます。これには、デフォルトで openshift-gitops namespace 内の Red Hat OpenShift GitOps Operator によって作成された Operator Pod とコントロールプレーンワークロードが含まれます (この名前空間内のデフォルトの Argo CD インスタンスも含まれます)。
GitOps コントロールプレーンワークロードを使用すると、クラスター内に複数の分離された Argo CD インスタンスを作成することで、インフラストラクチャーワークロードを安全かつ宣言的に分離でき、Argo CD インスタンスの機能を完全に制御できます。さらに、これらの Argo CD インスタンスを複数の開発者名前空間にわたって宣言的に管理できます。テイントを使用すると、インフラストラクチャーコンポーネントのみがこれらのノードで実行されるようにできます。
ユーザー namespace にインストールされたその他の Argo CD インスタンスは、インフラストラクチャーノードで実行する資格がありません。
1.1. GitOps コントロールプレーンワークロードのインフラストラクチャーノードへの移行 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift GitOps によってインストールされた GitOps コントロールプレーンワークロードをインフラストラクチャーノードに移動できます。移動できるコントロールプレーンのワークロードは次のとおりです。
-
cluster deployment(バックエンドサービス) -
openshift-gitops-applicationset-controller deployment -
openshift-gitops-dex-server deployment -
openshift-gitops-redis deployment -
openshift-gitops-redis-ha-haproxy deployment -
openshift-gitops-repo-sever deployment -
openshift-gitops-server deployment -
openshift-gitops-application-controller statefulset -
openshift-gitops-redis-server statefulset
手順
以下のコマンドを実行して、既存のノードにインフラストラクチャーのラベルを付けます。
oc label node <node-name> node-role.kubernetes.io/infra=
$ oc label node <node-name> node-role.kubernetes.io/infra=Copy to Clipboard Copied! Toggle word wrap Toggle overflow GitOpsServiceカスタムリソース (CR) を編集して、インフラストラクチャーノードセレクターを追加します。oc edit gitopsservice -n openshift-gitops
$ oc edit gitopsservice -n openshift-gitopsCopy to Clipboard Copied! Toggle word wrap Toggle overflow GitOpsServiceCR ファイルで、runOnInfraフィールドをspecセクションに追加し、trueに設定します。このフィールドは、openshift-gitopsnamespace のコントロールプレーンワークロードをインフラストラクチャーノードに移動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: テイントを適用し、インフラストラクチャーノードでワークロードを分離し、他のワークロードがそれらのノードでスケジュールされないようにします。
oc adm taint nodes -l node-role.kubernetes.io/infra
$ oc adm taint nodes -l node-role.kubernetes.io/infra infra=reserved:NoSchedule infra=reserved:NoExecuteCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: テイントをノードに適用する場合は、容認を
GitOpsServiceCR に追加できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ワークロードが Red Hat OpenShift GitOps namespace のインフラストラクチャーノードでスケジュールされていることを確認するには、Pod 名のいずれかをクリックし、ノードセレクター および 容認 が追加されていることを確認します。
デフォルトの Argo CD CR の手動で追加された ノードセレクター および 容認 は、GitOpsService CR のトグルおよび容認によって上書きされます。