Docker не может загрузить образ существующих сервисов на вновь добавленной ВМ / узле - PullRequest
0 голосов
/ 10 марта 2019

У нас есть существующий кластер Swarm с около 20 службами, охватывающими 10-15 виртуальных машин.Во время настройки сервиса мы разворачиваем их с опцией «-with-registry-auth».Наш реестр докеров находится на AWS ECR.

Все работает нормально, пока мы не добавим новый узел.Когда новый узел добавляется с существующей меткой, контейнеры не появляются на узле.При проверке статуса службы я вижу сообщение «Изображение не найдено».

Пример: у меня образ nginx, работающий на 2 виртуальных машинах с метками прокси.Я добавляю еще 1 ВМ и применяю метку прокси.Docker swarm пытается развернуть еще одну копию Nginx на этой новой 3-ей виртуальной машине, но не удается, поскольку образ отсутствует.

Поворот / указатель: если новая виртуальная машина добавляется в течение 4 часов после создания службы, nginx запускаетсяновая ВМ.Но если виртуальная машина добавляется через 4 часа после развертывания сервиса (4 часа - время истечения срока действия AWS ECR), образ не может появиться на новой виртуальной машине.(Образ по-прежнему присутствует на управляющей виртуальной машине).

Чтобы устранить эту проблему, мы добавили на каждую виртуальную машину задание cron, которое будет входить в AWS ECR каждые 2 часа, чтобы учетные данные всегда обновлялись.Но это также не решило проблему.

Если я обновляю nginx с узла менеджера с помощью «-with-registry-auth», nginx появляется на 3-й виртуальной машине, даже если он был добавлен через 4 часа.Но этого не ожидается.

Кто-нибудь еще сталкивался с проблемой?Любое руководство будет полезно

1 Ответ

0 голосов
/ 10 марта 2019

Я с этим сталкивался ...

Это происходит, если ваш реестр только частный.

Мы решаем это путем добавления docker login в качестве этапа в процессе добавления узла

...