Tom*_*son 4 kubernetes traefik traefik-ingress
我有以下 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
Run Code Online (Sandbox Code Playgroud)
拥有一个服务 ,theservice它监听/我希望 url与中my.host/api/something/anotherthing的匹配。但这不会发生在我身上,我得到了 404 回复。/something/anotherthingtheservice
有什么想法可能是错的吗?
在从 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
Run Code Online (Sandbox Code Playgroud)
使用 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
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: admin-stripprefix
spec:
stripPrefix:
prefixes:
- /admin
Run Code Online (Sandbox Code Playgroud)
更多信息可以在这里找到:
前端和后端已死……
路由器、中间件和服务万岁
| 归档时间: |
|
| 查看次数: |
3080 次 |
| 最近记录: |