开源 Kubernetes 控制器

通过 Cloudflare
连接你的服务。

使用 Kubernetes 资源管理隧道、DNS 和 Access。服务发生变化时,cfgate 持续同步 Cloudflare 配置。

cfgate 的工作方式

你定义配置,cfgate 持续保持同步。
  1. 01

    配置 .

    使用 Kubernetes 资源描述隧道、路由和 DNS 记录,与服务配置一起维护。

    配置可纳入 Git 版本管理
  2. 02

    保护 .

    选择需要 Cloudflare Access 保护的路由,并为对应应用关联策略。公开路由可以保持公开。

    按需启用 Access 保护
  3. 03

    部署 .

    cfgate 运行隧道连接器、应用 Cloudflare 配置,并持续协调后续变更。

    持续管理配置

Access 保护需要显式启用。严格身份验证还应在源站执行。 阅读保护指南

从配置到基础设施

为路由指定明确的目标。

这个 HTTPRoute 将 app.example.com 指向 web Service。cfgate 将其转换为隧道入口配置。

route.yaml
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: web
spec:
  parentRefs:
    - name: public
  hostnames:
    - app.example.com
  rules:
    - backendRefs:
        - name: web
          port: 8080
app.example.com cloudflared web:8080
路由
主机名和后端来自 HTTPRoute。
DNS
CloudflareDNS 资源通过隧道发布该主机名。
可选的 Access 保护
添加 Access 应用与策略,然后在路由上显式要求保护。公开路由无需 Access 配置。

示例片段:假定同一命名空间中已有名为 public 的 cfgate Gateway、关联隧道和 web Service。DNS 由 CloudflareDNS 单独管理。

融入你的 Kubernetes 工作流程

在 Git 中管理配置

沿用现有的 Git 工作流程,一起审查 Cloudflare 配置与服务清单的变更。

熟悉的基础组件

使用 Gateway API 路由和 Kubernetes 资源,延续现有工具和工作方式。

开放协作

阅读源码、反馈问题,或在 Apache 2.0 许可证下贡献代码。

开始使用

连接你的第一个服务。

安装控制器,添加 Cloudflare 凭据,连接第一个服务。快速入门指南将带你完成每一步。

安装指南
使用 Helm 安装
helm install cfgate oci://ghcr.io/cfgate/charts/cfgate \
  --namespace cfgate-system --create-namespace

需要 Kubernetes、Gateway API CRD 和 Cloudflare 凭据。支持的版本与配置方法请参阅指南。

一起改进 cfgate。

欢迎分享使用经验、报告问题或提交改进。实际部署中的反馈有助于确定项目方向。