K8S主机资源预留方案

k8e 有效配置主机的保留系统资源配置方法

node-capacity

这里有一个例子来说明节点可分配的计算。

  • 节点有32Gi的内存,16个CPU和100Gi的存储空间
  • –kube-reserved被设置为cpu=1,memory=2Gi,ephemeral-storage=1Gi
  • –system-reserved被设置为cpu=500m,memory=1Gi,ephemeral-storage=1Gi
  • –eviction-hard被设置为memory.available<500Mi,nodefs.available<10%

在这种情况下,“可分配 “将是14.5个CPU,28.5Gi的内存和88Gi的本地存储。调度器确保这个节点上所有pod的总内存请求不超过28.5Gi,存储不超过88Gi。只要跨pod的总内存使用量超过28.5Gi,或者总磁盘使用量超过88Gi,Kubelet就会驱逐pod 如果节点上的所有进程都尽可能多地消耗CPU,pod一起消耗的CPU不能超过14.5。

如果kube-reserved和/或system-reserved没有被强制执行,并且系统守护进程超过了它们的保留量,那么只要整个节点的内存使用量高于31.5Gi或者存储量大于90Gi,kubelet就会驱逐pod。

# vi /etc/systemd/system/k8e.service
k8e server --kubelet-arg "kube-reserved=cpu=1,memory=2Gi,ephemeral-storage=1Gi" \
--kubelet-arg "system-reserved=cpu=500m,memory=1Gi,ephemeral-storage=1Gi" \
--kubelet-arg "eviction-hard=memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%,imagefs.available<15%,imagefs.inodesFree<10%"