我正在从nginx-ingress迁移到traefik,并且在移植规则以暴露kubernetes仪表板时遇到困难。这是一个有据可查的错误,如果不使用斜杠来访问仪表板,它将无法工作。例如,请参见here和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迁移此入口?