Answers:
是的,您应该使用负载平衡器并一次更新一个实例。我不确定容器间的通信来自何处。
举例来说,假设您有一个为站点A服务的负载平衡器。用户仅以站点A的身份连接,并且仅以站点A的身份知道。负载平衡器知道有两个或多个后端(B,C等),无论它们是VM还是容器都无关紧要。
然后,您要升级后端,在本例中为Apache实例。
然后,对C,D等执行相同的过程。
请注意,从2013年11月开始,就公开请求对Docker容器进行升级,但是似乎并没有太大进展,因此上述解决方案是您同时应该做的。
大概是在问这个问题,因为您已经在这种模式下运行一个实时站点,并且希望在不停机的情况下进行升级。因此,我们需要逐步达到上述理想目标状态。
假设:
如果这些假设是错误的,则应首先对其进行修复,以确保正确。
然后,请按照下列步骤操作:
最简单的选择是不运行自己的平衡器。例如,如果您使用的云平台将负载均衡作为服务提供,请考虑使用它,然后维护和更新负载均衡器就不成问题了。
如果您正在运行自己的负载均衡器,则添加另一层间接访问(即DNS)将有所帮助。让我们假设以下内容:
我们进行如下操作:
将B的IP地址与A一起添加到DNS解析中
如果B有任何问题,请按以下步骤撤消:
到此为止。
请参阅以下文章和工具,这些文章和工具可以帮助您使流程自动化,但是总体思路是相同的:
“计算机科学中的所有问题都可以通过另一种级别的间接解决,当然,过多的间接问题除外。” — 戴维·惠勒