У Traefik проблемы с маршрутизацией маршрутов с частично перекрывающимися именами и правилами перезаписи

У меня проблемы с настройкой входных маршрутов при перезаписи. Мои определения входящего трафика:

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.

Есть идеи, что здесь не так?


person Morishiri    schedule 19.10.2018    source источник


Ответы (1)