Rancher 2.0 - Устранение неполадок и устранение "проблемы с диспетчером диспетчера нездоровых"
У меня проблема с контроллером-диспетчером и планировщиком, который не отвечает, это не связано с обнаруженными мной проблемами на github ( rancher # 11496, azure # 173,…)
Два дня назад у нас было переполнение памяти одним POD на одном узле в нашем кластере высокой доступности с 3 узлами. После того, как это веб-приложение ранчера стало недоступным, мы нашли скомпрометированный модуль и масштабировали его до 0 по сравнению с kubectl. Но это заняло некоторое время, чтобы выяснить все.
С тех пор ранчо 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 ядрами и 8 ГБ ОЗУ каждый (Ubuntu 16, Docker 17.03.3).
Заранее спасибо!
2 ответа
Первой областью, которую нужно рассмотреть, будут ваши журналы... Можете ли вы экспортировать следующие журналы и прикрепить?
/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}'
Пожалуйста, запустите эту команду на главных узлах
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
После перезапуска кублета проблема решится.