我正在考虑在工作中使用 CoreOS 以及一些我不希望出现单点故障的项目。CoreOS 和 Docker 看起来很有希望,我可以让hipache运行与大使容器与服务通信。基本上,它可以工作。
但是共享公共 IP 呢?这个问题应该怎么解决?我找不到任何好的文档。http://www.keepalived.org/看起来可以解决这个问题。但在这种情况下它是正确的工具吗?
我在这里错过了什么吗?为什么人们没有更多地谈论这个问题?
我正在考虑在工作中使用 CoreOS 以及一些我不希望出现单点故障的项目。CoreOS 和 Docker 看起来很有希望,我可以让hipache运行与大使容器与服务通信。基本上,它可以工作。
但是共享公共 IP 呢?这个问题应该怎么解决?我找不到任何好的文档。http://www.keepalived.org/看起来可以解决这个问题。但在这种情况下它是正确的工具吗?
我在这里错过了什么吗?为什么人们没有更多地谈论这个问题?
有几种不同的方法可以解决这个问题。如果您使用云提供商(EC2 / OpenStack / Google Compute Engine),则可以通过 API 调用移动浮动 IP 的概念。这摆脱了直接使用 VRRP 之类的东西。
从长远来看,最好使用具有短 TTL 的 DNS 条目来处理。使用该方法还可以让您更灵活地使用位置感知应用程序(不同区域的 DNS 可以路由到最近的位置)、轻松过渡到 IPv6 以及跨物理位置的故障转移,而无需维护自己的内部路由基础设施。
如果您使用的是 keepalived,只需在 cloud-init 中添加一个带有浮动 ip 的启动服务,以便在 coreos 集群的每个节点中进行配置
- name: local-paas-ip.service
command: start
content: |
[Unit]
Description=Receive traffic from keepalived floating ip
[Service]
ExecStart=/usr/bin/sudo /usr/bin/ip addr add XXX.XXX.XXX.XXX dev lo:1
我有同样的问题/怀疑这是否是正确的选择,但我现在需要一些工作。