У меня проблемы с настройкой входных маршрутов при перезаписи. Мои определения входящего трафика:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: mw-abcd
spec:
rules:
- http:
paths:
- path: /abcd/v1
backend:
serviceName: mw-abcd-v1
servicePort: 80
- path: /abcd/v2
backend:
serviceName: mw-abcd-v2
servicePort: 80
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: mw-abcd-backward-comp
annotations:
traefik.ingress.kubernetes.io/rewrite-target: /abcd/v1
spec:
rules:
- http:
paths:
- path: /abcd
backend:
serviceName: mw-abcd-v1
servicePort: 80
Я хочу добиться того, чтобы каждый запрос без суффикса /v1
перенаправлялся на серверную часть с этим суффиксом, а запросы, содержащие версию, должны маршрутизироваться как есть. Что происходит, так это то, что те, у кого есть /v1
, все равно перенаправляются на /v1/v1
. Таким образом, приоритет - взять второе правило как первое. Я попытался установить приоритеты вручную с помощью соответствующих аннотаций:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: mw-abcd
annotations:
traefik.ingress.kubernetes.io/priority: "1"
spec:
rules:
- http:
paths:
- path: /abcd/v1
backend:
serviceName: mw-abcd-v1
servicePort: 80
- path: /abcd/v2
backend:
serviceName: mw-abcd-v2
servicePort: 80
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: mw-abcd-backward-comp
annotations:
traefik.ingress.kubernetes.io/rewrite-target: /abcd/v1
traefik.ingress.kubernetes.io/priority: "2"
spec:
rules:
- http:
paths:
- path: /abcd
backend:
serviceName: mw-abcd-v1
servicePort: 80
но затем все будет бэкэнд по умолчанию и повторный запуск 404.
Есть идеи, что здесь не так?