跳到正文
Træfɪk

Traefik 与 Knative

使用 Knative 提供者时,Traefik 通过 Knative 的自定义资源定义(CRD)获取路由配置。 Knative 概念和资源的详细信息,请参阅官方文档。

Knative 提供者支持 v1.19.0 和 v1.20.0 版本的规范。

部署 Knative 服务

Service 是 Knative 规范的核心资源,用于定义流量进入 Knative 应用的入口。 它关联到一个 Ingress,后者指定负责管理和处理流量的 Knative 网络控制器, 确保流量被发送到适当的 Knative 后端服务。

下面的 Service 清单将运行中的 Traefik 控制器配置为处理传入流量。

---
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go
  namespace: default
spec:
  template:
    spec:
      containers:
        - image: gcr.io/knative-samples/helloworld-go
          env:
            - name: TARGET
              value: "Go Sample v1"

全部部署完成后,向 HTTP 端点发送 GET 请求,应得到以下响应:

$ curl http://helloworld-go.default.example.com

Hello Go Sample v1!

说明

example.com 是部署 Traefik 控制器时配置的公共域名。 更多信息请参阅安装配置。

基于标签的路由

要在 Knative 中添加基于标签和百分比的路由,可以在 Service 清单的 traffic 配置段中,为不同修订版本指定标签和流量百分比。 以下是一个示例:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go
  namespace: default
spec:
  template:
    spec:
      containers:
        - image: gcr.io/knative-samples/helloworld-go
          env:
            - name: TARGET
              value: "Go Sample v2"
  traffic:
    - tag: v1
      revisionName: helloworld-go-00001
      percent: 50
    - tag: v2
      revisionName: helloworld-go-00002
      percent: 50

在此示例中: - traffic 配置段指定两个修订版本(helloworld-go-00001 和 helloworld-go-00002),分别带有 v1 和 v2 标签,各接收 50% 的流量。 - tag 字段允许使用标签将流量路由到特定修订版本。

可以通过以下 URL 访问带标签的修订版本:

  • http://v1-helloworld-go.default.example.com
  • http://v2-helloworld-go.default.example.com

使用默认 URL 访问按百分比分配的路由:

  • http://helloworld-go.default.example.com

HTTP/HTTPS

HTTP/HTTPS 配置请参阅 Knative 文档。


在生产环境使用 Traefik OSS?

如果你在工作中使用 Traefik,可以考虑为 Traefik OSS 增加企业级 API 网关能力或商业支持。

为 Traefik OSS 增加 API 网关能力快捷且平滑,无需推倒重来,现有配置也会完整保留。请通过这个简短视频了解实际效果。


版权所有 © 头文件软件工作室

文档由 HeadFile Studio 翻译。

Traefik v3.7 中文快照 · 原文版权归 Traefik Labs 及贡献者所有 · MIT 许可证