5.16.2.2. 優先ノードアフィニティールールを使用して Operator プロジェクトのマルチアーキテクチャーコンピュートマシンのサポートを設定する
Operator のパフォーマンスが特定のアーキテクチャーで向上する場合は、優先ノードアフィニティールールを設定して、指定されたアーキテクチャーのノードに Pod をスケジュールできます。
前提条件
- Operator SDK 1.36.1 で作成または保守されている Operator プロジェクト。
- Operator がサポートするプラットフォームを定義するマニフェストリスト。
- Operator プロジェクトには、必要なノードアフィニティールールが設定されています。
手順
Operator プロジェクトで、Pod 仕様および Pod テンプレート仕様オブジェクトを定義する Kubernetes マニフェストを検索します。
Kubernetes マニフェストの例
apiVersion: v1 kind: Pod metadata: name: s1 spec: containers: - name: <container_name> image: docker.io/<org>/<image_name>次の例のように、Pod 仕様および Pod テンプレート仕様オブジェクトを定義する Kubernetes マニフェストで、Operator の優先ノードアフィニティールールを設定します。
Kubernetes マニフェストの例
apiVersion: v1 kind: Pod metadata: name: s1 spec: containers: - name: <container_name> image: docker.io/<org>/<image_name> affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution:1 - preference: matchExpressions:2 - key: kubernetes.io/arch3 operator: In4 values: - amd64 - arm64 weight: 905 - 1
- preferred (優先) ルールを定義します。
- 2
nodeSelectorTermsに関連付けられた複数のmatchExpressionsを指定する場合、すべてのmatchExpressionsが満たされている場合にのみ Pod をノードにスケジュールすることができます。- 3
- マニフェストリストで定義されているアーキテクチャーを指定します。
- 4
Operatorを指定します。演算子はIn、NotIn、Exists、またはDoesNotExistにすることができます。たとえば、ノード内にラベルが存在することを要求するには、Inの値を使用します。- 5
- ノードの重みを指定します。有効な値は
1-100です。最も高い重みを持つノードが優先されます。