Menu Close

5.12. インフラストラクチャーノードでの GitOps コントロールプレーンワークロードの実行

インフラストラクチャーノードを使用して、2 つの主要な目的でインフラストラクチャーワークロードを分離することができます。

  • サブスクリプション数に対する請求コストの発生を防ぎます。
  • 個別メンテナンスと管理

5.12.1. インフラストラクチャーノードの追加

手順

  1. 以下のコマンドを実行して、既存のノードにインフラストラクチャーのラベルを付けます。

    $ oc label node <node-name> node-role.kubernetes.io/infra=
  2. GitOpsService カスタムリソース(CR)を編集して、インフラストラクチャーノードセレクターを追加します。

    $ oc edit gitopsservice -n openshift-gitops
  3. GitOpsService CR ファイルで runOnInfra トグルを spec セクションに追加し、これを true に設定します。

    apiVersion: pipelines.openshift.io/v1alpha1
    kind: GitopsService
    metadata:
      name: cluster
    spec:
      runOnInfra: true
  4. オプション: テイントを適用し、インフラストラクチャーノードでワークロードを分離し、他のワークロードがそれらのノードでスケジュールされないようにします。

    $ oc adm taint nodes -l node-role.kubernetes.io/infra
    infra=reserved:NoSchedule infra=reserved:NoExecute
  5. オプション: テイントをノードに適用する場合、容認を 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 のトグルおよび容認によって上書きされます。