16.2. 创建具有保证 QoS 类的 pod


您可以创建一个 pod,其服务质量(QoS)类为 Guaranteed,用于高性能工作负载。使用 Guaranteed 类的 QoS 类配置 pod 可确保 pod 具有对指定 CPU 和内存资源的优先级访问权限。

要创建带有 Guaranteed 类 QoS 类的 pod,您必须应用以下规格:

  • 为 pod 中每个容器的内存限值和内存请求字段设置相同的值。
  • 为 pod 中每个容器的 CPU 限制和 CPU 请求字段设置相同的值。

通常,带有 Guaranteed 类 QoS 类的 pod 不会从节点中驱除。一个例外是,在由超过保留资源的系统守护进程导致的资源争用过程中。在这种情况下,kubelet 可能会驱除 pod 以保持节点稳定性,从最低优先级 pod 开始。

先决条件

  • 使用具有 cluster-admin 角色的用户访问集群
  • OpenShift CLI (oc)

流程

  1. 运行以下命令,为 pod 创建命名空间:

    $ oc create namespace qos-example 
    1
    Copy to Clipboard Toggle word wrap
    1
    本例使用 qos-example 命名空间。

    输出示例

    namespace/qos-example created
    Copy to Clipboard Toggle word wrap

  2. 创建 Pod 资源:

    1. 创建定义 Pod 资源的 YAML 文件:

      qos-example.yaml 文件示例

      apiVersion: v1
      kind: Pod
      metadata:
        name: qos-demo
        namespace: qos-example
      spec:
        securityContext:
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
        containers:
        - name: qos-demo-ctr
          image: quay.io/openshifttest/hello-openshift:openshift 
      1
      
          resources:
            limits:
              memory: "200Mi" 
      2
      
              cpu: "1" 
      3
      
            requests:
              memory: "200Mi" 
      4
      
              cpu: "1" 
      5
      
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop: [ALL]
      Copy to Clipboard Toggle word wrap

      1
      本例使用公共 hello-openshift 镜像。
      2
      将内存限值设为 200 MB。
      3
      将 CPU 限制设置为 1 个 CPU。
      4
      将内存请求设置为 200 MB。
      5
      将 CPU 请求设置为 1 个 CPU。
      注意

      如果您为容器指定了内存限值,但没有指定内存请求,OpenShift Container Platform 会自动分配与限制匹配的内存请求。同样,如果您为容器指定 CPU 限值,但没有指定 CPU 请求,OpenShift Container Platform 会自动分配与限制匹配的 CPU 请求。

    2. 运行以下命令来创建 Pod 资源:

      $ oc apply -f qos-example.yaml --namespace=qos-example
      Copy to Clipboard Toggle word wrap

      输出示例

      pod/qos-demo created
      Copy to Clipboard Toggle word wrap

验证

  • 运行以下命令,查看 pod 的 qosClass 值:

    $ oc get pod qos-demo --namespace=qos-example --output=yaml | grep qosClass
    Copy to Clipboard Toggle word wrap

    输出示例

        qosClass: Guaranteed
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat