如何安全地为我的 kubernetes 集群设置外部负载平衡?

如何安全地为我的 kubernetes 集群设置外部负载平衡?

一段时间以来,我们只是将 DNS 指向集群中的一个节点。然后该节点在内部将负载平衡到正确的节点和应用程序。

像这样:

在此处输入图片描述

问题是,有时节点崩溃,严重到我们甚至无法通过 ssh 进入。而且由于 DNS 指向该节点,所有应用程序都无法访问。

所以我的想法是设置一个外部负载平衡器并将 DNS 指向它。

像这样:

在此处输入图片描述

我尝试使用 HAProxy,效果不错。它似乎运行良好。但我只在负载均衡器和 k8s 集群之间使用 http。

我也希望交通能够得到安全保障。

我该如何实现这一点?目前的 k8s 发行版是 k3s。

答案1

我认为有两种方法可以做到这一点[1]:

HAProxy SSL Passthrough SSL Passthrough 顾名思义,它接收连接并将其发送到后端服务器进行解密。这可以被认为是更快的,但也有许多缺点,例如隐藏客户端的真实 IP。这是因为我们不会在数据通过负载均衡器时对其进行解密。

HAProxy SSL 终止 使用 SSL 终止,HAProxy 在到达负载均衡器时解密连接,然后再次加密以发送到后端服务器或仅以未加密的方式发送数据。这被视为默认选择,但这取决于您如何使用 HAProxy 进行 HTTPS 连接。

这里有更详细的指南:

[1]。https://first2host.co.uk/blog/set-up-haproxy-https-load-balance-over-https-connections/

相关内容