浏览 1968
扫码
监控Swarm健康
我们可以通过通过查询Docker API的HTTP端点/nodes来监控manager节点的健康状况。详情请参考Nodes API docuemntation。
在命令行中运行docker node inspect <id-node>,来查询节点。例如,查询mananger节点的可达性:
docker node inspect manager1 --format "{{ .ManagerStatus.Reachability }}"reachable
查询worker节点接收的task的状态:
docker node inspect manager1 --format "{{ .Status.State }}"ready
上面的命令我们可以看到manager1节点可达性为reachable,作为workder几点的状态为ready。
unreachable状态则表示其他的manager节点服务到达这个节点。这种情况下就需要通过已下办法来恢复该节点:
重启Docker daemon
重启服务器
如果既不重启Docker daemon也不重启服务器,那么就需要添加一个新的manager节点,或者将一个worker节点升级成为一个manager节点。我们也需要通过命令
docker node demote <NODE>和docker node rm <id-node>彻底移除该节点。
我们也可以在manager节点上执行docker node ls来查看节点:
docker node lsID HOSTNAME MEMBERSHIP STATUS AVAILABILITY MANAGER STATUS1mhtdwhvsgr3c26xxbnzdc3yp node05 Accepted Ready Active516pacagkqp2xc3fk9t1dhjor node02 Accepted Ready Active Reachable9ifojw8of78kkusuc4a6c23fx * node01 Accepted Ready Active Leaderax11wdpwrrb6db3mfjydscgk7 node04 Accepted Ready Activebb1nrq2cswhtbg4mrsqnlx1ck node03 Accepted Ready Active Reachabledi9wxgz8dtuh9d2hn089ecqkf node06 Accepted Ready Active