首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCP:引导流量从全局HTTP负载均衡器到istio内部负载均衡器

GCP:引导流量从全局HTTP负载均衡器到istio内部负载均衡器
EN

Stack Overflow用户
提问于 2019-10-23 18:12:22
回答 3查看 1.4K关注 0票数 2

我在一个共享的VPC网络上有两个区域的GKE集群,两者都在运行istio,我需要在它们之间实现全球负载平衡。在每个集群设置了带有端口80的ilbgateway后,将创建一个GCP内部区域负载均衡器,并在该区域的子网上分配一个外部IP。我可以看到相应的后端服务为两个ilb-网关。但是,当使用新的后端服务设置全局HTTP负载均衡器并敲击全局负载均衡器的IP时,请求将被发送到集群的一个节点的IP地址,而不是我所期望的内部负载均衡器的ip地址。

我在这里想要达到的目标有可能吗?如果是的话,上面有没有遗漏一步?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-25 11:15:56

您可以在Istio之上设置一个全球负载平衡器。但是,您无法到达由自动设置的TCP负载均衡器。

这个入侵网关是一个公开K8S的NodePorts服务。您可以使用以下命令获取它们:

代码语言:javascript
复制
# For HTTP
kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}'

# For HTTPS
kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}'

现在,您可以使用集群和NodePort创建的实例组设置全局负载平衡器后端。通过这种方式,您的流量将被路由到Istio,而无需使用侵入网关(->,TCP负载均衡器)。

关于这两个区域,您应该有两个实例组,每个区域一个,以及两个TCP负载均衡器,每个区域一个。顺便说一句,您可以在您的全局负载均衡器上定义两个不同的后端,但是您不能在这两个区域之间负载平衡相同的流量。您将有两个不同的路径规则,因此有两个不同的URL条目

更新

经过反思后,如果您想在这两个区域中路由相同的流量,则必须依赖执行这种负载平衡的动态DNS服务。大多数情况下,这种DNS服务包括一个健康检查,以验证您的区域是否响应。今天,谷歌全球负载平衡不允许这样做。我知道Cloudflare会这么做。

票数 0
EN

Stack Overflow用户

发布于 2019-10-24 03:00:30

你想要达到的目标是不可能的。有两个原因。

  1. GCP没有能够处理两个不同集群的GKEIn匀浆。这称为多集群入口,不支持。
  2. GCP负载均衡器不能有另一个负载均衡器作为后端。

票数 1
EN

Stack Overflow用户

发布于 2020-01-05 20:56:50

GCP有一个单独的工具,您可以使用它来设置一个名为KubeMCI的全局入口,它需要一些手动干预,例如,在这种情况下,您的Istio网关需要作为节点端口运行,而不是负载均衡器,并且在您希望它响应的每个集群上,节点端口都需要完全相同。

“如何- to”没有引用Istio只是Kubernetes服务,而且我认为TCP还不能只提供HTTP。考虑到这一点,它明确表示,在将功能构建到Kubectl之前,kubemci是一个临时工具。

但是,如果您对节点端口进行相同的配置,那么它应该能很好地工作。

这是官方文档:https://cloud.google.com/kubernetes-engine/docs/how-to/multi-cluster-ingress

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58528770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档