У нас есть существующий кластер 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 часа.Но этого не ожидается.
Кто-нибудь еще сталкивался с проблемой?Любое руководство будет полезно