Как я могу уменьшить время обнаружения сбоя узла в Kubernetes?

#kubernetes

#kubernetes

Вопрос:

У меня есть 2 подчиненных и 1 главный узел кластера kubernetes.Когда узел не работает, требуется примерно 5 минут, чтобы kubernetes увидел этот сбой.Я использую динамическую инициализацию для томов, и этого времени для меня немного много.Как я могу уменьшить время обнаружения сбоя? Я нашел сообщение об этом: https://fatalfailure.wordpress.com/2016/06/10/improving-kubernetes-reliability-quicker-detection-of-a-node-down/

В нижней части сообщения говорится, что мы можем сократить это время обнаружения, изменив эти параметры:

kubelet: node-status-update-frequency = 4 с (из 10 с)
диспетчер контроллера: node-monitor-period = 2 с (из 5 с)
диспетчер контроллера: node-monitor-grace-period = 16 с (из 40 с)
диспетчер контроллера: pod-execution-timeout = 30 с (из5 м)

я могу изменить параметр node-status-update-frequency из kubelet, но у меня нет никакой программы или команды диспетчера контроллера в командной строке.Как я могу изменить эти параметры? Любые другие предложения по сокращению времени простоя обнаружения будут оценены.

Ответ №1:

..но у меня нет никакой программы диспетчера контроллера или команды в cli.Как я могу изменить эти параметры?

Вы можете изменить / добавить этот параметр в controller-manger файл systemd unit и перезапустить демон. Пожалуйста, проверьте справочные страницы для controller-manager здесь.

Если вы развертываете controller-manager как микросервис (pod), проверьте файл манифеста для этого модуля и измените параметры в command разделе контейнера (например, как это)

Комментарии:

1. Об этом может быть файл манифеста: /etc/kubernetes/manifests/kube-controller-manager . yaml Могу ли я добавить эти флаги и применить этот файл манифеста? Полезно ли это? kubectl apply -f kube-controller-manager.yaml

2. Да, вы можете изменить этот манифест. Возможно, после этого вам потребуется перезапустить kubelet.

3. К сожалению, файл манифеста выдает crashloopbackoff. Я также пробовал /etc/systemd/system/kubelet.service.d/10-kubeadm.conf, но это не дает никакого эффекта. когда я даю команду describe, она ничего не показывает: повторный перезапуск неудачного контейнера

4. @AdiSoyadi, о чем это говорит? Я точно не помню, можете ли вы проверить, как развертываются эти модули, т.е. replicaset или deamonset в kube-system пространстве имен. Затем откройте файл манифеста для replicaset / daemonset и отредактируйте.

Ответ №2:

На самом деле это kube-controller-manager. Вы также можете уменьшить период —attach-detach-conservate-sync-period с 1 м до 15 или 30 секунд для kube-controller-manager . Это позволит выполнять более быстрые действия по присоединению-отсоединению томов. То, как вы изменяете эти параметры, зависит от того, как вы настроили кластер.

Комментарии:

1. Спасибо за ответ. Моя настоящая проблема в том, что я не могу найти какую-либо документацию о kube-controller-manager, и я не знаю, как ее настроить и как ее использовать. Мой кластер: 2slavex1master в локальном кластере.(virtualbox)

2. Привет, не могли бы вы отредактировать / etc /kubernetes /manifests /kube-controller-manager. yaml и добавьте необходимые флаги, как описано сообществом @Veerendra здесь