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的节点上。 - 对于工作负载,最好使用八个以上 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 污点标记。只有具有匹配容限的 pod 才会调度到保留节点上。