15.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-example1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 本例使用
qos-example命名空间。
输出示例
namespace/qos-example created
namespace/qos-example createdCopy 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-exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
pod/qos-demo created
pod/qos-demo createdCopy 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 qosClassCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
qosClass: Guaranteed
qosClass: GuaranteedCopy to Clipboard Copied! Toggle word wrap Toggle overflow