7.3. 创建 RuntimeClass 对象来封装调度机制
使用 RuntimeClass 对象简化了调度机制的使用,如污点和容限 ; 您可以部署一个运行时类来封装您的污点和容限,然后将其应用到 pod,再将它们调度到适当的节点。在支持多个操作系统变体的集群中,还需要创建运行时类。
流程
创建
RuntimeClass对象 YAML 文件。例如,runtime-class.yaml:apiVersion: node.k8s.io/v1 kind: RuntimeClass metadata: name: windows20191 handler: 'runhcs-wcow-process' scheduling: nodeSelector:2 kubernetes.io/os: 'windows' kubernetes.io/arch: 'amd64' node.kubernetes.io/windows-build: '10.0.17763' tolerations:3 - effect: NoSchedule key: os operator: Equal value: "windows" - effect: NoSchedule key: os operator: Equal value: "Windows"- 1
- 指定
RuntimeClass对象名称,该名称在您要由此运行时类管理的 pod 中定义。 - 2
- 指定支持这个运行时类的节点必须存在的标签。使用此运行时类的 Pod 只能调度到与此选择器匹配的节点。运行时类的节点选择器与 pod 的现有节点选择器合并。任何冲突都会阻止 pod 调度到节点。
-
对于 Windows 2019,指定
node.kubernetes.io/windows-build: '10.0.17763'标签。 -
对于 Windows 2022,指定
node.kubernetes.io/windows-build: '10.0.20348'标签。
-
对于 Windows 2019,指定
- 3
- 指定要在 pod 附加的容限(不包括重复),在准入过程中使用此运行时类运行。这将合并 pod 和运行时类容许的节点集合。
创建
RuntimeClass对象:$ oc create -f <file-name>.yaml例如:
$ oc create -f runtime-class.yaml将
RuntimeClass对象应用到您的 pod,以确保其被调度到适当的操作系统变体:apiVersion: v1 kind: Pod metadata: name: my-windows-pod spec: runtimeClassName: windows20191 # ...- 1
- 指定管理 pod 调度的运行时类。