kubernetes1.23后 Node预留空间

让k8s健康运行需预留部分资源,以防宕机

,默认情况下k8s将会把资源耗尽

Allocatable 被定义为 pod 可用计算资源量。调度器不会超额申请 Allocatable。目前支持 CPU, memory 和 storage 这几个参数。
    Allocatable:真正scheduler调度Pod时的参考值(保证Node上所有Pods的request resource不超过Allocatable) kube-reserved:给kube组件预留的资源:kubelet,kube-proxy以及docker等 system-reserved:给system进程预留的资源 eviction-threshold:kubelet eviction的阈值设定
计算公式:节点上可配置值 = 总量 - 预留值 - 驱逐阈值

Allocatable = Capacity - Reserved(kube+system) - Eviction Threshold

修改前的 Allocatable

Allocatable:
  cpu:                8
  ephemeral-storage:  43584163359
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             3892812Ki
  pods:               110

编辑 vim /var/lib/kubelet/config.yaml 最后添加如下参数

enforceNodeAllocatable:
kubeReserved:
  memory: 1Gi
  cpu: 1000m

重启生效

systemctl restart kubelet.service

Allocatable的参数都小了一点CPU少了一个

官网

https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/

.

经验分享 程序员 微信小程序 职场和发展