Mar*_*arc 4 kubernetes-ingress traefik-ingress
我有一个可以响应的后端服务,/
但我希望它在入口路由上运行myhost.com/overview
。无论我尝试哪种配置,traefik 都不会删除路径/overview
- 我可以看到后端正在获取/overview
.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: registry-ingress
namespace: ingress
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: myhost.com
http:
paths:
- path: /overview
pathType: Prefix
backend:
service:
name: overview
port:
number: 8079
Run Code Online (Sandbox Code Playgroud)
我尝试过几种变体:
traefik.ingress.kubernetes.io/rewrite-target: /$1
...
- path: /overview(.*)
Run Code Online (Sandbox Code Playgroud)
但这些会导致入口/overview
请求未到达后端时出现 404。
总之,我想https://myhost.com/overview/
访问后端/
。
小智 9
Traefik 不支持traefik.ingress.kubernetes.io/rewrite-target
注释。请参阅此处的可用注释列表: https://doc.traefik.io/traefik/routing/providers/kubernetes-ingress/#annotations
但使用StripPrefix中间件可以实现您的目标。
---
# Middleware
# Strip prefix /overview
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: mw-admin
namespace: ingress
spec:
stripPrefix:
forceSlash: false
prefixes:
- /overview
---
# Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: registry-ingress
namespace: ingress
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/router.middlewares: ingress-mw-admin@kubernetescrd
spec:
tls:
- hosts:
- myhost.com
secretName: tls-secret
rules:
- host: myhost.com
http:
paths:
- path: /overview
pathType: Prefix
backend:
service:
name: overview
port:
number: 8079
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5187 次 |
最近记录: |