Проблема со службой / развертыванием периодически застревает в ContainerCreating из-за перемещения каталога данных докера на узлах - PullRequest
0 голосов
/ 01 мая 2019

Запуск кластера 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, где находятся данные докера на этом узле? Сам докер отлично работает на этом узле.

1 Ответ

0 голосов
/ 01 мая 2019

Создание символической ссылки из нового расположения папки данных докера в /var/lib/docker, похоже, решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...