3.4. Fuse Online Pod の設定

Fuse Online カスタムリソースでノードのアフィニティーおよび許容オプションを設定して、Fuse Online インフラストラクチャーコンポーネントおよびインテグレーション Pod を OpenShift クラスター内のノードに配置するように設定できます。nodeAffinity オプションを使用すると、配置先のノードのグループに対して Fuse Online Pod のアフィニティーを指定できます。tolerations オプションを使用すると、Fuse Online Pod が実行されるノードを制御し、他のワークロードがそれらのノードを使用しないようにすることができます。

これらのオプションは、Fuse Online のインストール前または後に Fuse Online カスタムリソースを編集して設定します。

インテグレーションデプロイメントとは別に、インフラストラクチャーコンポーネントデプロイメントのノードアフィニティーまたは許容の設定を指定します。

  • infraScheduling - infraScheduling オプションを指定して、これらの Fuse Online インフラストラクチャーデプロイメントのノードのアフィニティーおよび許容を設定します。

    • syndesis-db
    • syndesis-meta
    • syndesis-prometheus
    • syndesis-ui

      注記: syndesis-operator デプロイメントは Fuse Online 管理コンポーネントであるため、ノードのアフィニティーまたは許容の変更による影響を受けません。

  • integrationScheduling - すべての Fuse Online インテグレーションデプロイメントのノードのアフィニティーおよび許容を設定するには、integrationScheduling オプションを指定します。

    注記: Fuse Online デプロイメントがインテグレーションデプロイメントかどうかを知るには、デプロイメント名を確認します。oc get pods コマンドを使用して、実行中のデプロイメントの一覧を表示できます。デプロイメント名に接頭辞 -i が含まれる場合、これはインテグレーションデプロイメントになります (例: i-my-integration)。

以下の手順では、oc patch コマンドを使用してカスタムリソースを編集する方法を説明します。この他にも、以下のトピックで説明されているような方法で、カスタムリソースを編集できます。

前提条件

  • オンサイトで OCP に Fuse Online がインストールされている必要があります。
  • oc クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている。

手順

  1. 以下の構文で oc patch コマンドを使用して 許容 (Toleration) を設定します。Fuse Online インフラストラクチャーコンポーネントのデプロイメントには infraScheduling を、Fuse Online インテグレーションのデプロイメントには integrationScheduling を指定します。

    oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling"|"infraScheduling":{"tolerations":[{"key":"_value1_","operator":"_value2_","effect":"_value3_"},{"key":"_value4_","operator":"_value5_","effect":"_value6_"}]}}}'

    たとえば、以下のコマンドは、Fuse Online インフラストラクチャーコンポーネントに許容を追加します。

    oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling":{"tolerations":[{"key":"tol_1","operator":"Equal","effect":"NoSchedule"},{"key":"tol_2","operator":"Equal","value":"value2","effect":"NoSchedule"}]}}}'
  2. 以下の構文で oc patch コマンドを使用して、ノードのアフィニティー を設定します。Fuse Online インフラストラクチャーコンポーネントのデプロイメントには infraScheduling を、Fuse Online インテグレーションのデプロイメントには integrationScheduling を指定します。

     oc patch syndesis/app --type=merge  -p '{"spec":{"infraScheduling"|"infraScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":_value1_,"preference":{"matchExpressions":[{"key":"_value1_","operator":"_value2_","values":["_value3_","_value4_"]}]}}]}}}'

    たとえば、以下のコマンドは nodeAffinity を Fuse Online インフラストラクチャーコンポーネントとインテグレーションの両方に設定します。

     oc patch syndesis/app --type=merge  -p '{"spec":{"infraScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":11,"preference":{"matchExpressions":[{"key":"_affinity","operator":"In","values":["foo","bar"]}]}}]}}},"integrationScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":22,"preference":{"matchExpressions":[{"key":"my_affinity2","operator":"In","values":["foo","bar"]}]}}]}}}}}'
  3. 設定を削除するには、以下のコマンド例のように、oc patch コマンドで remove オプションを使用します。

    • 以下のコマンド例は、Fuse Online インテグレーションの nodeAffinity から preferredDuringSchedulingIgnoredDuringExecution 設定を削除します。

      oc patch syndesis/app --type=json -p '[{"op": "remove", "path": "/spec/integrationScheduling/affinity/nodeAffinity/preferredDuringSchedulingIgnoredDuringExecution" }]'
    • 以下の例では、Fuse Online インフラストラクチャーコンポーネントから許容を削除します。

      oc patch syndesis/app --type=json -p '[{"op": "remove", "path": "/spec/infraScheduling/tolerations" }]'

その他のリソース

許容およびノードのアフィニティーに関する詳細は、OpenShift ドキュメントの Understanding node affinity および Controlling pod placement using node taints を参照してください。