具有ngnix入口控制器作为nodeport的GCP内部负载均衡器:拒绝连接

时间:2018-11-23 11:03:00

标签: google-cloud-platform google-compute-engine nginx-ingress google-cloud-internal-load-balancer

背景: 我们将应用程序托管在GKE集群中,在GKE集群上运行的应用程序有一个入口资源,其中包含指向我们应用程序服务的规则。我们正在使用ingress-nginx作为该集群的入口控制器。

我们现在创建了一个GCP内部负载平衡器(TCP),以指向入口控制器服务正在侦听的节点端口。 (注意:nginx入口控制器服务是节点端口类型)

  1. 当我们尝试使用http://ILB-IP:80(http端口)访问应用程序时,它会引发连接被拒绝的异常,但是当我们直接使用nodeport http://ILB-IP:31380(nodeport)进行访问时会得到所需的响应

  2. 当我们以类型负载平衡器的形式提供入口服务时,GCP会在后台创建一个ILB。 在这种情况下,可以通过http端口访问应用程序,并满足所有请求。

任何人都可以帮助我们弄清楚我们显式创建ILB并发送请求的原因,为什么当我们在http端口上访问ILB前端时无法访问应用程序,而当ILB前端为ILB-IP时可以访问该应用程序: ?

谢谢!

3 个答案:

答案 0 :(得分:0)

入口控制器需要配置为help center article中所述的类型:LoadBalancer,它将创建一个外部LB来将流量路由到通过入口资源公开的服务,这是预期的方式去做吧。

将入口控制器公开为类型:NodePort时,该服务可通过here中所述的静态端口在每个Node的IP上访问。

答案 1 :(得分:0)

经过与Google支持人员的讨论,我们知道该服务类型是LoadBalancer,它在每个节点上创建一个IP表条目,该条目允许流量从端口80重定向到定义的节点端口。

因此,如果我们的用例需要显式创建ILB,并且我们的应用程序可以通过Node Port访问, 然后,“我们必须手动编辑每个kubernetes节点上的IP表,以便将流量从端口80重定向到节点端口”

答案 2 :(得分:0)

相关问题