You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Traefik v1.7 Ingress配置:路径前缀匹配转发至后端K8s服务

Traefik v1.7 Kubernetes Ingress 完整配置方案

以下是满足你需求的完整Ingress配置,包含M1、M2、M3的路由规则:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: mytest-ingress
  annotations:
    kubernetes.io/ingress.class: "traefik"
    # 为M3配置路径重写:将请求路径中的/foo前缀替换为/api
    traefik.ingress.kubernetes.io/rewrite-target: /api
    # 采用路径前缀匹配模式,确保/foo下的子路径也能正确转发
    traefik.ingress.kubernetes.io/rule-type: "PathPrefix"
spec:
  rules:
  - host: mytest.com
    http:
      paths:
      # 根路径转发到M1服务的80端口
      - path: /
        backend:
          serviceName: m1-service
          servicePort: 80
      # /api路径转发到M2服务的8000端口
      - path: /api
        backend:
          serviceName: m2-service
          servicePort: 8000
      # /foo路径转发到M3服务的5000端口,配合rewrite-target重写为/api
      - path: /foo
        backend:
          serviceName: m3-service
          servicePort: 5000

关键配置说明

  1. Ingress类指定:kubernetes.io/ingress.class: "traefik" 必须添加,告诉Kubernetes使用Traefik处理该Ingress规则。
  2. M3路径重写:traefik.ingress.kubernetes.io/rewrite-target: /api 是实现mytest.com/foo → M3的/api的核心,它会将所有匹配/foo前缀的请求路径替换为/api后转发给M3服务。
  3. 匹配模式:rule-type: "PathPrefix" 确保/foo以及/foo/xxx这类子路径请求都能被正确匹配并转发,如果你只需要精确匹配/foo,可以把path改为/foo$并去掉该annotation。
  4. 服务映射:每个path对应的serviceName和servicePort要和你实际创建的K8s Service名称、端口完全一致。

验证方法

部署配置后,可通过以下方式验证:

  • 查看Ingress状态:kubectl describe ingress mytest-ingress
  • 测试M3路由:curl -H "Host: mytest.com" http://<你的Traefik节点IP>/foo,确认返回M3服务/api路径的响应。

内容的提问来源于stack exchange,提问作者user1452759

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 20:03:27