docker swarm里面的service始终是new状态,起不来是什么原因?

1.ingress网络的ip用尽(默认生成的掩码为24,只有256可分配),无法为新的服务分配vip,可以重启stack,同时在另一个窗口使用journalctl -f -u docker | grep error抓取报错信息,如果有大量的vip报错则是这个原因;

解决:

解决方案

1.1 重启docker能够临时解决;

1.2 停止已启动的docker容器, 然后删除ingress网络:docker network rm ingress,重新生成ingress网络: docker network create --driver overlay --ingress --subnet=10.0.0.0/16 --gateway=10.0.0.1 --opt com.docker.network.mtu=1400 ingress

2.第二个原因,有可能是之前该stack重启某个节点没有将其服务释放干净,导致其network残留,从而新的服务

无法在该节点起来,这个就需要使用docker network inspect NETWORK_NAME做进一步排查。

swarm init 的小建议

docker swarm init --default-addr-pool 10.20.0.0/16 --advertise-addr 192.168.0.1 # 执行这个可以添加

docker swarm join-token manager # 获取加入manger的信息
docker swarm join --token SWMTKN-1-2nhuczkado840s2m

posted @ 2022-03-24 22:47  つつつつつつ  阅读(701)  评论(0编辑  收藏  举报