HAProxy TCP (443) 不同后端端口的负载均衡

时间:2021-04-29 04:48:34

标签: ssl haproxy kubernetes-ingress traefik haproxy-ingress

我正在实施一个前端负载均衡器,它将进入端口 80 和 443 的流量传递到不同的后端端口。 SSL 终止发生在后端,HAproxy 除了将进入前端端口 80 和 443 的流量转发到相应的后端端口外,不应进行任何其他操作。

端口 80 转发似乎没问题,443 未按预期工作并导致 SSL 握手失败。甚至我的后端服务也没有出现在 Web 浏览器上,并警告说这是不可信的。我不知道为什么会发生这种情况,我的 HAProxy 体验不是那么高,低于当前配置。如果我错了,请纠正我。

HAProxy 安装在 Ubuntu 18.04.5 LTS 上

在默认部分之后配置

frontend k8s_lb
    mode tcp
    bind x.x.x.x:80
    default_backend kube_minions

frontend k8s_lb_https
    mode tcp
    bind x.x.x.x:443
    default_backend kube_minions_https

backend kube_minions
    mode tcp
    balance roundrobin
    server k8s_worker-01 x.x.x.x:32080
    server k8s_worker-02 x.x.x.x:32080

backend kube_minions_https
    mode tcp
    balance roundrobin
    server k8s_worker-01 x.x.x.x:32443
    server k8s_worker-02 x.x.x.x:32443

后端故事:

我有一个 k8s 集群和 traefik 入口,它在每个节点上作为 DaemonSet 运行,minions 是我的后端服务器。 CertManager 已准备好使用 Let's encrypt ACME 协议在入口资源中进行证书自动化,因此 SSL 终止应通过入口资源发生。

我已经完成了证书,一切看起来都很完美,因为我已经在 AWS 上使用 TCP 负载均衡器实施了类似的设置,并且一切都完美地工作并运行生产工作负载。

所以,我需要提到后端服务都很好并且正在运行。在此,我用 HAProxy 替换了 AWS 负载均衡器,并且需要实现相同的功能。

请帮助我解决这个问题,因为我正在努力解决这个问题,但仍然没有解决问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

抱歉,我已经弄清楚了,这个 SSL 问题与 traefik 和 HAProxy 无关。我的客户的 DNS 是在 CloudFlare 中配置的,他们启用了通用 SSL 并导致了问题。

我检查了 route53 的新 DNS 记录,按预期工作,因此我的 HAProxy 配置可以满足我的需要。