我正在实施一个前端负载均衡器,它将进入端口 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 负载均衡器,并且需要实现相同的功能。
请帮助我解决这个问题,因为我正在努力解决这个问题,但仍然没有解决问题。
谢谢。
答案 0 :(得分:0)
抱歉,我已经弄清楚了,这个 SSL 问题与 traefik 和 HAProxy 无关。我的客户的 DNS 是在 CloudFlare 中配置的,他们启用了通用 SSL 并导致了问题。
我检查了 route53 的新 DNS 记录,按预期工作,因此我的 HAProxy 配置可以满足我的需要。