Nginx Ingress最近有变化吗?出乎意料的是我现在得到了#34;连接被拒绝"错误。我认为这是我自己的配置,它适用于以前的集群。
相反,我决定按照本教程GKE NGINX INGRESS进行操作,并获得相同的结果。
$ kubectl get deployments --all-namespaces
NAMESPACE NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
default hello-app 1 1 1 1 13m
default nginx-ingress-controller 1 1 1 1 12m
default nginx-ingress-default-backend 1 1 1 0 12m
我看到默认后端没有运行,但我对Kubernetes了解不足以了解是否阻止了一切正常工作。
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-app ClusterIP 10.31.255.90 <none> 8080/TCP 14m
kubernetes ClusterIP 10.31.240.1 <none> 443/TCP 19m
nginx-ingress-controller LoadBalancer 10.31.251.198 35.227.50.24 80:31285/TCP,443:30966/TCP 14m
nginx-ingress-default-backend ClusterIP 10.31.242.167 <none> 80/TCP 14m
最后:
$ kubectl get ing
NAME HOSTS ADDRESS PORTS AGE
ingress-resource * 35.237.184.85 80 10m
根据教程,我应该可以转到here获得200而here获得404。
我已经离开了这些链接,所以你们都可以看到它们。
$ curl -I http://35.237.184.85/hello
curl: (7) Failed to connect to 35.237.184.85 port 80: Connection refused
我发誓之前所做的一切,我唯一能想到的就是来自nginx-ingress的出纳员安装的东西发生了变化。
请,任何帮助表示赞赏!提前谢谢!
答案 0 :(得分:7)
那是因为您正在尝试针对Ingress创建的IP地址的请求。您的入口点是LoadBalancer类型的服务创建的IP。
试试curl -I http://35.227.50.24/hello
。这就是你将获得200的地方。
答案 1 :(得分:-2)
好的,所以观看了6k,这是不对的。让我们解决这个问题:
我看到default-backend没有运行,但是我对Kubernetes的了解还不足以知道这是否在阻止一切正常运行。
defaut后端是服务于hello和healthz页面的东西。不是runnig =没有页面
A记录应指向域的LoadBalancer服务IP吗?我以为流量应该达到入口IP,特别是如果您想要SSL。
是的,您应该始终指向入口的IP。这就是他们处理基于命名的http(s)请求以路由到适当的服务并处理TLS / SSL内容的入口点(对于https)。如果打算这样做,请确保在群集上配置了类似于cert-manager的证书授权。