未找到Kubernetes入口非根路径404

时间:2018-08-25 23:07:21

标签: nginx kubernetes kubernetes-ingress nginx-ingress

我尝试使用ListBox

时,以下配置有效
<NodeIP>:30080

我正在尝试使用Ingress:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: app-deployment
spec:
  replicas: 3
  template:
    metadata:
      labels:
        name: app-node
    spec:
      containers:
        - name: app
          image: myregistry.net/repo/app:latest
          imagePullPolicy: Always
          ports:
            - containerPort: 8080
          env:
            - name: NODE_ENV
              value: production
---
apiVersion: v1
kind: Service
metadata:
  name: app-service
spec:
  selector:
    name: app-node
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
      nodePort: 30080
  type: NodePort

apiVersion: extensions/v1beta1 kind: Ingress metadata: name: nginx-ingress spec: rules: - host: myhost.com http: paths: - path: /app backend: serviceName: app-service servicePort: 80 与nginx简介屏幕一起使用,但是myhost.com给出myhost.com/app。我的设置中的问题在哪里?


更新:

404 Not Found

如果我执行root路径,它可以工作,但是 - path: / backend: serviceName: app-service servicePort: 80 怎么不行?

1 个答案:

答案 0 :(得分:5)

您的入口定义创建规则来代理从{path}{backend.serviceName}{path}的流量。对于您的情况,我认为它不起作用的原因是/app被代理到app-service:80/app,但是您打算在/根上提供流量。尝试将此注释添加到您的入口资源中:nginx.ingress.kubernetes.io/rewrite-target: /

来源:https://github.com/kubernetes/ingress-nginx/tree/master/docs/examples/rewrite