CoreOS 集群 DNS 设置

CoreOS 集群 DNS 设置

我不确定如何为 coreos 集群设置 DNS。

目前,我的所有 api 实例都位于 haproxy 负载均衡器和指向负载均衡器 (弹性) ip 的 DNS A 记录后面。因此,我可以将流量发送到 api.myapp.com,然后将其路由到 api 实例。这工作正常,但显然负载均衡器是单点故障。

如果我开始使用 coreos 设置集群,并且集群正在运行多个服务(而不仅仅是 api 服务),我该如何以与当前相同的方式将 api.myapp.com 指向集群,但确保使用此地址发送的任何请求都以某种方式仅路由到集群内的 api 服务?通过阅读许多关于 coreos 的教程,我对此并不清楚。

答案1

您需要运行一个路由层(HAproxy 应该可以正常工作),该路由层根据 HTTP 主机标头引导流量。根据需要在绑定到 80/443 的几台机器上运行此路由容器。为指向这几台机器的每项服务添加 A 记录。您的 LB 现在具有高可用性。

接下来,设置 HAproxy 路由规则以使用下游服务的位置并适当地路由流量。例如,对 api.example.com 的请求将被路由到 10.10.10.1、10.10.10.2 或 10.10.10.3。路由器 (10.10.10.1:443) 发现它有两个后端容器负责在 10.10.10.99:9999 和 10.10.10.98:9898 上运行的 api.example.com。流量被路由到其中一个容器,请求得到满足。

使用 Vulcan 代理和 etcd 的完整示例如下:https://coreos.com/blog/zero-downtime-frontend-deploys-vulcand/

相关内容