Nginx入口控制器返回404 Kubernetes

时间:2020-08-16 01:18:25

标签: docker nginx kubernetes kubernetes-ingress

我正在尝试创建一个入口控制器,该入口控制器指向通过NodePort公开的服务。

这是入口控制器的yaml文件(取自https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/):

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - host: hello-world.info
    http:
      paths:
      - path: /
        backend:
          serviceName: appName
          servicePort: 80

我可以直接连接到节点端口,并显示前端。

请注意,我这样做是因为前端应用程序无法连接到我创建的其他部署,并且我读到Ingress控制器可以解决此问题。我还需要添加Nginx反向代理吗?如果是这样,我该怎么做?我尝试将其添加到nginx配置文件中,但没有成功。

location /middleware/ {
      proxy_pass http://middleware/;
   }

1 个答案:

答案 0 :(得分:2)

您必须使用正确的主机名才能到达Ingress对象中定义的路由。更新您的/etc/hosts文件或使用curl -H "hello-world.info" localhost type命令。或者,您可以删除host映射并将所有流量重定向到一项默认服务。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: appName
          servicePort: 80