![](/img/trans.png)
[英]traefik pathprefixstrip with kubernetes ingress and redirect doesn't work
[英]How do I get traefik.ingress.kubernetes.io/rule-type: PathPrefixStrip to work?
我有以下 kubernetes 清單
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: traefik-external
traefik.ingress.kubernetes.io/router.entrypoints: websecure, web
traefik.ingress.kubernetes.io/rule-type: PathPrefixStrip
name: ingressname
namespace: thenamespace
spec:
rules:
- host: my.host
http:
paths:
- backend:
serviceName: theservice
servicePort: 8080
path: /api
就吃的服務, theservice
,偵聽/
我期望的URL my.host/api/something/anotherthing
匹配/something/anotherthing
在theservice
。 不過,這不會發生在我身上,我得到了一個 404。
任何想法可能有什么問題?
在從 v1 到 v2 的過渡期間,Traefik 的許多內部部分和組件被重寫和重組。 因此,前端和后端等核心概念的組合已被路由器、服務和中間件的組合所取代。
在 v2 轉換中,傳入請求的 URL 路徑前綴配置有中間件對象,在路由步驟之后使用路由器規則PathPrefix
。
使用 v1,它是在入口級別定義的:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: traefik
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/rule-type: PathPrefixStrip
spec:
rules:
- host: company.org
http:
paths:
- path: /admin
backend:
serviceName: admin-svc
servicePort: admin
在 v2 中,您還定義了 ingress-route 旁邊的中間件對象:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: http-redirect-ingressRoute
namespace: admin-web
spec:
entryPoints:
- web
routes:
- match: Host(`company.org`) && PathPrefix(`/admin`)
kind: Rule
services:
- name: admin-svc
port: admin
middlewares:
- name: admin-stripprefix
---
kind: Middleware
metadata:
name: admin-stripprefix
spec:
stripPrefix:
prefixes:
- /admin
可以在此處找到更多信息: 前端和后端已死...
... 萬歲路由器、中間件和服務
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.