【发布时间】:2021-07-22 10:57:31
【问题描述】:
我正在实现一个前端负载均衡器,它将进入端口 80 和 443 的流量传递到不同的后端端口。 SSL 终止发生在后端,HAproxy 除了将来自前端端口 80 和 443 的流量转发到各自的后端端口之外,不应参与任何其他操作。
端口 80 转发似乎正常,但 443 未按预期工作,导致 SSL 握手失败。甚至我的后端服务也没有出现在网络浏览器上,并警告说这是不可信的。我不知道为什么会发生这种情况,而且我的 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 ingress,它在每个节点上作为 DaemonSet 运行,minions 是我的后端服务器。 CertManager 可以在入口资源中使用 Let's 加密 ACME 协议进行证书自动化,因此 SSL 终止应该通过入口资源发生。
我已经完成了证书,一切看起来都很完美,因为我已经在 AWS 上使用 TCP 负载均衡器实现了类似的设置,并且一切都在完美运行并运行 prod 工作负载。
所以,我需要提一下,后端服务都很好并且正在运行。在此,我用 HAProxy 替换了 AWS 负载均衡器,并且需要实现相同的功能。
请帮助我解决这个问题,因为我正在努力解决这个问题并且仍然没有解决这个问题。
谢谢。
【问题讨论】:
标签: ssl haproxy kubernetes-ingress traefik haproxy-ingress