一体化监控管理平台解决方案,一体化监控管理平台的应用范围
1029
2022-11-05
k8s部署-34-初始k8s的驱逐策略
常见驱逐策略
1、软驱逐
# 当内存小于1.5G--eviction-soft=memory.available<1.5Gi# 持续时间--eviction-soft-grace-period=memory.available=2m30s
上面的含义是说,当节点内存小于1.5G,并持续时间长达2分30秒的时候,进行驱逐。
2、硬驱逐
如果说只有软驱逐的话,会不会有这么一种情况,在小于1.5G的时候,并没有在持续2分30秒,内存就消耗殆尽了,那样子我们的整个节点都容易出现故障,更别说上面运行的服务了。
所以需要搭配一个最低值,一旦到达哪个阈值,直接进行驱逐。
# 内存小于100M# 磁盘小于1G# cpu空余小于5%--eviction-hard=memory.available<100Mi,nodefs.available<1G,nodefs.inodesFree<5%
满足以上任一条件,则立刻开始驱逐。
磁盘紧缺的驱逐
当磁盘剩余空间触发到上面的驱逐策略的时候,是按照什么顺序进行驱逐的呢?
1、删除死掉的容器、POD2、删除无用的镜像3、按优先级、资源占用情况驱逐POD# 如果优先级一致,就找到占用资源最大的进行驱逐
内存紧缺的驱逐
当内存剩余容量触发到上面的驱逐策略的时候,又是按照什么顺序进行驱逐的呢?
1、驱逐不可靠的pod2、驱逐基本可靠的pod3、直接停掉占用内存最大的pod4、驱逐可靠的pod
PS:比如说当node1资源满了,然后把POD-A停掉了,这个时候node2还有足够的资源,是会将POD-A从node2上启动。
配置在哪儿
由于这个是kubelet控制的,且kubelet只有worker节点上存在,那么自然而然的要在worker节点上了,修改配置文件路径为下:
[root@node2 ~]# vim etc/systemd/system/kubelet.service[Unit]Description=Kubernetes KubeletDocumentation=https://github.com/kubernetes/kubernetesAfter=containerd.serviceRequires=containerd.service[Service]ExecStart=/usr/local/bin/kubelet \ --config=/etc/kubernetes/kubelet-config.yaml \ --container-runtime=remote \ --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock \ --image-pull-progress-deadline=2m \ --kubeconfig=/etc/kubernetes/kubeconfig \ --network-plugin=cni \ --node-ip=192.168.112.131 \ --register-node=true \ --v=2Restart=on-failureRestartSec=5[Install]WantedBy=multi-user.target[root@node2 ~]# # 驱逐参数配置到ExecStart后面,然后重新启动下kubelet即可
至此,本文结束。
发表评论
暂时没有评论,来抢沙发吧~