5.9. インフラストラクチャーノードでの GitOps コントロールプレーンワークロードの実行
インフラストラクチャーノードを使用して、サブスクリプション数に対する追加の請求コストを防ぐことができます。
OpenShift Container Platform を使用して、Red Hat OpenShift GitOps Operator によってインストールされたインフラストラクチャーノードで特定のワークロードを実行できます。これは、デフォルトで Red Hat OpenShift GitOps Operator によって openshift-gitops
namespace にインストールされるワークロードで設定され、その namespace のデフォルトの Argo CD インスタンスが含まれます。
ユーザー namespace にインストールされたその他の Argo CD インスタンスは、インフラストラクチャーノードで実行する資格がありません。
5.9.1. GitOps ワークロードのインフラストラクチャーノードへの移行
Red Hat OpenShift GitOps によってインストールされたデフォルトのワークロードをインフラストラクチャーノードに移行できます。移動できるワークロードは以下のとおりです。
-
kam deployment
-
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=
GitOpsService
カスタムリソース (CR) を編集して、インフラストラクチャーノードセレクターを追加します。$ oc edit gitopsservice -n openshift-gitops
GitOpsService
CR ファイルで、runOnInfra
フィールドをspec
セクションに追加し、true
に設定します。このフィールドは、openshift-gitops
namespace のワークロードをインフラストラクチャーノードに移動します。apiVersion: pipelines.openshift.io/v1alpha1 kind: GitopsService metadata: name: cluster spec: runOnInfra: true
オプション: テイントを適用し、インフラストラクチャーノードでワークロードを分離し、他のワークロードがそれらのノードでスケジュールされないようにします。
$ oc adm taint nodes -l node-role.kubernetes.io/infra infra=reserved:NoSchedule infra=reserved:NoExecute
オプション: テイントをノードに適用する場合、容認を
GitOpsService
CR に追加できます。spec: runOnInfra: true tolerations: - effect: NoSchedule key: infra value: reserved - effect: NoExecute key: infra value: reserved
ワークロードが Red Hat OpenShift GitOps namespace のインフラストラクチャーノードでスケジュールされていることを確認するには、Pod 名のいずれかをクリックし、ノードセレクター− および 容認 が追加されていることを確認します。
デフォルトの Argo CD CR の手動で追加された ノードセレクター および 容認 は、GitOpsService
CR のトグルおよび容認によって上書きされます。