5.3.3.2. HyperConverged オブジェクトノード配置ルールの例
OpenShift Virtualization がそのコンポーネントをデプロイするノードを指定するには、OpenShift Virtualization のインストール時に作成する HyperConverged カスタムリソース (CR) ファイルの nodePlacement オブジェクトを編集します。
nodeSelector ルールを使用した HyperConverged オブジェクトの例:
apiVersion: hco.kubevirt.io/v1
kind: HyperConverged
metadata:
name: kubevirt-hyperconverged
namespace: openshift-cnv
spec:
deployment:
nodePlacements:
infra:
nodeSelector:
example.io/example-infra-key: example-infra-value
workload:
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というラベルの付いたノードに配置されます。
アフィニティー ルールを持つ ハイパーコンバージド オブジェクトの例:
apiVersion: hco.kubevirt.io/v1
kind: HyperConverged
metadata:
name: kubevirt-hyperconverged
namespace: openshift-cnv
spec:
deployment:
nodePlacements:
infra:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: example.io/example-infra-key
operator: In
values:
- example-infra-value
workload:
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 は依然としてスケジュールされます。
toleration ルールを持つ ハイパーコンバージド オブジェクトの例:
apiVersion: hco.kubevirt.io/v1
kind: HyperConverged
metadata:
name: kubevirt-hyperconverged
namespace: openshift-cnv
spec:
deployment:
nodePlacements:
workload:
tolerations:
- key: "key"
operator: "Equal"
value: "virtualization"
effect: "NoSchedule"
OpenShift Virtualization コンポーネント用に予約されているノードには、key = virtualization:NoSchedule taint のラベルが付けられています。予約済みノードには、一致する toleration を持つ Pod のみがスケジュールされます。
以下の Pod は、HyperConverged オブジェクトノードの配置ルールの影響を受けます。これらの Pod は、HyperConverged CR がデプロイされる際に作成されます。
-
cdi-apiserver -
cdi-deployment -
cdi-uploadproxy -
kubemacpool-cert-manager -
kubemacpool-mac-controller-manager -
kubevirt-apiserver-proxy -
kubevirt-console-plugin -
kubevirt-ipam-controller-manager -
kubevirt-migration-controller -
virt-api -
virt-controller -
virt-exportproxy -
virt-template-validator