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

如何在K8s的Traefik中配置特定路由分流至不同服务?

在K3s中通过Traefik实现路由分流配置

你可以通过在现有IngressRoute中添加优先级更高的路由规则来实现特定路由的转发,Traefik会按路由定义的顺序匹配请求,先匹配到的规则生效。以下是修改后的完整配置:

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: staging-api
  namespace: api
  labels:
    app: staging-api
  annotations: 
    kubernetes.io/ingress.class: traefik-external
spec:
  entryPoints:
    - websecure
  routes:
    # 匹配/api/update路由,转发至Golang服务
    - match: Host(`staging-api.local.com`) && PathPrefix(`/api/update`)
      kind: Rule
      services:
        - name: golang-update-service  # 替换为你的Golang服务实际名称
          namespace: momo  # 若Golang服务在其他命名空间,修改此处
          port: websecure  # 替换为Golang服务的端口名称或端口号
    # 兜底匹配该Host下所有其他请求,转发至FastAPI服务
    - match: Host(`staging-api.local.com`)
      kind: Rule
      services:
        - name: staging-api
          namespace: momo
          port: websecure

关键注意事项:

  • 路由顺序:必须把/api/update的匹配规则放在前面,否则会被兜底的Host匹配规则优先拦截
  • 匹配逻辑:用&&同时组合Host和PathPrefix条件,确保只有目标路由的请求会被转发到Golang服务
  • 服务配置:请根据实际部署情况调整Golang服务的名称、命名空间和端口信息

确保Golang服务已在K3s集群中正常部署,且Traefik具备访问该服务的权限(同命名空间无需额外配置,跨命名空间需确认权限规则)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 11:01:37