Kurator 是华为云开源的分布式云原生平台,旨在帮助用户一站式构建和管理多云、多集群、云边协同的分布式云原生基础设施。它整合了众多主流云原生技术栈,如 Kubernetes、Karmada(多集群编排)、KubeEdge(边缘计算)、Istio(服务网格)、Prometheus(监控)、Volcano(批调度)等,提供"开箱即用"的统一管理能力。Kurator 的核心在于"舰队(Fleet)"概念,将多个分布式集群抽象为一个逻辑舰队,实现统一治理、应用分发、流量治理、监控和策略管理。
为什么选择 Kurator?在多云环境下,传统 Kubernetes 管理面临集群孤岛、运维复杂、资源浪费等问题。Kurator 通过声明式 API(基础设施即代码,IaC)简化这些痛点,支持 AWS 等公有云、本地数据中心和边缘场景,适用于企业数字化转型。开源地址:https://github.com/kurator-dev/kurator。根据官方文档,Kurator 强调生态连接价值,能降低多云运维复杂度,提高效率。
本教程从基础安装到高级实战,适合初学者和运维工程师。假设您有基本的 Linux 和 Kubernetes 知识。我们将逐步覆盖环境准备、集群管理、Fleet 应用、监控策略等。教程基于 Kurator v0.6.0 版本,预计阅读和实践时间 2-4 小时。注意:所有命令在 Linux 环境下执行,确保有 root 权限。

(上图:Kurator 分布式云原生平台架构图,展示多集群统一管理框架,包括 Fleet 层、应用分发和监控组件。)
第一章:环境准备和 Kurator 安装
1.1 系统要求
- 操作系统:Ubuntu 20.04+ 或 CentOS 7+
- 硬件:至少 4 核 CPU、8GB 内存、50GB 存储(用于测试环境)
- 软件:Docker v20+、Kubernetes v1.24+(Kind 用于本地测试)、Helm v3+、Git
- 网络:确保服务器间网络连通,防火墙允许 SSH(22 端口)和 Kubernetes 端口(6443 等)
安装 Docker 和 Kind:
bash
curl -fsSL https://get.docker.com | bash
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
chmod +x ./kind
mv ./kind /usr/local/bin/kind
1.2 安装 Cert-Manager
Kurator 的 Cluster Operator 依赖 Cert-Manager 用于证书管理。
bash
helm repo add jetstack https://charts.jetstack.io
helm repo update
kubectl create namespace cert-manager
helm install -n cert-manager cert-manager jetstack/cert-manager --set crds.enabled=true --version v1.15.3
验证:
bash
kubectl get pods -n cert-manager
等待所有 Pod Running。
1.3 安装 Kurator Cluster Operator
有三种方式:从源代码、发布包或 Helm Repo。我们推荐 Helm Repo 方式,便于更新。
从 Helm Repo 安装
bash
helm repo add kurator https://kurator-dev.github.io/helm-charts
helm repo update
helm install --create-namespace kurator-cluster-operator kurator/cluster-operator --version=0.6.0 -n kurator-system
验证:
bash
kubectl get pod -l app.kubernetes.io/name=kurator-cluster-operator -n kurator-system
输出示例:
NAME READY STATUS RESTARTS AGE
kurator-cluster-operator-5977486c8f-7b5rc 1/1 Running 0 21h
从源代码安装(适用于开发)
克隆仓库:
bash
git clone https://github.com/kurator-dev/kurator.git
cd kurator
构建镜像和 Chart:
bash
VERSION=0.6.0 make docker
VERSION=0.6.0 make gen-chart
加载镜像到 Kind:
bash
kind load docker-image ghcr.io/kurator-dev/cluster-operator:0.6.0 --name kurator-host
kind load docker-image ghcr.io/kurator-dev/fleet-manager:0.6.0 --name kurator-host
安装:
bash
cd out/charts/
helm install --create-namespace kurator-cluster-operator cluster-operator-0.6.0.tgz -n kurator-system
从发布包安装
bash
curl -LO https://github.com/kurator-dev/kurator/releases/download/v0.6.0/cluster-operator-0.6.0.tgz
helm install --create-namespace kurator-cluster-operator cluster-operator-0.6.0.tgz -n kurator-system
安装后,Kurator 会在 kurator-system 命名空间运行 Operator,用于管理集群生命周期。如果遇到错误,如镜像拉取失败,检查网络或使用代理。

(上图:Kubernetes 集群设置截图,展示 Kind 环境下的本地集群创建过程。)
到此,您已完成 Kurator 基础安装。接下来进入集群管理实战。
第二章:创建和管理 On-Premise Kubernetes 集群
Kurator 基于 Cluster API 和 KubeSpray 提供 On-Premise 集群生命周期管理,包括创建、升级、扩展和删除。以下是详细步骤。
2.1 先决条件
- SSH 密钥:在服务器上生成并分发密钥。
bash
ssh-keygen
ssh-copy-id user@200.x.x.1
ssh-copy-id user@200.x.x.2
验证无密码登录。
- 创建 Secret:
bash
kubectl create secret generic cluster-secret --from-file=ssh-privatekey=/root/.ssh/id_rsa
描述 Secret:
bash
kubectl describe secrets cluster-secret
2.2 配置集群资源
Kurator 使用 Cluster、KubeadmControlPlane (KCP)、CustomCluster、CustomMachine 四种资源。
复制示例:
bash
cp -rfp examples/infra/customcluster examples/infra/my-customcluster
编辑 cc-custommachine.yaml:
yaml
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha1
kind: CustomMachine
metadata:
name: cc-custommachine
namespace: default
spec:
master:
- hostName: master1
publicIP: 200.x.x.1
privateIP: 192.x.x.1
sshKey:
apiVersion: v1
kind: Secret
name: cluster-secret
node:
- hostName: node1
publicIP: 200.x.x.2
privateIP: 192.x.x.2
sshKey:
apiVersion: v1
kind: Secret
name: cluster-secret
可选参数:如 KubeVersion: v1.26.5, PodCIDR: "192.168.0.0/16", CNIPlugin: cilium。
2.3 部署集群
应用配置:
bash
kubectl apply -f examples/infra/my-customcluster
监控:
bash
kubectl get pod | grep cc-customcluster-init
kubectl logs cc-customcluster-init
安装需 10-30 分钟。验证:
bash
kubectl get po -A
预期看到 CoreDNS、Cilium 等 Pod Running。
2.4 高可用 (HA) 控制平面
编辑 cc-customcluster.yaml 添加 VIP:
yaml
spec:
cni:
type: cilium
controlPlaneConfig:
address: 192.x.x.0
loadBalancerDomainName: my-apiserver-lb.kurator.com
certSANs: [200.x.x.1,200.x.x.2]
应用并验证 kube-vip Pod:
bash
kubectl get po -A | grep kube-vip
2.5 集群扩展
编辑 scale.yaml 添加/移除节点:
yaml
spec:
node:
- hostName: node2
publicIP: 200.x.x.3
privateIP: 192.x.x.3
sshKey: ...
应用:
bash
kubectl apply -f examples/infra/my-customcluster/scale.yaml
监控 scale-up/down Pod。
2.6 集群升级
编辑 KCP:
bash
kubectl edit kcp cc-kcp
更新 version: v1.26.5。监控 upgrade Pod:
bash
kubectl get pod -A | grep upgrade
注意:逐级升级,避免跳版本。
2.7 集群删除
bash
kubectl get clusters.cluster.x-k8s.io
kubectl delete clusters.cluster.x-k8s.io cc-cluster
监控 terminate Pod。删除需 ~5 分钟。
通过这些步骤,您能轻松管理 On-Premise 集群。

(上图:Kurator 架构图,突出 CustomCluster 和 Fleet 集成。)
第三章:Fleet 管理和多集群协同
Fleet 是 Kurator 的核心抽象,将多个集群视为一个逻辑单位,支持统一治理。
3.1 Fleet 快速上手
首先,准备多个 Kubernetes 集群(使用 Kind 创建 host 和 member 集群):
bash
hack/local-dev-setup.sh
export KUBECONFIG=/root/.kube/kurator-host.config
创建 Fleet:
编辑 fleet.yaml:
yaml
apiVersion: fleet.kurator.dev/v1alpha1
kind: Fleet
metadata:
name: quickstart
namespace: default
spec: {}
应用:
bash
kubectl apply -f fleet.yaml
加入成员集群:创建 AttachedCluster 并关联 Kubeconfig Secret。
示例 attachedcluster.yaml:
yaml
apiVersion: fleet.kurator.dev/v1alpha1
kind: AttachedCluster
metadata:
name: member1
namespace: default
spec:
kubeconfig:
name: member1-kubeconfig
key: value
fleet:
name: quickstart
namespace: default
应用并验证:
bash
kubectl get attachedcluster
3.2 多集群操作
Fleet 支持同步配置。查看 Fleet 状态:
bash
kubectl get fleet quickstart -o yaml
预期看到 joinedClusters。
Fleet 奠定多集群基础,接下来探讨应用分发。

(上图:Kurator Fleet 管理仪表盘,展示集群列表和健康状态。)
第四章:统一应用分发
Kurator 通过 Fleet 实现统一应用分发,支持 GitOps 和 FluxCD。
4.1 架构概述
应用分发基于 PropagationPolicy,使用 Karmada 分发资源到成员集群。
4.2 实战步骤
创建 Application:
编辑 application.yaml:
yaml
apiVersion: fleet.kurator.dev/v1alpha1
kind: Application
metadata:
name: nginx-app
namespace: default
spec:
source:
gitRepository:
url: https://github.com/example/repo
branch: main
syncPolicies:
- fleet: quickstart
override: {}
应用:
bash
kubectl apply -f application.yaml
监控分发:
bash
kubectl get application nginx-app -o yaml
支持灰度发布:添加 rolloutStrategy。
在成员集群验证 Nginx Pod:
bash
export KUBECONFIG=/root/.kube/kurator-member1.config
kubectl get pods
4.3 高级分发
使用 OverrideRules 自定义每个集群配置,如不同镜像标签。
应用分发是 Kurator 的关键功能,提升多云一致性。
第五章:监控和策略管理
5.1 多集群监控
Kurator 集成 Prometheus,实现统一监控。
启用:
编辑 monitoring.yaml:
yaml
apiVersion: fleet.kurator.dev/v1alpha1
kind: Monitoring
metadata:
name: fleet-monitoring
spec:
fleet: quickstart
应用并查看仪表盘(需安装 Grafana)。
5.2 策略管理
基于 Kyverno,自动部署策略引擎。
创建 Policy:
yaml
apiVersion: fleet.kurator.dev/v1alpha1
kind: Policy
metadata:
name: restrict-images
spec:
fleet: quickstart
kyvernoPolicies:
- name: restrict-images
policy: |
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: restrict-images
spec:
rules:
- name: check-images
match:
resources:
kinds:
- Pod
validate:
message: "Images must be from trusted registry"
pattern:
spec:
containers:
- image: "myregistry.com/*"
应用:
bash
kubectl apply -f policy.yaml
验证策略生效:尝试部署非信任镜像,应被拒绝。
监控和策略确保系统安全和可观测性。

(上图:Kurator 统一监控实战截图,展示告警和仪表盘。)
结论
通过本教程,从安装到实战掌握了 Kurator 的核心功能。Kurator 简化分布式云原生管理,助力企业高效运维。