7.2. 创建 RuntimeClass 对象来封装调度机制
使用 RuntimeClass
对象简化了调度机制的使用,如污点和容限 ; 您可以部署一个运行时类来封装您的污点和容限,然后将其应用到 pod,再将它们调度到适当的节点。在支持多个操作系统变体的集群中,还需要创建运行时类。
流程
创建
RuntimeClass
对象 YAML 文件。例如,runtime-class.yaml
:apiVersion: node.k8s.io/v1 kind: RuntimeClass metadata: name: windows2019 1 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: windows2019 1 # ...
- 1
- 指定管理 pod 调度的运行时类。