具有Fargate的Cloudmap的HAProxy

问题描述

希望迁移到使用AWS Fargate托管要通过HAProxy进行负载均衡的多个容器,然后将AWS Cloudmap结合使用以进行服务发现,然后使用HAProxy DNS(服务器模板)语法来组合似乎是一种不错的方法自动填充后端服务器。

然而,值得注意的是,Cloudmap底层系统的路由53最多最多仅返回8条A或SRV记录,这从HAProxy文档中可以感觉到,它将不断地将最新DNS调用中未返回的节点标记标记为不健康,即使后端都健康,也会导致后端不断被丢弃并重新添加到HAProxy池中。

我只能假设这是其他人以前遇到过的事情,并且是否有办法让HAProxy适应8个后端服务器的最大值?

解决方法

HAProxy通过server-template指令支持DNS服务发现。确保配置resolvers部分,并将其与服务器行上的resolvers伪指令一起使用。有一篇博客文章here。如果发现需要容纳更多记录,则可以调整accepted_payload_size的大小。