24.8. Scenario 示例
一个 Operator:
- 具有内存容量为 10Gi 的节点。
- 希望为系统守护进程(如内核、节点和其他守护进程)保留 10% 内存容量。
- 希望以 95% 内存利用率驱除 pod,以减少系统的 OOM 出现和推移。
此配置中隐式理解 system-reserved
应该包括驱除阈值所涵盖的内存量。
要达到这个容量,一些 pod 都使用它的请求,或者系统正在使用 1Gi。
如果节点有 10 Gi 容量,且您想要为系统守护进程保留 system-reserved
设置的 10%,请执行以下计算:
capacity = 10 Gi system-reserved = 10 Gi * .1 = 1 Gi
可分配的资源量成为:
allocatable = capacity - system-reserved = 9 Gi
这意味着调度程序将调度为该节点请求 9 Gi 内存的 pod。
如果要启用驱除,以便在节点发现可用内存低于 10% 30 秒时,或低于 5% 容量时立即触发驱除,您需要调度程序将可分配内存评估为 8Gi。因此,请确定您的系统保留涵盖了您的驱除阈值。
capacity = 10 Gi eviction-threshold = 10 Gi * .1 = 1 Gi system-reserved = (10Gi * .1) + eviction-threshold = 2 Gi allocatable = capacity - system-reserved = 8 Gi
将以下内容添加到适当的节点 配置映射 :
kubeletArguments: system-reserved: - "memory=2Gi" eviction-hard: - "memory.available<.5Gi" eviction-soft: - "memory.available<1Gi" eviction-soft-grace-period: - "memory.available=30s"
此配置可确保调度程序不会将 pod 放置到节点上,并立即引发内存压力并触发驱除。此配置假定这些 pod 使用小于配置的请求。