0

我正在实现一个前端负载均衡器,它将进入端口 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 入口,它在每个节点上作为 DaemonSet 运行,minions 是我的后端服务器。CertManager 可以通过让我们在入口资源中加密 ACME 协议来进行证书自动化,因此 SSL 终止应该通过入口资源发生。

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

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

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

谢谢你。

4

1 回答 1

0

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

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

于 2021-04-29T09:47:03.507 回答