Запуск кластера kubeadm (версия v1.13.1) на 8 узлах (7 с RHEL 7.x и один с Ubuntu 18.04.2; док-версия 1.13.1 с API версии 1.26 на RHEL и 18.09.5 с API версия 1.39 в Ubuntu).
Все работало очень хорошо, пока на днях мастер-узел не заблокировался из-за docker-current
исчерпания памяти и неполадок с машиной, что потребовало перезагрузки.
Теперь, когда все восстановлено и запущено, я снова начал тестировать кластер. Однако началось нестабильное поведение: имена служб не воспринимались как имена хостов (как svc_name.default
) в некоторых модулях, которые используют их для связи между модулями, и когда я отправляю службы / развертывания, развертывание застревает на ContainerCreating
. Если я перезапущу kubelet
на узле, на котором я пытаюсь развернуть модуль, он пройдет через следующую попытку и развернет модуль без проблем.
Я только что добавил ограничения ресурсов для узлов с ограниченной памятью / процессором, согласно --system-reserved=cpu=500m,memory=1Gi
до /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
, но это никак не помогло.
Я наблюдаю за кластером, используя MetricsServer и панель инструментов, и не вижу ничего необычного. Я также просмотрел журналы, используя journalctl
, и ничего не высовывалось.
Я проверил DNS по отладке dns , и все в порядке. Поэтому я не уверен, почему имя службы как хоста не всегда выбирается, хотя я подозреваю, что при блокировке главного узла возникла некоторая основная проблема.
У меня возникает соблазн просто перестроить кластер, но я тоже колеблюсь, особенно если эти проблемы можно решить.
Есть идеи? Все, что я искал, не применимо к этой проблеме. Мы близки к запуску производства, и сроки этого не очень хороши.
EDIT
Ниже приведено описание сбоя при раскрутке контейнера, которое теперь имеет смысл:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 25s default-scheduler Successfully assigned default/nlp-adapt-wf-wmw6r-2161497416 to bpb.X.X.X
Warning FailedMount 9s (x6 over 25s) kubelet, bpb.X.X.X MountVolume.SetUp failed for volume "docker-lib" : hostPath type check failed: /var/lib/docker is not a directory
Проблема в том, что я изменил расположение по умолчанию каталога данных докера на узле bpb.X.X.X
, но, очевидно, kubernetes недостаточно умен, чтобы это знать.
Мой поиск в Google не принес результатов.
Как я могу сообщить kubernetes, где находятся данные докера на этом узле? Сам докер отлично работает на этом узле.