我们希望在Kubernetes环境中使用HAProxy,根据http post请求中正文的内容将http请求代理到特定的pod。正文包含一个json对象{customer:name},我们要将其路由到内部服务http://name-service.local
我们有大约50,000个pod,每个pod都有一个独特的服务(IP),新的pod随时动态创建和销毁。
基本上我想动态选择代理请求的位置,方法是从http请求中获取一段数据(可以是任何值),使用该数据解析dns名称,然后将请求转发给结果服务。
我能够使用下面显示的配置在nginx中使用cookie实现类似的功能。我想知道是否可以在HAProxy中复制它,而无需在配置文件中指定所有50,000个后端服务器?
示例Nginix配置:
server {
listen 80;
resolver 10.21.9.15;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
set $dbname $cookie_dbname;
set $upstream_server $dbname-service.default.svc.cluster.local;
proxy_pass http://$upstream_server$request_uri;
}