当前位置: 首页 > 知识库问答 >
问题:

GKE群集-我可以将流量从全局http负载平衡器定向到nginx入口控制器吗

邹博明
2023-03-14

我正在使用GKE,并在集群上安装了nginx入口控制器。GCP自动创建了一个TCP负载均衡器,将请求从外部临时IP重定向到我的集群节点(nginx)。

我在VM上部署了另一个web应用程序,我想在VM和gke集群之间按子域平衡传入的请求。为了做到这一点,我创建了一个具有2个后端以及主机和路径规则的全局负载平衡器。

我将DNS记录A配置为指向全局负载均衡器。

我可以从我的域访问VM,但我无法访问安装在GKE上的入口。

我尝试将gke后端配置为实例组(节点池)和指向TCP负载平衡器的Internet网络endpoint组。但没有成功:-(

如何在GCP中平衡VM和GKE集群?

共有3个答案

莘昊
2023-03-14

我通过使用2个静态IP和2个DNS A记录解决了我的问题,第一个(*. mydomain)针对k8s集群,第二个(service.mydomain)针对我的VM。

这是我刚想到的快速解决方案

公良阳波
2023-03-14

通常不会这样做。首先,您不能将HTTP(S)负载平衡器作为网络负载平衡器的目标。LB必须指向由网络endpoint组或实例组组成的后端服务。

唯一可行的方法是使用包含所有当前节点的非托管实例组。然后,可以将非托管实例组作为后端服务添加到HTTP(S)LB中,并将Nginx入口节点端口指定为后端端口。

上述问题是,当任何集群节点发生更改(向上、向下扩展或因升级而被替换)时,非托管实例组不会自动使用新节点进行更新。您需要手动使组保持最新。

归浩博
2023-03-14

我建议您检查全局LB上的日志,看看目的地是您的GKE集群的数据包发生了什么,有关更多信息,请参阅此处。如果可能,共享任何错误或警告。

这样我们就可以更好地了解正在发生的事情。

 类似资料:
  • GCP为GKE负载平衡器提供了自己的托管入口控制器。我还看到了部署和利用Nginx入口控制器的文档。 https://cloud.google.com/community/tutorials/nginx-ingress-gke 内置入口控制器也在负载均衡器级别处理SSL终止。是否有特定的流量处理能力使Nginx成为GKE更好的入口控制候选者?

  • 是否可以在没有负载均衡器的情况下在库伯内特斯中使用入口控制器功能(在数字海洋中)。 是否有其他机制允许域名映射到Kubernetes服务;例如,如果我在Kubernetes集群上托管两个WordPress站点: == 域名如何在不显式输入端口号的情况下映射到容器端口8080。 感谢任何帮助。

  • 我很难理解与Ingress Nginx一起使用时负载平衡器的作用。 我知道负载平衡器在多个节点上分发请求。 i、 假设我有两个节点A和B,它们负责处理示例中的请求。com。 因此,负载均衡器将接受对的请求,并在定义的算法的帮助下在它们之间分配。 我也了解什么是API网关, i、 例如,我有一个订单服务和另一个支付服务,这样API网关将获得示例的请求。com,它将把订单请求移交给服务部门,将付款移交

  • 有一个入口配置,比如 gke创建了nginx ingress负载平衡器,但也创建了另一个具有后端的负载平衡器,就像如果没有选择nginx,而是选择gcp作为ingress一样。 下面的屏幕截图以红色显示了两个意外的LB,蓝色显示了两个nginx ingress LB,分别用于我们的qa和prod env。 kubectl的输出获取服务 gcp gke服务视图中错误信息入口的屏幕截图 这是意料之中的

  • 我正试图在GKE集群上添加一个NGINX入口控制器,使用现有的HAProxy入口控制器(它在重写规则方面有一些问题) 首先,我尝试将控制器的服务公开给LoadBalancer类型。流量可以到达入口和后端,但它不适用于托管证书。 因此,我尝试使用L7负载平衡器(URL映射)将流量转发到GKE群集IP,并为入口控制器本身创建入口对象。 问题是,这个入口对象似乎不绑定到外部IP。路由到域会产生“默认后端

  • 我想在Google容器引擎上运行docker映像的集群前面放置一个HTTP负载平衡器,这样我就可以使用HTTPS,而无需应用程序支持它。 我使用以下命令创建了一个容器集群: 然后,我创建了一个复制控制器,在集群上运行一个映像,该映像基本上是nginx,其中复制了静态文件。 如果我为此创建一个网络负载平衡器,一切都会正常工作。我可以转到我的负载平衡器IP地址并查看网站。但是,如果创建HTTP负载平衡