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
)
流程
运行以下命令,为 pod 创建命名空间:
oc create namespace qos-example
$ oc create namespace qos-example
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 本例使用
qos-example
命名空间。
输出示例
namespace/qos-example created
namespace/qos-example created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
Pod
资源:创建定义
Pod
资源的 YAML 文件:qos-example.yaml
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
Pod
资源:oc apply -f qos-example.yaml --namespace=qos-example
$ oc apply -f qos-example.yaml --namespace=qos-example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
pod/qos-demo created
pod/qos-demo created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,查看 pod 的
qosClass
值:oc get pod qos-demo --namespace=qos-example --output=yaml | grep qosClass
$ oc get pod qos-demo --namespace=qos-example --output=yaml | grep qosClass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
qosClass: Guaranteed
qosClass: Guaranteed
Copy to Clipboard Copied! Toggle word wrap Toggle overflow