4.3.3. ノードアフィニティーの preferred (優先) ルールの設定
優先 ルールを使用すると、一致するノードが利用できない場合に、ワークロードアプリケーションが確実に実行されるように、Pod を別のノードにスケジュールするようにスケジューラーに指示できます。
優先ルールについては、スケジューラーはそのルールを適用しようと試みますが、適用を保証するものではありません。
以下の手順は、ノードと、スケジューラーがそのノード上に配置しようとする Pod を作成するシンプルな設定を示しています。
手順
特定のラベルの付いた Pod を作成します。
以下の内容を含む YAML ファイルを作成します。
注記アフィニティーをスケジュールされた Pod に直接追加することはできません。
apiVersion: v1 kind: Pod metadata: name: s1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: preference: matchExpressions: - key: e2e-az-name values: - e2e-az3 operator: In #...各項目の説明:
spec.affinity.nodeAffinity- ノードアフィニティーを設定するスタンザを指定します。
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution優先 ルールを指定します。重みと以下の
preference.matchExpressionsパラメーターを設定します。新規 Pod を編集したノードにスケジュールする必要がある場合、ノードのラベルと同じkeyおよびvaluesパラメーターを使用します。weight- ノードの重みを数字の 1-100 で指定します。最も高い重みを持つノードが優先されます。
key- ルールを適用するために一致させる必要があるキー/値ペア (ラベル) のキーを指定します。
operator-
ノードのラベルと
Pod仕様のmatchExpressionパラメーターの値のセットの間の関係を指定します。この値は、In、NotIn、Exists、またはDoesNotExist、Lt、またはGtにすることができます。ノードのアンチアフィニティー に関する明示的な概念はありませんが、NotInまたはDoesNotExist演算子を使用すると、動作が複製されます。 values- ルールを適用するために一致させる必要があるキー/値ペア (ラベル) の値を指定します。
Pod を作成します。
$ oc create -f <file-name>.yaml