让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/

官网参考.

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐