kubernetes Nginx控制器返回404 Not Found On Path and Default Backend(在路径和默认后端上找不到)

y3bcpkx1  于 2022-11-02  发布在  Kubernetes
关注(0)|答案(2)|浏览(313)

我已经使用Vagrant创建了一个kubernetes集群。我创建了一个Nginx pod和一个集群IP服务。我可以 curl pod和服务,并获得成功的结果。我现在已经从以下位置安装了一个Nginx入口控制器:https://kubernetes.github.io/ingress-nginx/deploy/#bare-metal-clusters并运行以下命令:kubectl create ingress nginxingress --rule="/nginx=nginx-service:80" --annotation nginx.ingress.kubernetes.io/rewrite-target=/ --default-backend=nginx-service:80,它们都设置正确,据我所知,没有错误。但每当我尝试 curl 路径,然后它失败,控制器不断抛出404未找到。一些更多的信息,可能会有所帮助:

服务

入口

任何帮助都将不胜感激

kg7wmglp

kg7wmglp1#

尝试将入口类注解添加到入口配置中。kubernetes.io/ingress.class: "nginx"
请使用以下YAML作为参考,并尝试更新配置。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-myserviceb
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: myserviceb.foo.org
    http:
      paths:
      - path: /nginx
        pathType: Prefix
        backend:
          service:
            name: nginx-service
            port:
              number: 80
9o685dep

9o685dep2#

有同样的问题,但已经使用kubernetes.io/ingress.class: "nginx"作为在苛刻的Manvar回答。
如果您需要匹配多个URL,而不是像我一样只匹配基本的主机URL,请在您的入口用途:

  1. spec.rules.[your-host].path: "/(.*)"
  2. spec.rules.[your-host].path: Prefix
    1.元数据.注解. nginx.ingress.kubernetes.io/use-regex: "true"
    有关此配置here的更多详细信息
    OBS:有时更新一个入口不工作,您可能需要删除并重新创建该入口。

相关问题