【发布时间】:2021-01-23 15:59:06
【问题描述】:
我已经安装了 Ingress 并将我的服务链接到它(usign metallb)。
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /api/tasks/*
# pathType: Exact
backend:
serviceName: tasks-service
servicePort: 5004
事情是这样的,我在部署中将路径的默认前缀设置为
/api/tasks/
其中/api/tasks/tasks 显示服务已启动,而/api/tasks/tasks_count 提供总数。但是在我的 k8s 集群中,我无法重定向到服务中的不同路径。可能是什么问题?
【问题讨论】:
-
据我所知,路径匹配是最长匹配获胜,所以
*隐含在每个path:的末尾,并且在所有条件相同的情况下,几乎可以肯定你真的不想要rewrite-target: /,否则它会将/发送到后端服务,因为没有使用捕获组。您的意思是在集群之外,URI 是/api/tasks/tasks,但tasks-service应该只接收/tasks?如果是这样,你会想要path: /api/tasks/(.+),然后是rewrite-target: /$1
标签: nginx kubernetes kubernetes-ingress