一、换个视角看 Kurator:不是“多集群面板”,而是一层“分布式内核”

如果说上一篇【探索实战】更多是站在“使用者 + 落地实践”的视角,这次我们换个角度——
站在“架构师 + 开源参与者”的视角,去拆 Kurator 的技术底座和前瞻方向。

Kurator 在官方介绍里被定义为:

一个开源的分布式云原生平台,帮助用户构建自己的分布式云原生基础设施,加速企业数字化转型。

更具体一点:
它不是再造一套 Kubernetes,而是站在 Kubernetes / Istio / Prometheus / FluxCD / KubeEdge / Volcano / Karmada / Kyverno 等一整套云原生栈肩膀上,在上面加了一层“统一的、分布式的控制平面”。

从这个视角看:

  • Kubernetes ≈ 单集群的“操作系统内核”;

  • 各云厂商托管 K8s + 自家周边能力 ≈ 不同“发行版”;

  • Kurator 更像是“多云多集群的统一内核 + 管理平面”

    • 它不替代具体云厂商的计算存储网络;
    • 而是在它们之上,提供统一的资源编排、调度、流量、监控、策略等能力。

这篇文章会重点围绕三件事展开:

  1. 逐个拆解 Kurator 集成的那些“明星开源项目”到底解决什么问题;
  2. 分析 Kurator 在这些项目之上的“二次创新”——它到底做了哪些统一和抽象;
  3. 站在未来 3~5 年的时间尺度,聊聊“分布式云原生”还能往哪儿走,Kurator 可以怎样演进。

目标是:

让你不只是“会用 Kurator”,还可以从架构与社区角度,判断它适不适合你的下一代平台规划。✨

正如如下封面所言的那样:

二、Kurator 集成生态图谱:每一个组件背后的问题域

先不急着看 Kurator 本身,我们先把它“站在谁的肩膀上”捋清楚。根据官网与仓库说明,Kurator 集成了多种 CNCF 生态项目:

  • Kubernetes:集群与工作负载编排基础;
  • Istio:服务网格与流量治理;
  • Prometheus + Thanos + Grafana:监控与长周期指标存储和可视化;
  • FluxCD / GitOps 能力:声明式应用分发与持续交付;
  • Karmada:多集群调度与资源编排;
  • KubeEdge:云边协同与边缘节点治理;
  • Volcano:面向批处理和 AI 任务的队列式调度器;
  • Kyverno:策略治理与安全基线管理。

从问题域拆解一下,每个项目对应的“世界缺口”大致是:

项目 典型解决的问题
Kubernetes 单集群容器编排,Pod/Service/Deployment 等基础对象管理
Istio 服务间的可观测 / 熔断 / 灰度 / 安全通信,特别适合微服务与多集群 Mesh
Prometheus 指标采集与时间序列存储
Thanos 多集群 / 多 Prometheus 的集中查询、长期存储
FluxCD 让 Git 成为“真实状态源”的 GitOps 引擎
Karmada 把多个 K8s 集群的资源调度成“逻辑一体”的多集群编排
KubeEdge 解决边缘节点弱网、离线场景的应用与设备管理
Volcano 批处理 / AI 作业按队列调度,抢占、Gang 调度等高级功能
Kyverno 用 YAML 写策略,做合规 / 准入 / 配置模板等

Kurator 做的事情,可以理解为:

它接受“多云 + 多集群 + 多边 + 多种负载”的现实,然后基于这些基础组件,
再往上加了一层“统一的、Fleet 维度的抽象”,把原本“点状孤立”的能力变成“纵向贯通”的平台。

三、Kurator 的关键创新点:统一抽象而不是“再做一套 UI”

从官方文档、Roadmap、Release Note 来看,Kurator 的关键创新集中在几个方向:

  1. 以 Fleet 为中心的统一管理模型;
  2. 把“应用分发 + 流量策略 + 监控 + 策略”组合成一个分布式控制平面;
  3. 在多集群维度支持现代发布模型:灰度、A/B、蓝绿等统一发布。

下面我们聚焦几个核心点展开说,并穿插一些代码示例。

所以说,可以去体验下:

四、能力一:以 Fleet 抽象“成组集群”的管理单元

4.1 为什么需要 Fleet 抽象?

过去我们很多“多集群操作”是这样的:

  • 要在 10 个集群里部署 Prometheus?写 10 份 values 或脚本;
  • 要在 3 个 Region 做同一套服务?手动在 3 套 kubeconfig 上各 deploy 一次;
  • 要对一批集群开启同一策略?一顿 copy & paste。

本质问题在于:

你缺少一个“成组管理”的一等公民概念。

Kurator 引入 Fleet 概念,把一组具备某种共性的集群(同地域 / 同环境 / 同业务)当成一个逻辑对象来治理。

4.2 一个简化的 Fleet 示例(代码)

下面是一个抽象的 Fleet CR 样例(示例字段为说明用法,非严格对照官方 schema):

apiVersion: fleet.kurator.dev/v1alpha1
kind: Fleet
metadata:
  name: fleet-global-prod
  namespace: kurator-system
spec:
  # 被纳管的集群列表,可以是 AttachedCluster / ManagedCluster 等
  clusters:
    - name: prod-cn-north
      kind: AttachedCluster
    - name: prod-cn-south
      kind: AttachedCluster
    - name: prod-ap-sg
      kind: AttachedCluster

  # Fleet 维度启用的一些插件能力
  plugin:
    metric:
      thanos:
        objectStoreConfig:
          secretName: thanos-objstore
    policy:
      kyverno:
        podSecurity:
          standard: restricted
          validationFailureAction: Audit
    traffic:
      istio:
        enableMultiClusterMesh: true

思路可以归纳为一句话:

“我声明这几个集群是一支舰队(Fleet),
再声明这支舰队统一需要哪些能力(监控、策略、流量等),
剩下的下发部署和联动由 Kurator 自动完成。”

这就是“分布式云原生操作系统”的味道:你定义需求,Kurator 帮你在各集群里“铺开”。

当然,你也可以结合如下架构图进行分析:

五、能力二:在集成项目之上做“统一编排”和“分布式发布”

这一节我们从几个典型能力出发,看看 Kurator 在已有项目之上的“加法”。

5.1 基于 FluxCD 的多集群 GitOps:让 Git 真正变成“全局真实源”

Kurator 自身并不重新造 GitOps 轮子,而是基于 FluxCD/类似能力封装了一套 多集群应用分发模型。v0.4.0 版本开始,引入了基于 Fleet + GitOps 的统一应用分发能力。

5.1.1 一个多集群 Application 示例

下面是一个虚构的 Application CR,用来把 payment-service 分发到全球多个生产集群:

apiVersion: apps.kurator.dev/v1alpha1
kind: Application
metadata:
  name: payment-service-global
  namespace: app-system
spec:
  source:
    git:
      url: https://github.com/example-org/payment-platform-config.git
      ref:
        branch: main
      interval: 1m
      timeout: 60s

  # 同一个 Git 仓库,可以面向多个 Fleet 使用不同 Overlay
  rollouts:
    - name: global-prod-rollout
      targetFleet: fleet-global-prod
      kustomize:
        path: ./overlays/prod
        prune: true
        interval: 2m
  # 不同环境可以继续扩展
    - name: staging-rollout
      targetFleet: fleet-staging
      kustomize:
        path: ./overlays/staging

关键点:

  • Git 仓库作为唯一事实源
  • Kurator 负责在 Fleet 维度做渲染与分发;
  • 多集群应用状态统一由 Kurator 控制器对齐。

在实践中,这个模式直接把“多集群发布”变成了:

“改一次 Git + 看一次 Application 状态”。

对于有几十 / 上百个集群的大型企业,这是极大的心智负担收敛。

再者,大家请看如下架构图:

5.2 跨集群统一发布模型:灰度、A/B、蓝绿一把抓

在 v0.6.0 版本中,Kurator 支持了在 Fleet 中进行统一发布模型,包括 Canary、A/B Testing、Blue/Green 等。

这点非常关键——
过去很多 Mesh 或网关项目都支持灰度与 AB,但大多仍局限于“单集群或者单 Gateway”视角。
Kurator 把它提升到了“多集群统一发布”层面。

5.2.1 一个跨集群 Canary Rollout 示例(代码)

下面是一个概念性的 Rollout CR 示例,描述如何在多个集群中做统一的 Canary 发布(示意结构,字段为说明用途):

apiVersion: rollout.kurator.dev/v1alpha1
kind: FleetRollout
metadata:
  name: payment-service-canary
  namespace: app-system
spec:
  fleetRef:
    name: fleet-global-prod
    namespace: kurator-system

  # 需要进行灰度的目标 Workload
  targetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: payment-service
    namespace: payment-system

  strategy:
    type: Canary
    canary:
      steps:
        - setWeight: 10
          pause:
            duration: 5m
        - setWeight: 30
          pause:
            duration: 10m
        - setWeight: 50
          pause:
            duration: 10m
        - setWeight: 100

      trafficRouting:
        istio:
          virtualService:
            name: payment-service-vs
            namespace: istio-system
          # 可以在这里指定分流规则、header 等
          # 比如 header: x-user-group: beta

注意,这个 Rollout 是在 Fleet 维度定义的。意味着:

  • 同一套灰度策略可以在多个 Region / 多个集群中同步执行;
  • 每个集群里的 Istio / Gateway 配置由 Kurator 统一下发和调整;
  • 失败回滚可以统一由 Rollout 控制器决策。

这让“分布式发布”从“每个集群写一套”变成了“只写一套 FleetRollout”。


5.3 统一监控:Prometheus + Thanos + Fleet Metric 插件

Kurator 在监控方面的设计可以用一句话概括:

“每个集群一套 Prometheus + Sidecar,上层有 Thanos + Grafana 做统一视图,
再用 Fleet 的 metric 插件统一部署和管理。”

5.3.1 Metric 插件配置示例

Kurator 文档中给出了使用 Fleet 管理 metric 插件的示例,大致类似下面这样的结构(这里做了适当简化):

apiVersion: fleet.kurator.dev/v1alpha1
kind: Fleet
metadata:
  name: fleet-observed
  namespace: kurator-system
spec:
  clusters:
    - name: prod-cn-north
      kind: AttachedCluster
    - name: prod-cn-south
      kind: AttachedCluster

  plugin:
    metric:
      thanos:
        objectStoreConfig:
          secretName: thanos-objstore
      prometheus:
        scrapeInterval: 30s
        retention: 15d
      grafana:
        adminUser: "admin"
        adminPasswordSecretRef:
          name: grafana-admin
          key: password

效果就是:

  • 在纳管集群里自动铺开 Prometheus + Sidecar;
  • 在宿主集群部署 Thanos Query / Store / Query Frontend;
  • 完成多集群指标的一体化查询与可视化。

这比“每个集群手动部署 + 自己接 Thanos”要省去一大堆重复劳动。
而且——Kurator 把这件事做成了“一个 CR 的声明”。

正如这张,官方所给的架构图:

5.4 统一策略管理:Kyverno + Fleet 的“多集群安全基线”

在分布式云原生环境里,“统一安全策略”是个很容易被忽略但后期成本极高的点。Kurator 使用 Kyverno 作为策略引擎,并配合 Fleet 做策略集群间分发。

5.4.1 示例:统一禁止特权容器 + 要求资源配额

可以在 Git 中维护一套 Kyverno Policy 模板,然后通过 Kurator/Fleet 分发到多集群。

一个示意性的 Policy(代码):

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: pod-security-baseline
spec:
  validationFailureAction: Enforce
  background: true
  rules:
    - name: disallow-privileged
      match:
        any:
          - resources:
              kinds:
                - Pod
      validate:
        message: "Privileged containers are not allowed."
        pattern:
          spec:
            containers:
              - =(securityContext):
                  =(privileged): "false"

    - name: require-resources
      match:
        any:
          - resources:
              kinds:
                - Pod
      validate:
        message: "Container resources.requests/limits are required."
        pattern:
          spec:
            containers:
              - resources:
                  requests:
                    cpu: "?*"
                    memory: "?*"
                  limits:
                    cpu: "?*"
                    memory: "?*"

在 Kurator 里,你可以通过 Application 或专门的 Policy 分发 CR,把它发到特定 Fleet,保证“所有生产集群都执行同一个安全基线”。


六、从前瞻视角看:Kurator 未来可以走向哪些方向?

讲完“当下能做什么”,我们再来大胆一点,从趋势角度谈谈 Kurator 作为“分布式云原生平台内核”未来可以演进的几个维度。(以下属于个人判断与期望)

6.1 从“多集群”到“跨栈多运行时”:不仅仅是 K8s

当前 Kurator 的主战场还是 Kubernetes,以及围绕 K8s 的周边项目。

但如果拉长时间看,企业的计算面会越来越多样化:

  • K8s 只是其中一种调度器;
  • 还会有 Serverless 平台、函数计算、数据库即服务、消息中间件即服务等多种托管运行时;
  • 在边缘会有更多形态的轻量运行时(如 K3s、边缘容器/函数甚至 WebAssembly)。

前瞻想象:

  • Kurator 可以扩展出“多运行时插件模型”:

    • 把当前的 K8s 集群视作 runtime.k8s
    • 未来可以更自然地接入 Serverless/Function 平台、Wasm 运行时等;
  • Fleet 不再只是“K8s 集群舰队”,而是一个“异构运行时舰队”的抽象。

这样,Kurator 可能从“多集群平台”升级为“多运行时统一调度与编排平台”。

还有这张,技术架构图,结合起来理解:

6.2 AI-Native 的调度与发布:结合 Volcano / Karmada 做“算力视角的 Fleet”

在 AI 大模型 / 推理 / 训练任务成为主流负载后,调度视角正在从“纯 K8s 资源维度(CPU/内存)”转向:

  • 支持 GPU / NPU / 显存等资源类型;
  • 在线服务与离线训练竞争资源;
  • 多 Region 多集群之间做算力流动。

Kurator 已经引入 Volcano 和 Karmada 作为多集群调度与批处理作业的基础能力,这为其做 “AI Native” 平台提供了很好的起点。

前瞻设想:

  • 在 Fleet 层增加“算力视图”:

    • 把跨集群的 GPU/NPU 资源抽象成一个“算力池”;
    • 提供 AI Job 在 Fleet 层的统一队列与配额管理;
  • 联合 Volcano 的队列/抢占能力,实现“多集群、跨 Region 的 AI 作业动态调度”;

  • 在 Rollout 模型中对“在线推理服务”的灰度发布做原生支持,比如:

    • v1/v2 模型同时在多个集群部署;
    • 由 Kurator 控制跨集群、跨版本的流量迁移与自动回滚。

这会让 Kurator 在“AI 平台基础设施”赛道上具备天然优势。


6.3 FinOps 和成本可视化:从“资源视角监控”到“成本视角决策”

有了多集群监控之后,下一步的自然需求就是——多云成本分析和 FinOps 体系

Kurator 已经通过 Thanos + Fleet 解决了“多集群指标聚合”问题。

在此基础上,完全有空间做:

  • 不同云厂商、不同 Region 的成本模型接入;

  • 将指标数据与账单数据关联,生成“按业务 / 按服务 / 按 Fleet 的使用与成本视图”;

  • 帮助平台团队在多云场景下决策:

    • 哪些工作负载更适合放在成本较低的 Region;
    • 哪些批处理任务可以迁移到更便宜的集群上执行。

简化的设想:

apiVersion: finops.kurator.dev/v1alpha1
kind: CostPolicy
metadata:
  name: fleet-prod-finops
spec:
  fleetRef:
    name: fleet-global-prod
  objectives:
    - name: reduce-cross-region-cost
      target:
        maxMonthlyUSD: 50000
      strategies:
        - preferRegion: ap-southeast-1
        - avoidProvider: cloud-x

这类 CR 并不存在于当前版本中,但你能想象——
一旦 Kurator 引入 FinOps 模型,多云平台组会多一个非常硬核的“决策武器”。


6.4 零信任与安全一体化:策略从“静态 YAML”走向“实时评估”

今天 Kurator 通过 Kyverno + Fleet 做统一策略分发。

但“零信任”和“动态策略”会带来越来越复杂的安全治理需求,例如:

  • 不只是创建 Pod 时做静态校验,还要结合运行时信息做动态判断;
  • 将指标 / 日志 / 审计事件纳入策略判定的一部分;
  • 对用户、设备、环境等身份进行统一建模。

一个前瞻方向是:

  • 在 Kurator 控制平面加入“策略评估引擎”,

    • 将 Kyverno 的 YAML 策略扩展为可组合、可编排的策略图;
    • 允许策略引用 Thanos 指标、审计日志、外部身份源等信号;
  • 在 Fleet 维度定义“零信任安全域”:

    • 不同 Fleet 之间的访问,由 Kurator 统一管理 Service Mesh / 网关 / 策略联动。

这对于跨云、跨 Region 访问控制特别关键。


6.5 Cloud-Edge-Device 一体化:KubeEdge 只是第一步

Kurator 已经将 KubeEdge 纳入生态,用来解决云边协同。

未来更极端的场景是:

  • 边缘节点算力越来越强(GPU 直插边缘);
  • 设备数量级从“几百个节点”变成“几十万 IoT 设备”;
  • 需要从 Kurator 这一层去统一编排“云 + 边 + 端”的应用流转与数据通路。

可以想象的几个增强点:

  1. Fleet 中专门引入“EdgeFleet / DeviceFleet”概念:

    • 云侧 Fleet 管理数据中心和公有云集群;
    • 边缘 Fleet 管理 KubeEdge / 轻量集群;
    • Kurator 在两者之间提供“场景化编排”,例如边缘缓存、就近推理等。
  2. 与数据/流处理项目结合:

    • 把 Flink / Spark / Pulsar / Kafka 这类引擎抽象为“数据工作负载”;
    • 统一在 Kurator 平台上进行调度和拓扑治理。

这将让 Kurator 有机会成为“端边云一体的编排控制平面”。

如下这张,技术架构图,结合起来理解:

七、站在社区角度:Kurator 如何更好地发展?

从 GitHub 仓库、官方站点以及社区文章来看,Kurator 的开源节奏和文档建设在逐步完善:

  • 仓库中有清晰的 READMEROADMAPCONTRIBUTING 等;
  • 文档网站对 Fleet、Metric 插件、统一应用分发等能力有具体教程;
  • 版本发布内容会强调重要特性(比如统一应用发布模型、Canary 发布等)。

从一个“潜在贡献者”的角度,我个人对 Kurator 社区有几点期待:

  1. 更多“场景化”的官方样例仓库

    比如提供几个完整的 Demo 仓库:

    • kurator-demo-ecommerce:完整电商系统在多集群 + 多 Region 的部署示例;
    • kurator-demo-ai-platform:多集群 + Volcano + GPU 的 AI 平台样例;
    • kurator-demo-edge-iot:云边协同的 IoT 场景。

    这样新用户可以“照抄 + 改配置”快速上手,也能减少文章与文档之间的重复劳动。

  2. 把“分布式发布模型”进一步产品化

    目前 v0.6.0 支持的 Canary/A/B/蓝绿能力,如果配合可视化界面 + 指标联动(SLO 门槛、安全回滚等),会极大提升平台推广难度——平台工程师可以给业务团队一个非常直观的发布面板。

  3. 开放更多可插拔扩展点

    比如:

    • 允许用户在 Fleet 插件体系中方便地接入自研组件;
    • 将 Metric / Policy / Traffic / FinOps 等能力都做成“标准化插件接口”。

    这样 Kurator 不会变成“强意见的超级平台”,而是一块“可编程的基础设施内核”。

  4. 和其它多集群项目的协同而不是竞争

    比如 Karmada、OCM、Rancher 等:

    • 可考虑以“集成现有多集群控制面”为目标,而不是强行替换;
    • 用 Kurator 的统一编排能力去包装现有部署,降低迁移门槛。

八、一个“前瞻创想”小示例:把“应用 + 流量 + 观测”绑成一个声明式整体

最后,用一个完整但简化的 YAML 组合例子来收个尾:
想象 Kurator 未来的某个版本,我们可以用“一份声明”把应用、发布、流量和观测目标绑一起。

apiVersion: platform.kurator.dev/v1alpha1
kind: DistributedApp
metadata:
  name: checkout-service
  namespace: app-system
spec:
  fleetRef:
    name: fleet-global-prod

  source:
    git:
      url: https://github.com/example-org/checkout-platform.git
      ref:
        branch: main
      path: ./deploy/overlays/prod

  rollout:
    strategy: Canary
    steps:
      - setWeight: 20
        pause:
          duration: 5m
      - setWeight: 50
        pause:
          duration: 10m
      - setWeight: 100
    trafficRouting:
      istio:
        virtualServiceName: checkout-vs
        headerRouting:
          - header: "x-user-group"
            value: "beta"

  observability:
    slo:
      availability:
        objective: "99.9"
        query: |
          sum(rate(http_requests_total{app="checkout",status!~"5.."}[5m]))
          /
          sum(rate(http_requests_total{app="checkout"}[5m]))
      latency:
        objective: "95%<200ms"
        query: |
          histogram_quantile(0.95,
            sum(rate(http_request_duration_seconds_bucket{app="checkout"}[5m])) by (le)
          )

  policy:
    securityBaseline: "restricted"
    extraKyvernoPoliciesRef:
      - name: checkout-extra-rules
        namespace: policy-system

虽然这个 DistributedApp 资源现在还不存在,但它背后的想法就是:

分布式云原生设计的终极形态,是让‘应用本身 + 发布策略 + 观测目标 + 安全策略’
一起变成一个声明式的整体,然后交给平台去保障实现。

从这个角度看,Kurator 已经在路上了:

  • Application 管理部分 sourcerollout
  • Metric + SLO 部分可以基于 Prometheus/Thanos + 额外 CR 实现;
  • Policy 部分有 Kyverno + Fleet 打底;
  • 流量则由 Istio Mesh + Rollout 控制。

剩下的,就是把这些能力设计为自然、好用的统一抽象


九、结语:Kurator 的“前瞻价值”,在于帮我们少走弯路

站在“前瞻创想”的视角,我更愿意把 Kurator 看成:

  • 不是一个“又一套多集群控制台”;

  • 而是一块逐步成型的分布式云原生操作系统内核——

    • 它尝试把现有云原生组件组合成一个“工程上可落地”的整体;
    • 又保持开源与可扩展,让企业可以在上面继续做定制与增强。

对正在规划多云、多集群、云边一体平台的团队来说,Kurator 的价值有三点:

  1. 少踩坑: 很多“自己拼一套 Istio + Thanos + Karmada + GitOps”的坑,Kurator 已经帮你踩过一遍;
  2. 更统一: 用 Fleet / Application / Rollout / Metric / Policy 等一系列 CRD,把分布式复杂度包装成有边界的抽象;
  3. 可演进: 它的架构天然适合向 AI、FinOps、零信任、端边云一体等方向扩展。

如果你已经在用 Kubernetes、Istio、Prometheus、GitOps 等组件,却仍然觉得“多云多集群越来越难管”,
不妨把 Kurator 作为你下一阶段平台演进的一个可选基石,
让自己少写一点脚本,多写一点声明式“分布式内核配置”。😉

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐