重启后如何将 IP 保留在单个节点上的 dockerized Consul 集群中
How do I keep IPs in a dockerized Consul cluster on a single node after restart
我对 Docker 和 Consul 很陌生,现在正在尝试建立一个由 3 个 dockerized 节点组成的本地 Consul 集群。我正在使用 progrium/consul
Docker 图像并浏览了整个教程和描述的示例。
集群工作正常,直到重新启动/重新启动。
这是我的docker-compose.yml
:
---
node1:
command: "-server -bootstrap-expect 3 -ui-dir /ui -advertise 10.67.203.217"
image: progrium/consul
ports:
- "10.67.203.217:8300:8300"
- "10.67.203.217:8400:8400"
- "10.67.203.217:8500:8500"
- "10.67.203.217:8301:8301"
- "10.67.203.217:8302:8302"
- "10.67.203.217:8301:8301/udp"
- "10.67.203.217:8302:8302/udp"
- "172.17.42.1:53:53/udp"
restart: always
node2:
command: "-server -join 10.67.203.217"
image: progrium/consul
restart: always
node3:
command: "-server -join 10.67.203.217"
image: progrium/consul
restart: always
registrator:
command: "consul://10.67.203.217:8500"
image: "progrium/registrator:latest"
restart: always
我收到如下消息:
[ERR] raft: Failed to make RequestVote RPC to 172.17.0.103:8300: dial tcp 172.17.0.103:8300: no route to host
这显然是因为我的节点 2 和 3 在重启后获得了新 IP。那么有没有可能阻止这种情况呢?阅读有关链接和环境变量的信息,但似乎这些变量在重新启动后也没有更新。
我遇到了同样的问题,直到我读到当您重新启动容器化的 consul 节点时存在 ARP table 缓存问题。
据我所知,有两种解决方法:
- 运行 你的容器使用 --net=host
- 在重启容器之前清除 ARP table:docker 运行 --net=host --privileged --rm cap10morgan/conntrack -F
所有者 (Jeff Lindsay) 告诉我他们正在重新设计整个容器并内置此修复程序,不幸的是没有时间表。
我对 Docker 和 Consul 很陌生,现在正在尝试建立一个由 3 个 dockerized 节点组成的本地 Consul 集群。我正在使用 progrium/consul
Docker 图像并浏览了整个教程和描述的示例。
集群工作正常,直到重新启动/重新启动。
这是我的docker-compose.yml
:
---
node1:
command: "-server -bootstrap-expect 3 -ui-dir /ui -advertise 10.67.203.217"
image: progrium/consul
ports:
- "10.67.203.217:8300:8300"
- "10.67.203.217:8400:8400"
- "10.67.203.217:8500:8500"
- "10.67.203.217:8301:8301"
- "10.67.203.217:8302:8302"
- "10.67.203.217:8301:8301/udp"
- "10.67.203.217:8302:8302/udp"
- "172.17.42.1:53:53/udp"
restart: always
node2:
command: "-server -join 10.67.203.217"
image: progrium/consul
restart: always
node3:
command: "-server -join 10.67.203.217"
image: progrium/consul
restart: always
registrator:
command: "consul://10.67.203.217:8500"
image: "progrium/registrator:latest"
restart: always
我收到如下消息:
[ERR] raft: Failed to make RequestVote RPC to 172.17.0.103:8300: dial tcp 172.17.0.103:8300: no route to host
这显然是因为我的节点 2 和 3 在重启后获得了新 IP。那么有没有可能阻止这种情况呢?阅读有关链接和环境变量的信息,但似乎这些变量在重新启动后也没有更新。
我遇到了同样的问题,直到我读到当您重新启动容器化的 consul 节点时存在 ARP table 缓存问题。
据我所知,有两种解决方法:
- 运行 你的容器使用 --net=host
- 在重启容器之前清除 ARP table:docker 运行 --net=host --privileged --rm cap10morgan/conntrack -F
所有者 (Jeff Lindsay) 告诉我他们正在重新设计整个容器并内置此修复程序,不幸的是没有时间表。