入口控制器nginx kubernetes不起作用



我在部署在minikube中的入口控制器nginx kubernetes中遇到问题: 当我包含nginx将用于重定向请求的路由时,它不起作用,但是当我删除路由时,它起作用了: 所以,正如 yaml 文件中解释的那样,当我使用/category 时它不起作用,但是只有/它正在工作

---- load balancer ---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: spare-ingress-dev
namespace: default
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: cluster-test-ip
servicePort: 80
- path: /category/
backend:
serviceName: cluster-category-ip
servicePort: 5200
----service-----
apiVersion: v1
kind: Service
metadata:
name: cluster-category-ip
spec:
selector:
app: category
ports:
- port: 5200
targetPort: 5200
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: spare-ingress-dev
namespace: default
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/app-root: /
spec:
rules:
- host: cluster.io
http:
paths:
- path: /api/v1.0/auth/(.+)
backend:
serviceName: cluster-auth-ip
servicePort: 6000
- path: /api/v1.0/category/(.+)
backend:
serviceName: cluster-category-ip
servicePort: 5200
- path: /category/(.+)
backend:
serviceName: cluster-category-ip
servicePort: 5200

我找到了解决方案 我删除了nginx.ingress.kubernetes.io/rewrite-target: $1我添加了

kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/app-root: /

你能试试这个吗——

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: spare-ingress-dev
namespace: default
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: $1
spec:
rules:
- http:
paths:
- path: /(.*)
backend:
serviceName: cluster-test-ip
servicePort: 80
- path: /category/(.*)
backend:
serviceName: cluster-category-ip
servicePort: 5200

最新更新