我们有一个现有的群集群,其中大约有20个服务跨越10-15个虚拟机。在服务设置期间,我们使用“-with-registry-auth”选项部署它们。我们的docker注册表位于AWS ECR上。
在我们添加新节点之前,一切正常。使用现有标签添加新节点时,容器不会出现在节点上。在检查服务状态时,我可以看到消息“找不到图像”。
示例:我在带有标签代理的2个VM上运行nginx映像。我再添加一个VM并应用标签代理。 Docker swarm尝试在这个新的第3个虚拟机上再部署一个Nginx副本,但由于图像不存在而失败。
Twist / Pointer:如果在创建服务的4小时内添加了新VM,则nginx会出现在新VM上。但是,如果在服务部署4小时后添加VM(4小时是AWS ECR的凭证到期时间),则无法在新VM上映像。 (图像仍然存在于管理器VM上)。
为了解决这个问题,我们在每个VM上添加了一个cron作业,每2小时登录一次AWS ECR,以便始终刷新凭据。但这也没有解决问题。
如果我使用“-with-registry-auth”从管理器节点更新nginx,即使在4小时后添加,nginx也会出现在第3个VM上。但这不是预期的。
其他人都面临这个问题?任何指导都会有所帮助
我面对......
如果您的注册表仅为私有,则会发生这种
我们通过添加docker login
作为添加节点进程的阶段来解决这个问题