
前言
Kurator作为一个开源的分布式云原生平台,真正实现了"告别繁琐,一栈统一"的理念,它整合了Karmada、KubeEdge、Volcano、Istio、Prometheus、FluxCD、Kyverno等业界主流开源项目,在其基础上提供了舰队(Fleet)管理能力,实现多集群统一的集群生命周期治理、应用分发、流量治理、监控和策略管理。
这次,我将分享自己从零到一使用Kurator搭建分布式云原生环境的完整实战过程,包括环境搭建步骤、安装中遇到的小问题及解决办法,以及对几个核心功能的实际使用体验和分析。希望我的分享能帮助更多新手快速上手Kurator,一起探索分布式云原生的魅力!
如下是Kurator项目开源首页:

一、Kurator简介与为什么选择它
Kurator是一个开源的分布式云原生平台,旨在帮助用户构建自己的分布式云原生基础设施,支持企业数字化转型。它特别适合多云、多集群场景,包括云-边协同、边-边协同等复杂环境。核心优势在于集成多个优秀开源项目,提供一站式解决方案:
- 统一资源编排:基于Karmada实现多集群应用分发。
- 统一调度:集成Volcano提供批处理和AI作业调度。
- 统一流量管理:通过Istio实现服务网格。
- 统一遥测:Prometheus提供监控聚合。
- 其他集成:KubeEdge边缘计算、FluxCD GitOps、Kyverno策略引擎等。
相比单独部署这些组件,Kurator封装了舰队管理(Fleet Manager),允许用户以声明式方式管理多个集群,如集群注册/注销、应用同步、跨集群服务发现、指标聚合和一致性策略 enforcement。这大大降低了分布式环境的运维复杂度。对于开发者来说,Kurator让云原生从单集群向分布式升级变得简单高效👍。
官方资料显示,Kurator支持基础设施即代码(Infrastructure-as-Code),一键安装云原生软件栈,并提供舰队级统一管理。这正是我选择它的原因------作为个人开发者,我想快速验证分布式场景,而不需要手动配置每个组件。

二、Kurator分布式云原生环境搭建实战
2.1 准备工作与前提条件
根据Kurator官方文档(https://kurator.dev/docs/),搭建环境前需要准备Kubernetes主机集群(host cluster),作为管理平面。推荐使用kind或minikube进行本地测试,以模拟多集群环境。
我的环境:
- 操作系统:Ubuntu 22.04
- Kubernetes版本:v1.28+
- 工具:kubectl、kind、helm
- Go版本(如果编译CLI):1.20+
小提示:新手建议先安装kind,因为它轻量级,适合本地多集群模拟。
我们在开始之前,先把Kurator项目拉取到本地先,如下是相关步骤教学:
1、我们先打开开源项目地址:https://gitcode.com/kurator-dev/kurator

2、点击clone,通过Git插件,将项目进行clone下载

3、执行克隆命令
json
git clone https://gitcode.com/kurator-dev/kurator.git

4、本地项目查看:

项目已经拉取完成,接下里,我们开始干正事:
首先,安装kind:
bash
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
创建主机集群:
bash
kind create cluster --name kurator-host
切换上下文:
bash
kubectl config use-context kind-kurator-host
2.2 安装Kurator组件
Kurator的安装分为几个部分:Kurator CLI(可选,用于本地操作)、Cluster Operator(集群管理)、Fleet Manager(舰队管理)和附属组件如MinIO(用于存储)。
官方文档将安装分为独立组件安装,因为Kurator采用模块化设计,用户可以按需选择。
步骤1:安装Kurator CLI(推荐,用于简化操作)
Kurator提供CLI工具,便于生成YAML和应用。
从GitHub releases下载最新版:参考官方开源文档
bash
curl -Lo kurator https://github.com/kurator-dev/kurator/releases/download/v0.x.x/kurator-linux-amd64 # 替换实际版本
chmod +x kurator
sudo mv kurator /usr/local/bin/
验证:
bash
kurator version

步骤2:安装Cluster Operator
Cluster Operator负责集群生命周期管理,支持使用Cluster API创建/管理附属集群。
添加helm repo:
bash
helm repo add kurator https://kurator-dev.github.io/charts
helm repo update
安装:
bash
helm install cluster-operator kurator/cluster-operator --namespace kurator-system --create-namespace
验证:
bash
kubectl get pods -n kurator-system
步骤3:安装Fleet Manager
Fleet Manager是Kurator的核心,提供舰队统一管理。
安装:
bash
helm install fleet-manager kurator/fleet-manager --namespace kurator-fleet-system --create-namespace
步骤4:安装附属组件(如MinIO,用于Pipeline或存储)
对于完整分布式场景,推荐安装MinIO:
bash
helm install minio kurator/minio --namespace kurator-minio --create-namespace
如果如上步骤有不清楚的,可以参考官方开源的官网文档:

2.3 创建并加入成员集群
使用Cluster Operator创建成员集群(member clusters),模拟分布式环境。
示例:创建两个kind成员集群。
先创建kind集群:
bash
kind create cluster --name kurator-member1
kind create cluster --name kurator-member2
然后,在主机集群中注册它们作为成员。
官方推荐使用Fleet来管理集群一致性。
创建Fleet:
yaml
cat <<EOF | kubectl apply -f -
apiVersion: kurator.dev/v1alpha1
kind: Fleet
metadata:
name: quickstart
namespace: kurator-fleet-system
spec:
clusters:
- kind: MemberCluster # 或 AttachedCluster,根据类型
name: kurator-member1
EOF
(注:实际YAML需参考官方examples,路径如examples/fleet/)
加入集群的命令:
使用kurator CLI生成join命令,或手动应用Cluster API资源。
安装过程中遇到的小问题及解决办法
-
问题:helm repo添加失败,网络超时
原因:国内网络访问GitHub慢。
解决:使用镜像源,或VPN。或者直接下载chart:
bashhelm install fleet-manager ./charts/fleet-manager -
问题:pod卡在Pending,缺少资源
原因:kind集群资源不足。
解决:使用kind config增加CPU/Memory:
yamlkind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane extraMounts: - hostPath: /var/run/docker.sock containerPath: /var/run/docker.sock kubeadmConfigPatches: - | kind: InitConfiguration nodeRegistration: kubeletExtraArgs: node-labels: "ingress-ready=true" -
问题:成员集群加入后状态不Ready
原因:kubeconfig权限或网络。
解决:确保主机能访问成员API server,使用kind load docker-image预载镜像。
-
问题:版本兼容性
解决:严格遵循官方支持的Kubernetes版本,避免升级冲突。
通过这些步骤,我成功搭建了一个主机+两个成员的分布式环境。整个过程不到1小时,相比手动安装Karmada+Istio等,Kurator确实简化了很多!🌟
官方架构设计展示:

三、Kurator核心功能使用体验
搭建完成后,我重点体验了几个统一管理功能,并分析其对云原生平台运维的作用。
3.1 统一集群生命周期治理(Cluster Operator + Fleet)
使用Cluster Operator创建集群,并通过Fleet统一管理。
示例:定义Fleet包含多个集群。
yaml
apiVersion: kurator.dev/v1alpha1
kind: Fleet
metadata:
name: my-fleet
namespace: default
spec:
clusters:
- name: member1
type: attached
- name: member2
type: attached
作用分析:传统多集群下,集群创建/升级/删除分散,容易不一致。Kurator的Fleet允许声明式定义舰队,自动注册/注销集群,实现生命周期统一治理。这对运维来说,极大降低了手动干预,适合大规模分布式部署,如边缘计算场景。
3.2 统一应用分发(基于FluxCD + Karmada风格)
Kurator使用Application CRD从Git同步应用到舰队。
官方示例(policy管理,但类似应用分发):
bash
cat <<EOF | kubectl apply -f -
apiVersion: apps.kurator.dev/v1alpha1
kind: Application
metadata:
name: app-demo
namespace: default
spec:
source:
gitRepository:
url: https://github.com/kurator-dev/kurator
ref: branch: main
interval: 3m0s
timeout: 1m0s
syncPolicies:
- destination:
fleet: quickstart
kustomization:
path: ./examples/app/simple-nginx
interval: 5m0s
prune: true
timeout: 2m0s
EOF
我修改path为一个简单nginx部署,应用后,在所有舰队集群自动同步。
作用分析:统一应用分发避免了每个集群单独helm/kubectl apply的繁琐,支持GitOps。运维效率提升明显,尤其在分布式升级时,可灰度发布,减少风险。
3.3 统一流量治理(Istio集成 + Submariner插件)
Kurator支持通过Fleet安装Submariner实现跨集群网络。
示例命令(生成PSK后应用):
bash
export SUBMARINER_PSK=$(openssl rand -base64 64)
envsubst < examples/fleet/network/submariner-plugin.yaml | kubectl apply -f -
然后定义跨集群Service discovery。
作用分析:分布式环境下,流量孤岛是痛点。Kurator统一流量管理允许跨集群服务通信、负载均衡,支持Istio网格扩展到边缘。这对微服务架构至关重要,提升了系统可用性和弹性。
3.4 统一监控(Prometheus聚合)
Kurator支持聚合舰队指标到中央Prometheus。
示例:部署Prometheus后,使用Fleet同步thanos-sidecar或类似。
(官方暂无直接示例,但基于集成,支持统一遥测)
作用分析:多集群监控数据分散难分析。统一遥测让运维一览全局指标,快速定位问题,支持AI运维基础。
3.5 统一策略管理(Kyverno集成)
最实用的一个功能!
官方教程示例:
先安装Kyverno到舰队,然后同步策略。
bash
kubectl apply -f examples/fleet/policy/kyverno.yaml
然后应用坏pod策略demo:
bash
cat <<EOF | kubectl apply -f -
apiVersion: apps.kurator.dev/v1alpha1
kind: Application
metadata:
name: kyverno-policy-demo
namespace: default
spec:
source:
gitRepository:
interval: 3m0s
ref: branch: main
timeout: 1m0s
url: https://github.com/kurator-dev/kurator
syncPolicies:
- destination:
fleet: quickstart
kustomization:
interval: 5m0s
path: ./examples/fleet/policy/badpod-demo
prune: true
timeout: 2m0s
EOF
这个策略会禁止创建privileged pod,在所有集群生效。
作用分析:策略不一致易导致安全隐患。Kurator统一策略管理确保舰队遵守同一规则,如PodSecurity、资源限额等。大大提升了合规性和安全性,适合企业级生产。
如下是官方的文档说明:

四、案例小结:个人分布式平台落地过程
在我的实战中,我模拟了一个云-边场景:主机集群作为中心,两个成员作为边缘。
- 技术选型:选择Kurator因为集成全面,避免多项目兼容问题。
- 适配攻坚:本地kind网络隔离,解决通过Submariner插件。
- 场景落地:部署nginx应用到舰队,实现跨集群访问;应用Kyverno策略,确保安全。
- 反馈:操作简单,声明式管理高效。
- 价值:个人学习成本低,可扩展到真实多云。
五、总结与展望
通过这次Kurator实战,我深刻体会到分布式云原生的便捷。一栈统一,让复杂多集群管理变得像单集群一样简单!推荐大家动手试试,官方文档和examples很友好。
未来,期待Kurator在AI原生、更多边缘场景深化。感谢Kurator社区,期待更多创新!
最后,我们再结合如下这张,技术架构图起来理解:

最后,附上相关开源学习地址,助你一臂之力:
- Kurator分布式云原生开源社区地址:https://gitcode.com/kurator-dev
- Kurator分布式云原生项目部署指南:https://kurator.dev/docs/setup/