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
コマンドを使用してカスタムリソースを編集する方法を説明します。この他にも、以下のトピックで説明されているような方法で、カスタムリソースを編集できます。
- Fuse Online がすでにインストールされている場合は、Fuse Online の設定変更に関する一般的な手順 の手順にしたがって、カスタムリソースを開きます。
Fuse Online がインストールされていない場合は、OCP のバージョンに応じて、以下の手順にしたがってカスタムリソースを開きます。
- OCP 4.x の場合: Fuse Online インスタンスを OpenShift 4.x プロジェクトに追加
- OCP 3.11 の場合: Fuse Online をインストールする前にデフォルトのカスタムリソースファイルを編集
前提条件
- オンサイトで OCP に Fuse Online がインストールされている必要があります。
-
oc
クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている。
手順
以下の構文で
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"}]}}}'
以下の構文で
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"]}]}}]}}}}}'
設定を削除するには、以下のコマンド例のように、
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 を参照してください。