Ste*_*fen 4 kubernetes kubernetes-ingress k3s
我在 Ubuntu 20.04 上使用 k3s v1.22.7。我想/bar/xyz
加入/xyz
豆荚。如果没有中间件,我可以正确路由到 Pod,有了它,我可以从 Traefik 获得,就好像从/404
中剥离发生在 Ingress 路径评估之前一样。网上的例子都是这样的……replacePathRegex
stripPrefix
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: strip-prefix
spec:
#replacePathRegex:
# regex: ^/(?:[^/]+)/(.*)
# replacement: /$1
stripPrefix:
prefixes:
- /bar
- /baz
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: foo-ingress
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/router.middlewares: strip-prefix@kubernetescrd
spec:
rules:
- host: example.org
http:
paths:
- path: /bar
pathType: Prefix
backend:
service:
name: foo-service
port:
number: 5001
- path: /baz
pathType: Prefix
backend:
service:
name: foo-service
port:
number: 5002
Run Code Online (Sandbox Code Playgroud)
看起来中间件需要命名空间前缀,所以要么
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: strip-prefix
# No namespace defined
spec:
stripPrefixRegex:
regex:
- ^/[^/]+
---
kind: Ingress
metadata:
annotations:
traefik.ingress.kubernetes.io/router.middlewares: default-strip-prefix@kubernetescrd
Run Code Online (Sandbox Code Playgroud)
或者
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: strip-prefix
namespace: example # Namespace defined
spec:
stripPrefixRegex:
regex:
- ^/[^/]+
---
kind: Ingress
metadata:
annotations:
traefik.ingress.kubernetes.io/router.middlewares: example-strip-prefix@kubernetescrd
Run Code Online (Sandbox Code Playgroud)
应该管用。
(来源)
归档时间: |
|
查看次数: |
6886 次 |
最近记录: |