我使用GKE,并在集群上安装了nginx入口控制器。GCP自动创建一个TCP负载均衡器,以将请求从外部临时IP重定向到我的集群节点(nginx)。
我在VM上部署了另一个web应用程序,我想在VM和gke集群之间通过子域平衡传入的请求。为了做到这一点,我创建了一个全局负载均衡器,其中包含两个后端以及主机和路径规则。
我将DNS记录A配置为指向全局负载均衡器。
我可以从我的域到达VM,但我不能到达安装在GKE上的入口。
我尝试将gke后端配置为实例组(节点池)和指向TCP负载均衡器的Internet网络端点组。但没有成功-
如何在GCP中的VM和GKE集群之间取得平衡?
发布于 2020-02-18 23:10:27
我建议您检查全局LB上的日志,以了解其目的地是GKE集群的数据包发生了什么变化,有关更多信息,请参见这。如果可能,共享任何错误或警告。
这样我们就能更好地了解正在发生的事情。
发布于 2020-02-19 12:25:48
这通常是不做的。首先,您不能让HTTP(S)负载均衡器目标为网络负载均衡器。LB必须指向由网络端点组或实例组组成的后端服务。
此操作的唯一方法是使用包含所有当前节点的非托管实例组。然后,您可以将非托管实例组作为后端服务添加到您的HTTP(S) LB中,指定Nginx作为后端端口。
上面的问题是,当任何集群节点发生更改(由于升级而向上、向下或被替换)时,非托管实例组将不会自动使用新节点进行更新。您将需要手动保持组的最新情况。
发布于 2020-02-19 18:37:44
我通过使用两个静态IP和两个DNS A记录来解决我的问题,第一个(*.mydomain)以k8s集群为目标,第二个(service.mydomain)针对我的VM。
这是我刚想出来的快速解决方案
https://stackoverflow.com/questions/60284077
复制相似问题