I am using Liberty 16.0.0.2 on Ubuntu x64. When I use REST to deploy remote Liberty Docker containers on another host it all works, however when I stop those remote containers manually (using docker stop xxx
command) the Admin Center still shows those containers as running, even after restarting the Collective Controller.
I have defined the autoscaling for my Docker containers and some of them are being stopped because of the policy, but some containers that are really running, are shown in the Admin Center as stopped. Here is the list of running containers:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb59f94cd25b liberty_img "/opt/ibm/wlp/bin/ser" 41 minutes ago Up 41 minutes liberty_container11
5fd2d5858f60 liberty_img "/opt/ibm/wlp/bin/ser" 42 minutes ago Up 42 minutes liberty_container10
98117dac4f69 liberty_img "/opt/ibm/wlp/bin/ser" 42 minutes ago Up 42 minutes liberty_container9
cdce71905081 liberty_img "/opt/ibm/wlp/bin/ser" 8 hours ago Up 3 hours liberty_container6
And here is what the Admin Center shows me (note container 5 and 11):
How can this be fixed so that the controller discovers the proper state of my Docker containers?
The messages.log file is attached, but I do not see anything interesting there.
答案 0 :(得分:2)
由于您正在直接执行docker stop命令,因此集合成员基本上被终止,因此它无法向控制器报告它正在被停止。因此,控制器报告该服务器的最后已知状态(由该服务器发布到控制器;成员将信息推送到控制器)。对于那些使其进程被杀死的非停靠者Liberty成员(而不是“正确的”删除),这种行为也是如此。
如果docker成员被serverCommands mbean(通过管理中心,swagger,java,jconsole,JMX REST连接器等)或通过'/ wlp / bin ./server stop {memberName}'命令停止,您不应该看到此问题,因为该成员将首先向控制器报告它正在停止。由于它与您的环境有关,我会注意到,如果您想通过管理中心停止/启动/重新启动自动调整的服务器,您首先需要从该成员中删除autoScalling功能,或者将该成员置于维护模式。 / p>
为了回到你的集体的正确状态,你应该只需要等到成员的心跳超时三次到期(心跳的默认值是60秒,总共3分钟),之后控制器应将它们标记为停止(因为它没有在约定的时间内从它们那里听到)。或者,您可以启动成员备份然后“正确”停止(这可以通过管理中心完成,将已停止的成员置于维护模式(正则他们自动调整),然后选择“重启”,这将启动成员备份然后“停止”以停止它。然后您可以删除维护模式。)
答案 1 :(得分:1)
重要的是要注意控制器反映它知道成员的状态。因此,如果一个成员加入,但之后无法与控制器通信,它将显示为已停止,因为控制器从未接收到来自该成员的信息。就控制器而言,它已停止。
关于未出现在AdminCenter但位于存储库中的成员,我怀疑存储库中的内容不完整。我相信还有另一个问题,重复使用相同的容器名称导致这样的行为。由于预先存在的数据,容器与控制器的连接实际上失败了。你的情况可以吗?