Nginx Ingress for Kubernetes" Connection拒绝"

时间:2018-06-16 15:22:53

标签: nginx kubernetes google-kubernetes-engine

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的出纳员安装的东西发生了变化。

请,任何帮助表示赞赏!提前谢谢!

2 个答案:

答案 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的证书授权。