参考资料
K8S官网节点压力驱逐:https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/node-pressure-eviction/#minimum-eviction-reclaim
K8S官网更新集群配置:https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure/#更新-kubeletconfiguration
K8S官网集群配置文档:https://kubernetes.io/zh-cn/docs/reference/config-api/kubelet-config.v1beta1/
操作步骤
编辑ConfigMap配置KubeletConfiguration
kubectl edit cm -n kube-system kubelet-config
添加驱逐配置,这里要注意了,因为ConfigMap不会验证格式,需要严格保证yaml的格式不会错误特别是缩进。编写完成直接保存退出就行了:wq!
这里只演示内存驱逐,其他的资源驱逐可以查看官方说明
apiVersion: v1
data:
kubelet: |
apiVersion: kubelet.config.k8s.io/v1beta1
......
kind: KubeletConfiguration
# 添加到这里
evictionHard:
memory.available: "1Gi" # 内存不足1Gi时触发驱逐回收
evictionMinimumReclaim:
memory.available: "500Mi" # 触发回收后还会继续进行回收500Mi,也就是保证总计剩余1.5Gi资源
......
下载最新的 kubelet-config ConfigMap 内容到本地文件 /var/lib/kubelet/config.conf
kubeadm upgrade node phase kubelet-config
每个K8S节点重启kubelet服务
systemctl restart kubelet