搜索

7.2. 创建 RuntimeClass 对象来封装调度机制

download PDF

使用 RuntimeClass 对象简化了调度机制的使用,如污点和容限 ; 您可以部署一个运行时类来封装您的污点和容限,然后将其应用到 pod,再将它们调度到适当的节点。在支持多个操作系统变体的集群中,还需要创建运行时类。

流程

  1. 创建 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' 标签。
    3
    指定要在 pod 附加的容限(不包括重复),在准入过程中使用此运行时类运行。这将合并 pod 和运行时类容许的节点集合。
  2. 创建 RuntimeClass 对象:

    $ oc create -f <file-name>.yaml

    例如:

    $ oc create -f runtime-class.yaml
  3. RuntimeClass 对象应用到您的 pod,以确保其被调度到适当的操作系统变体:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-windows-pod
    spec:
      runtimeClassName: windows2019 1
    # ...
    1
    指定管理 pod 调度的运行时类。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.