Kubernetes v1.36:基于内存QoS的分层内存保护

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

Kubernetes v1.36更新了内存QoS功能,采用cgroup v2内存控制器,提供内存预留、分层保护和可观察性指标。Guaranteed Pods使用memory.min进行硬保护,Burstable Pods使用memory.low进行软保护。新版本允许在节点有足够余量时选择性启用内存预留,提升了内存管理的灵活性和效率。

🎯

关键要点

  • Kubernetes v1.36更新了内存QoS功能,采用cgroup v2内存控制器。
  • 新增的功能包括选择性启用内存预留、分层保护和可观察性指标。
  • Guaranteed Pods使用memory.min进行硬保护,Burstable Pods使用memory.low进行软保护。
  • 新版本允许在节点有足够余量时选择性启用内存预留,提升了内存管理的灵活性和效率。
  • 内存预留策略分为TieredReservation和None,TieredReservation允许更灵活的内存管理。
  • kubelet提供了两个新的指标用于容量规划,分别是kubelet_memory_qos_node_memory_min_bytes和kubelet_memory_qos_node_memory_low_bytes。
  • 在内核版本低于5.9时,memory.high限流可能会触发内核死锁问题,v1.36会在启动时检查内核版本并记录警告。

延伸问答

Kubernetes v1.36的内存QoS功能有什么新特性?

Kubernetes v1.36更新了内存QoS功能,新增了选择性启用内存预留、分层保护和可观察性指标。

Guaranteed Pods和Burstable Pods在内存管理上有什么区别?

Guaranteed Pods使用memory.min进行硬保护,而Burstable Pods使用memory.low进行软保护。

如何在Kubernetes v1.36中启用内存QoS的分层保护?

可以通过在Kubelet配置中设置featureGates为MemoryQoS: true,并将memoryReservationPolicy设置为TieredReservation来启用分层保护。

Kubernetes v1.36中新增的可观察性指标有哪些?

新增的可观察性指标包括kubelet_memory_qos_node_memory_min_bytes和kubelet_memory_qos_node_memory_low_bytes。

在Kubernetes v1.36中,内存预留策略有什么变化?

内存预留策略分为TieredReservation和None,TieredReservation允许更灵活的内存管理,Burstable Pods的请求将映射到memory.low而不是memory.min。

Kubernetes v1.36如何处理内核版本低于5.9的情况?

在内核版本低于5.9时,v1.36会在启动时检查内核版本并记录警告,但功能仍然可以正常工作。

➡️

继续阅读