我有以下设置:
- 具有私有节点的 GKE 集群
- NAT 路由器为具有静态 IP 的节点提供出站互联网访问
- 默认设置中的 nginx 入口控制器(根据文档)
nginx 入口控制器使用自己的外部 IP 创建自己的负载均衡器,但是当我 curl 该 IP 时,我得到的是空响应而不是默认的 nginx 后端。
我不确定负载均衡器和实例组之间是否存在问题,还是负载均衡器本身存在问题或其他问题。
答案1
在提供的场景中,除了设计之外没有更多信息,解决这个问题会非常困难。有几个组件可能会导致此行为:防火墙、健康检查、nginx 服务器后端配置……
为了进一步帮助您或获得更好的帮助,如果您能提供有关您的问题的更多信息,将会非常有帮助:错误消息、Ingress 控制器配置、您为实现此问题所遵循的步骤或指南。
请注意不要分享任何可能影响您的隐私和安全的信息。
与此同时,我发现了这一点在 Google Kubernetes Engine 上使用 NGINX 控制器进行 Ingress文档逐步说明如何在 Google Kubernetes Engine 上部署 NGINX Ingress Controller。此信息可能对您有用。
答案2
我没有明确的原因,我只能说,如果按照 GKE 的步骤操作https://kubernetes.github.io/ingress-nginx/deploy/在新的 GCP 试用帐户上(在具有固定 IP 的 catch-all NAT 的私有节点集群上),然后访问公共 LB IP 会给出空响应。步骤(获得空响应而不是默认后端):- 全新的干净 GCP 帐户(如试用)- 具有私有节点的 GKE 集群 - 固定 IP 和覆盖整个区域的基本 NAT - 按照文档使用 kubectl apply 部署 Nginx(创建服务帐户 + 通用部分 + gke 特定步骤)
如果使用 helm 来执行(步骤在同一页面上,基本上是服务帐户 + helm install),一切都很好。