Я перехожу с nginx-ingress на traefik, и у меня возникают проблемы с переносом правила для отображения панели управления kubernetes.Это хорошо документированная ошибка, что панель управления не будет работать, если к ней нет доступа через косую черту.См. здесь для примера и обходной путь nginx.Я не могу воспроизвести эту функциональность, используя traefik.Вот что у меня сейчас есть
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: dashboard
namespace: kube-system
annotations:
ingress.kubernetes.io/auth-type: forward
ingress.kubernetes.io/auth-url: http://traefik-oauth2.ingress
ingress.kubernetes.io/rewrite-target: '/'
ingress.kubernetes.io/redirect-regex: /dash$
ingress.kubernetes.io/redirect-replacement: /dash/
ingress.kubernetes.io/redirect-permanent: "false"
ingress.kubernetes.io/custom-request-headers: >-
Authorization: Bearer <redacted>
spec:
tls:
- hosts:
- <redacted>
rules:
- host: <redacted>
http:
paths:
- path: /dash
backend:
serviceName: kubernetes-dashboard
servicePort: http
Что я заметил, так это то, что, похоже, есть конфликт с аннотацией rewrite-target
.Когда я удаляю это, я вижу (просматривая URL в моем браузере), что /dash
правильно перенаправлен на /dash/
.К сожалению, это приводит к 404 ошибкам, поскольку rewrite-target
необходимо, чтобы получить панель мониторинга, используя правильные пути.
Итак, вопрос в том, как правильно перенести этот вход из nginx?