Почему dockerd на узле становится плохим? - PullRequest
0 голосов
/ 14 ноября 2018

После нескольких дней работы dockerd на хосте kubernetes, где pube-ы назначаются с помощью kubelet, dockerd выходит из строя - потребляет много ресурсов (50% памяти - ~ 4 гигабайта).

Когда он достигает этого состояния, он не может воздействовать на команды для контейнеров, которые, по-видимому, запускаются через $ docker ps. Также проверяя ps -ef на хосте, эти контейнеры не отображаются ни на какие базовые процессы хоста.

$ docker exec урожайность -

level=error msg="Error running exec in container: rpc error: code = 2 desc = containerd: container not found"

Cannot kill container 6a8d4....8: rpc error: code = 14 desc = grpc: the connection is unavailable"

level=fatal msg="open /var/run/docker/libcontainerd/containerd/7657...4/65...6/process.json: no such file or directory"

Просматривая дерево процессов на хосте, кажется, что существует много несуществующих процессов, которые указывают на dockerd в качестве родительского идентификатора. Есть какие-нибудь указатели на то, что может быть проблемой или где искать дальше?

Включена отладка на dockerd, чтобы увидеть, возникает ли проблема снова, перезапуск dockerd устраняет проблему.

1 Ответ

0 голосов
/ 14 ноября 2018

Звучит так, словно у вас плохо работает контейнер, и докер не может его собрать. Я хотел бы взглянуть на то, что было запланировано на узлах, где вы видите проблему. Похоже, ошибка, которую вы видите, выглядит так, что демон Docker не отвечает на запросы API, отправленные интерфейсом командной строки Docker. Некоторые указатели:

  • Контейнер успешно завершился или произошла ошибка?
  • По какой-то причине они были убиты?
  • Проверьте журналы kubelet
  • Проверить логи kube-планировщика?
  • Следите за журналами в контейнерах на вашем узле docker logs -f <containerid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...