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

GKE群集-我可以将流量从全局http负载平衡器定向到nginx入口控制器吗,nginx,google-cloud-platform,load-balancing,google-kubernetes-engine,nginx-ingress,Nginx,Google Cloud Platform,Load Balancing,Google Kubernetes Engine,Nginx Ingress,我正在使用GKE,并在集群上安装了nginx入口控制器。GCP自动创建了一个TCP负载平衡器,以将请求从外部临时IP重定向到my cluster nodes(nginx) 我在VM上部署了另一个web应用程序,我希望在VM和gke集群之间按子域平衡传入的请求。为了做到这一点,我创建了一个全局负载平衡器,它有两个后端以及主机和路径规则 我将DNS记录A配置为指向全局负载平衡器 我可以从我的域访问VM,但我无法访问安装在GKE上的入口 我尝试将gke后端配置为实例组(节点池)和指向TCP负载平衡器的

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

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

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

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

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


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

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


通过这种方式,我们可以更好地了解正在发生的情况。

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


通过这种方式,我们可以更好地了解正在发生的情况。

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

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


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

这通常不会进行。首先,您不能使用HTTP负载平衡器以网络负载平衡器为目标。LB必须指向由网络端点组或实例组组成的后端服务

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


上面的问题是,当任何群集节点发生更改(放大、缩小或由于升级而被替换)时,非托管实例组将不会自动使用新节点进行更新。您需要手动使组保持最新状态。

我通过使用两个静态IP和两个DNS A记录(第一个)解决了我的问题(*.mydomain)以k8s集群为目标,第二个(service.mydomain)以我的VM为目标


这是我刚刚提出的快速解决方案

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


这是我刚刚提出的快速解决方案

您是否调试了网络配置?是否激活了流量日志以查看tcp数据包发生了什么变化?是否调试了网络配置?是否激活了流量日志以查看tcp数据包发生了什么变化?我有一个内部部署的k8s群集,其前面有一个ha代理。ha代理UTE k8s群集和其他虚拟机之间的传入请求。在GCP上不可能这样做,对吗?您可以在GKE上这样做,为nginx入口使用内部lb并配置您自己的ha代理。我有一个内部k8s群集,前面有一个ha代理。ha代理在k8s群集和其他虚拟机之间路由传入请求。它不是可以在GCP上这样做,对吗?您可以在GKE上这样做,为nginx入口使用内部lb,并配置您自己的ha代理