当使用带有istio入口网关(跨不同节点的多个副本)的外部负载均衡器时,它如何识别它可能命中的istio入口网关,即我可以手动访问nodeip:任何节点的nodeport/终结点,但是如何期望外部负载平衡器知道所有节点。
这是手动配置的,还是负载均衡器从API中消耗的信息,是否有绕过外部负载均衡器的推荐策略。roundrobin跨DNS,它知道节点ip /端口吗?
这个问题的根源是--我们如何避免一个单一的失败点。使用多个istio入口网关副本在istio中实现了这一点,但是外部负载均衡器/负载均衡器集群需要知道副本。这是自动化的还是手动的配置,还是外部负载均衡器碰到的单个虚拟端点?
发布于 2019-07-24 12:41:01
外部负载平衡器通常配置为对节点集进行健康检查(通过/healthz端点或其他方法),并使用LB算法平衡传入的通信量,方法是通过服务的NodePort将接收到的数据包发送给健康节点之一的。
事实上,这主要是NodePort类型服务存在的主要原因--它们本身并没有太多的使用,但它们是模式LoadBalancer和ClusterIP之间的中间步骤。
负载均衡器是如何知道节点的?这在很大程度上取决于负载平衡器。例如,如果在BGP模式下使用MetalLB,则需要将节点作为对等点添加到外部BGP路由器(手动或自动方式)。MetalLB负责向路由器宣传LoadBalancer类型服务的IP。这意味着路由器有效地成为集群的负载均衡器。
还有一些企业级的商业库伯奈特负载平衡器,如F5大IP。
发布于 2019-10-05 04:31:56
为服务而不是节点端口启用ClusterIP。任何LB都可以和入口一起使用。但这取决于您使用的平台。它是裸露的金属或开放的班次,IBM,Google。一旦入口控制器( Metalb,ngnix,流量)能够通信任何LB,如F5 GTM或LTM可以在前面设置。
https://stackoverflow.com/questions/57181975
复制相似问题