镜像被删除及POD状态为Evicted问题参数调优方法

1 问题描述
Kubernetes默认配置情况下,当node节点的磁盘使用量达到85%,节点会对运行的容器进行驱逐,并且回收未被使用的镜像,来保证服务的自愈和高可用。
但是,通过驱逐容器以及回收镜像(回收磁盘空间),来实现服务的自愈和高可用,是有条件的:
1. k8s集群有多个node节点
2. 服务有多个POD实例,并分散部署在多个node上
2. 镜像从镜像仓库拉取,而不是存在本地
2 K8S参数调优方法
(1). POD驱逐参数设置
可以通过设置k8s参数,自动回收异常的POD容器,修改master的kube-controller-manager文件 :/etc/kubernetes/manifests/kube-controller-manager.yaml,增加或修改参数:--terminated-pod-gc-threshold=20

修改后,kube-controller-manager会自动重启生效。
(2). 镜像删除参数设置
如果想修改磁盘回收的百份比,即磁盘使用量达到多少进行POD迁移和镜像回收,则需要修改每个主机上的kubelet配置文件:/var/lib/kubelet/config.yaml
[root@node1 kubelet]# cat config.yaml apiVersion: kubelet.config.k8s.io/v1beta1 authentication: anonymous: enabled: false webhook: cacheTTL: 0s enabled: true x509: clientCAFile: /etc/kubernetes/pki/ca.crt authorization: mode: Webhook webhook: cacheAuthorizedTTL: 0s cacheUnauthorizedTTL: 0s cgroupDriver: cgroupfs clusterDNS: - 172.29.0.10 clusterDomain: cluster.local cpuManagerReconcilePeriod: 0s evictionPressureTransitionPeriod: 0s fileCheckFrequency: 0s healthzBindAddress: 127.0.0.1 healthzPort: 10248 httpCheckFrequency: 0s imageGCHighThresholdPercent: 85 imageMinimumGCAge: 0s kind: KubeletConfiguration logging: {} nodeStatusReportFrequency: 0s nodeStatusUpdateFrequency: 0s rotateCertificates: true runtimeRequestTimeout: 0s staticPodPath: /etc/kubernetes/manifests stream |
镜像被删除及POD状态为Evicted问题参数调优方法
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



