Last Updated on 2024-05-30 by likun.gong

Pod QoS是什么

QoS:Quality of Service,服务质量的意思。K8S Pod QoS 主要是对 Pod 的资源进行管理和限制的一种机制。

QoS类型:

  1. Guaranteed:最高优先级
    Pod 中每个容器的内存和 CPU 的 request 和 limit 是一致的,不同容器的配置值是可以不相等
  2. Burstable:可以短期使用更多的资源
    – 设置了内存和 CPU 的 request,但是没有配置 limit
    – 或者设置了 request 和 limit,但是两者不相等
  3. BestEffort:最低优先级
    没有设置任何 request 和 limit

如果 Pod 中只配置了 limit,没有配置 request,那么 K8S 会复制 limit 的值提供给 requests 。

Note:

If you specify a limit for a resource, but do not specify any request, and no admission-time mechanism has applied a default request for that resource, then Kubernetes copies the limit you specified and uses it as the requested value for the resource.

如何查看 Pod 的 QoS:

kubectl describe pod <pod_name> -n <namespace>

输出内容的 Status 中,会有对应 QoS Class

为什么需要QoS

  1. 确保高优先级的应用优先拥有资源,在发生 Eviction 时,低优先级的会被优先从节点上驱逐
    高优先级的应用,可以配合专有节点池+最高级别的QoS,确保服务使用资源不被其他服务抢用

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注