修改kubelet启动配置文件
vim /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf

容量
cpu=1 或 cpu=1000m
注意:1000m=1核
memory=516Mi / ephemeral-storage==1Gi
注意:Mi为Mb,Gi为Gb,Ki为Kb
参数
kube-reserved
--kube-reserved=cpu=1,memory=2Gi,ephemeral-storage=1Gi
#指定为k8s系统组件(kubelet、kube-proxy、dockerd等)预留的资源量,如:--kube-reserved=cpu=1,memory=2Gi,ephemeral-storage=1Gi。
#这里需要注意一点的是这里的kube-reserved只为非pod形式启动的kube组件预留资源,假如组件要是以static pod形式启动的,那并不在这个kube-reserved管理并限制的cgroup中,而是在kubepod这个cgroup中
system-reserved
--system-reserved=cpu=500m,memory=1Gi,ephemeral-storage=1Gi
#为系统守护进程(sshd, udev等)预留的资源量,如:--system-reserved=cpu=500m,memory=1Gi,ephemeral-storage=1Gi。注意,除了考虑为系统进程预留的量之外,还应该为kernel和用户登录会话预留一些内存。
软阀值、硬阀值
nodefs: 机器文件系统
imagesfs: Kubelet 能够利用 cAdvisor 自动发现这些文件系统,镜像存储空间
示例:
memory.available<10%
memory.available<1Gi
eviction-hard
--eviction-hard=memory.available<5%,nodefs.available<10%,imagefs.available<10%
驱逐pod的配置:硬阈值
含义:设置进行pod驱逐的阈值,这个参数只支持内存和磁盘。
通过--eviction-hard标志预留一些内存后,当节点上的可用内存降至保留值以下时,kubelet 将会对pod进行驱逐。
eviction-soft与eviction-soft-grace-period
#配置 驱逐pod的软阈值
--eviction-soft=memory.available<10%,nodefs.available<15%,imagefs.available<15%
#定义达到软阈值之后,持续时间超过多久才进行驱逐
--eviction-soft-grace-period=memory.available=2m,nodefs.available=2m,imagefs.available=2m
重启生效
systemctl daemon-reload
systemctl restart kubelet
查看验证
kubectl describe node <节点名称>

计算公式:节点上可配置值 = 总量 - 预留值 - 驱逐阈值
Allocatable = Capacity - Reserved(kube+system) - Eviction Threshold