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-example1 - 1
- 本例使用
qos-example命名空间。
输出示例
namespace/qos-example created创建
Pod资源:创建定义
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:openshift1 resources: limits: memory: "200Mi"2 cpu: "1"3 requests: memory: "200Mi"4 cpu: "1"5 securityContext: allowPrivilegeEscalation: false capabilities: drop: [ALL]运行以下命令来创建
Pod资源:$ oc apply -f qos-example.yaml --namespace=qos-example输出示例
pod/qos-demo created
验证
运行以下命令,查看 pod 的
qosClass值:$ oc get pod qos-demo --namespace=qos-example --output=yaml | grep qosClass输出示例
qosClass: Guaranteed