查看 OpenShift HA 代理或 Traefik 项目:https://docs.traefik.io/ 。 我可以看到 Traefik 入口 Controller 被部署为 DaemonSet。 它允许使用虚拟主机将流量路由到正确的服务/端点。
假设我有一个包含多个节点的 Kubernetes 集群。 如何避免出现单点故障?
我的节点前面应该有一个负载均衡器(或 DNS 负载均衡)吗?
如果是,是否意味着:
- 负载均衡器会将流量发送到 k8s 集群的一个节点
- Traefik 会将请求发送到端点/pod 之一。这个 pod 可以位于不同的 k8s 节点中的什么位置?
这是否意味着会有一定程度的间接性?
我还想知道 F5 cluster mode feature 是否可以避免这种间接吗?
编辑:与 F5 Ingress resource 一起使用时
最佳答案
您可以为 traefik Pod 使用负载均衡器(来自 F5 的 BIG IP 或软件负载均衡器)。当客户端请求到来时,负载均衡器会将其发送到 traefik pod 之一。一旦请求进入 traefik pod,traefik 就会根据入口规则,通过从 kubernetes 端点 API 获取这些 pod 的 IP,将请求发送到 kubernetes 工作负载 pod 的 IP。您可以在 traefik 中为您的工作负载 pod 配置 L7 负载平衡。
使用软件反向代理(例如 nginx)并通过负载均衡器公开它会引入从负载均衡器到 nginx ingress pod 的额外网络跃点。
查看 F5 文档 BIG IP Controller 也可以用作入口 Controller ,我认为通过这种方式使用它可以避免额外的跃点。
关于kubernetes - Traefik 边缘路由器前面的负载均衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60031377/