外部负载均衡器如何了解istio入口网关

时间:2019-07-24 11:34:57

标签: kubernetes istio

当将外部负载均衡器与istio入口网关一起使用(多个副本分布在不同节点上)时,它如何确定它可能会命中哪个istio入口网关,即我可以手动访问任何节点的nodeip:nodeport / endpoint手动,但是如何是一个预期了解所有节点的外部负载均衡器。

这是手动配置还是负载均衡器从API消耗了此信息 是否有建议的策略绕过外部负载均衡器,例如?跨DNS轮询,知道节点的IP /端口?

这个问题的根源是-我们如何避免单点故障。使用多个istio入口网关副本可以在istio中实现此目的,但是外部负载平衡器/负载平衡器群集需要知道这些副本。是自动配置还是手动配置,还是外部负载均衡器命中了单个虚拟端点?

2 个答案:

答案 0 :(得分:2)

通常将外部负载平衡器配置为对您的节点集(通过/healthz端点或其他方法)进行运行状况检查,并通过将LB接收到的数据包发送到< strong>该服务的NodePort上的健康节点之一。

实际上,这主要是NodePort类型服务首先存在的原因-它们本身并没有太多用途,但是它们是模式LoadBalancer和{{1}之间的中间步骤}。

负载均衡器如何知道节点?这在很大程度上取决于负载均衡器。例如,如果在BGP模式下使用MetalLB,则需要将节点作为对等方添加到外部BGP路由器(手动或自动)。 MetalLB负责将LoadBalancer类型服务的IP通告给路由器。这意味着该路由器有效地成为了群集的负载平衡器。

还有许多企业级商业Kubernetes负载均衡器,例如F5 Big-IP。

答案 1 :(得分:1)

为服务而不是节点端口启用ClusterIP。任何LB均可与入口一起使用。但这取决于您使用的平台。它是裸机或开放式班机,IBM Cloud,Google Cloud。一旦入口控制器(Metalb,ngnix,Traffic)能够通信,就可以在前面设置F5 GTM或LTM之类的任何LB。