5.2.3.2. HyperConverged オブジェクトノード配置ルールの例
OpenShift Virtualization がそのコンポーネントをデプロイするノードを指定するには、OpenShift Virtualization のインストール時に作成する HyperConverged カスタムリソース (CR) ファイルの nodePlacement オブジェクトを編集します。
nodeSelector ルールを使用した HyperConverged オブジェクトの例
apiVersion: hco.kubevirt.io/v1beta1
kind: HyperConverged
metadata:
name: kubevirt-hyperconverged
namespace: openshift-cnv
spec:
infra:
nodePlacement:
nodeSelector:
example.io/example-infra-key: example-infra-value
workloads:
nodePlacement:
nodeSelector:
example.io/example-workloads-key: example-workloads-value
-
インフラストラクチャーリソースは、
example.io/example-infra-key = example-infra-valueというラベルの付いたノードに配置されます。 -
ワークロードは、
example.io/example-workloads-key = example-workloads-valueというラベルの付いたノードに配置されます。
affinity ルールを使用した HyperConverged オブジェクトの例
apiVersion: hco.kubevirt.io/v1beta1
kind: HyperConverged
metadata:
name: kubevirt-hyperconverged
namespace: openshift-cnv
spec:
infra:
nodePlacement:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: example.io/example-infra-key
operator: In
values:
- example-infra-value
workloads:
nodePlacement:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: example.io/example-workloads-key
operator: In
values:
- example-workloads-value
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
preference:
matchExpressions:
- key: example.io/num-cpus
operator: Gt
values:
- 8
-
インフラストラクチャーリソースは、
example.io/example-infra-key = example-valueというラベルの付いたノードに配置されます。 -
ワークロードは、
example.io/example-workloads-key = example-workloads-valueというラベルの付いたノードに配置されます。 - ワークロード用には 9 つ以上の CPU を持つノードが優先されますが、それらが利用可能ではない場合も、Pod は依然としてスケジュールされます。
tolerations ルールを備えた HyperConverged オブジェクトの例
apiVersion: hco.kubevirt.io/v1beta1
kind: HyperConverged
metadata:
name: kubevirt-hyperconverged
namespace: openshift-cnv
spec:
workloads:
nodePlacement:
tolerations:
- key: "key"
operator: "Equal"
value: "virtualization"
effect: "NoSchedule"
OpenShift Virtualization コンポーネント用に予約されているノードには、key = virtualization:NoSchedule taint のラベルが付けられています。予約済みノードには、一致する toleration を持つ Pod のみがスケジュールされます。