Rancher 2.0-故障排除和修复“ Controller Manager不健康问题”

时间:2019-02-22 13:04:03

标签: kubernetes rancher kube-controller-manager

我有一个控制器管理器和调度器没有响应的问题,这与我发现的github问题(rancher#11496azure#173,…)无关

两天前,我们的3节点HA集群中的一个节点上的一个POD导致内存溢出。在该牧场主webapp无法访问之后,我们找到了受感染的pod,并在kubectl上将其缩放为0。但这花了一些时间,弄清了一切。

自那时以来,Rancher Webapp正常运行,但是控制器管理器和调度程序连续发出警报,但无法正常工作。警报不完整,有时它们都可以正常运行,有时它们的运行状况检查URL拒绝连接。

NAME                 STATUS      MESSAGE                                                                                     ERROR
controller-manager   Unhealthy   Get http://127.0.0.1:10252/healthz: dial tcp 127.0.0.1:10252: connect: connection refused
scheduler            Healthy     ok                                                                                     
etcd-0               Healthy     {"health": "true"}                                                                     
etcd-2               Healthy     {"health": "true"}                                                                     
etcd-1               Healthy     {"health": "true"}

在受感染的节点上重新启动控制器管理器和调度程序无效。甚至用

重新加载所有组件

docker restart kube-apiserver kubelet kube-controller-manager kube-scheduler kube-proxy 也不有效。

有人可以帮助我找出故障排除和解决此问题的步骤,而不会导致正在运行的容器停机吗?

节点托管在DigitalOcean上,该服务器具有4个内核和8GB的RAM(Ubuntu 16,Docker 17.03.3)。

谢谢!

2 个答案:

答案 0 :(得分:0)

第一个要查看的区域是您的日志...可以导出以下日志并附加吗?

/var/log/kube-controller-manager.log

控制器管理器是一个端点,因此您需要执行“获取端点”。您可以运行以下命令吗?

kubectl -n kube-system获取端点kube-controller-manager

kubectl -n kube-system描述端点kube-controller-manager

kubectl -n kube-system获取端点kube-controller-manager -o jsonpath ='{。metadata.annotations.control-plane.alpha.kubernetes.io/leader}'

答案 1 :(得分:0)

请在主节点运行此命令

sed -i 's|- --port=0|#- --port=0|' /etc/kubernetes/manifests/kube-scheduler.yaml
sed -i 's|- --port=0|#- --port=0|' /etc/kubernetes/manifests/kube-controller-manager.yaml

systemctl restart kubelet

重启kubelet后,问题就解决了。