【Kubernetes】pod的QoS

QoS,全称Quality of Service,中文称为服务质量Kubernetes依赖这个来确认当节点不够资源时,哪些pod优先被驱逐。当节点出现资源压力而触发驱逐动作时,只有超过了配置的request的资源可能会被驱逐。

Qos分为以下3种:

  • Guaranteed
    • 这些pod最后被驱逐。
    • 这些pod能通过cpu管理策略(CPU management policy)中的静态(static)策略来使用独占cpu。
    • 标准:
      • pod所有容器必须有memory limit和request配置
      • 所有容器的memory limit必须等于memory request
      • 所有容器必须有cpu limit和request配置
      • 所有容器的cpu limit必须等于cpu request
  • Burstable
    • 这些pod优先于Guaranteed被驱逐。
    • 标准:
      • 不满足Guaranteed的标准
      • 至少一个容器有memory或cpu的request或limit配置。
  • BestEffort
    • 这些pod最优先被驱逐。
    • 无限制是有node节点的memory和cpu资源。
    • 标准;
      • 不满足GuaranteedBurstable的标准。
      • 所有容器都没有配置memory和cpu的request和limit。

Memory QoS使用cgroup v2的内存管理控制器(memory controller),v1.22版本中处于Alpha阶段并且默认为false不开启。这里使用cgroup v2的内存管理控制器的memory.min来处理容器中的memory request的值,使用memory.high来处理容器中的memory limit的值。

(•̀ᴗ•́)و ̑̑

Share