我正在实现一个前端负载均衡器,它将来自端口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运行,小黄人是我的后端服务器。CertManager可以通过让我们在入口资源中加密ACME协议来实现证书自动化,因此SSL终止应该通过入口资源进行。
我已经完成了证书,一切似乎都很完美,因为我已经在AWS上用TCP负载均衡器实现了类似的设置,一切都在完美地工作和运行prod工作负载。
所以,我需要提到的是,后端服务都很好,并且正在运行。在这篇文章中,我用HAProxy替换了AWS负载均衡器,并需要实现它。
请帮助我解决这个问题,因为我正在与这个问题作斗争,但仍然没有运气。
谢谢。
对不起,我能弄清楚,这个SSL问题与traefik和HAProxy无关。我的客户端的DNS是在CloudFlare中配置的,他们已经启用了通用SSL,这导致了问题。
我检查了来自route53的新DNS记录,它按预期工作,所以我的HAProxy配置可以满足我的需要。