routes - Kubernetes 集群的外部负载均衡器

标签 routes load-balancing kubernetes haproxy

我想在我的 kubernetes 集群中实现一个简单的第 7 层负载均衡器,这将允许我向外部消费者公开 kubernetes 服务。

我将创建一个简单的基于 ha-proxy 的容器,它将观察 kubernetes 服务和相应的端点,并重新加载其后端/前端配置(在重新加载期间补充 SYN 吃规则)

这将允许我通过 SVCa、SVCb、SVCc 访问 Kubernetes 服务

http://load-balancer-ip:port/SVCa -------> Pod endpoints.....
http://load-balancer-ip:port/SVCb -------> Pod endpoints..... 
http://load-balancer-ip:port/SVCc -------> Pod endpoints.....

与上述方法相比,上述方法如何工作

(1)ha-proxy将所有请求转发到kubernetes服务的clusterIP地址。

 http://load-balancer-ip:port/SVCa ------->clusterIP-SVCa
 http://load-balancer-ip:port/SVCb ------->clusterIP-SVCa
 http://load-balancer-ip:port/SVCc ------->clusterIP-SVCa

(2)ha-proxy负载均衡请求到创建NodePort类型服务获得的worker-node-ip:port

http://load-balancer-ip:port/SVCa  --------> node1:p1, node2:p1, node3:p1
http://load-balancer-ip:port/SVCb  --------> node1:p2, node2:p2, node3:p2
http://load-balancer-ip:port/SVCc  --------> node1:p3, node2:p3, node3:p3

注意:我的 k8s 集群正在自定义解决方案(本地虚拟机)上运行

最佳答案

我认为 nginx IngressController 在这种情况下可以更好地工作。 您只需在入口定义中设置后端服务和主机名。

看这里: https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx

关于routes - Kubernetes 集群的外部负载均衡器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39111638/

相关文章:

javascript - 在 Angular 中路由时使用 `%` 时,URL `%25` 会被 `queryParams` 替换

ruby-on-rails - URL 中的 Rails 用户名

azure - Windows Azure 如何执行负载平衡?

node.js - 使用 TCP 负载平衡器代理 WebSockets 没有粘性 session

python - 如何为作为 Kubernetes 容器运行的 Flask HTTP 服务器实现 HTTPS 支持

ruby-on-rails-3 - 测试路由时约束中没有请求参数

ruby-on-rails - Rails 3 - 通过路由将 IP 列入白名单

azure - 如何使 Azure 逻辑应用在多个区域之间具有高可用性?

kubernetes - GCP 中不允许使用磁盘创建 kubernetes 集群

amazon-web-services - 使用状态集存储Cassandra数据