文章目录
- 目录
-
- 一、前置知识与环境准备
-
- [1.1 Kurator核心定位](#1.1 Kurator核心定位)
- [1.2 环境要求](#1.2 环境要求)
- 二、Kurator安装部署
-
- [2.1 安装Kurator CLI](#2.1 安装Kurator CLI)
- [2.2 部署Kurator控制平面](#2.2 部署Kurator控制平面)
- [2.3 源码构建安装(可选,适合定制化场景)](#2.3 源码构建安装(可选,适合定制化场景))
- 三、核心功能实操
-
- [3.1 集群纳管:统一管理异构集群](#3.1 集群纳管:统一管理异构集群)
-
- [3.1.1 存储集群kubeconfig](#3.1.1 存储集群kubeconfig)
- [3.1.2 声明式纳管集群](#3.1.2 声明式纳管集群)
- [3.2 Fleet管理:将多集群抽象为逻辑单元](#3.2 Fleet管理:将多集群抽象为逻辑单元)
- [3.3 统一应用分发:GitOps跨集群部署](#3.3 统一应用分发:GitOps跨集群部署)
- [3.4 统一监控配置:多集群指标聚合](#3.4 统一监控配置:多集群指标聚合)
- 四、常见问题与解决方案
-
- [4.1 镜像拉取失败](#4.1 镜像拉取失败)
- [4.2 集群纳管超时](#4.2 集群纳管超时)
- [4.3 应用分发失败](#4.3 应用分发失败)
- 五、进阶方向与总结
目录
若对您有帮助的话,请点赞收藏加关注哦,您的关注是我持续创作的动力!有问题请私信或联系邮箱:funian.gm@gmail.com
在多云、多集群成为企业IT基础设施新常态的今天,Karmada、Istio、Prometheus等组件的碎片化管理让运维效率大打折扣。Kurator作为华为云开源的分布式云原生套件,通过统一控制平面整合主流云原生工具,让跨云、跨边集群管理变得简单高效。本文将从环境准备到核心功能实操,带你完整掌握Kurator的使用流程。

一、前置知识与环境准备
1.1 Kurator核心定位
Kurator是业界首个分布式云原生开源套件,核心价值是将分散的云原生组件(Karmada、KubeEdge、Istio等)整合为开箱即用的统一平台,提供集群生命周期管理、跨集群应用分发、统一流量治理、全局监控等能力,彻底解决多云管理的配置碎片化、协同困难等痛点。
1.2 环境要求
- 操作系统:Linux(推荐Ubuntu 20.04+)或macOS
- 硬件配置:控制平面节点≥4核8G内存,工作节点≥2核4G内存
- 依赖工具:
- Kubernetes集群(版本1.20+,需提前部署完成)
- kubectl(已配置管理集群权限)
- Helm 3.5+
- Docker或containerd(容器运行时)
- 网络要求:控制平面与成员集群间开放6443(K8s API)、8080(Kurator Agent)端口
二、Kurator安装部署
2.1 安装Kurator CLI
CLI是Kurator的核心操作工具,推荐通过Release包快速安装(适配大多数场景):
bash
# 下载最新版本(以v0.6.0为例,可替换为最新版本)
curl -LO https://github.com/kurator-dev/kurator/releases/download/v0.6.0/kurator-0.6.0-linux-amd64.tar.gz
# 解压并部署到系统路径
sudo tar -zxvf kurator-0.6.0-linux-amd64.tar.gz -C /usr/local/bin/
# 验证安装(显示版本信息即成功)
kurator version
2.2 部署Kurator控制平面
控制平面包含集群管理、应用分发等核心控制器,通过Helm一键部署:
bash
# 添加Kurator Helm仓库
helm repo add kurator https://kurator.io/helm
helm repo update
# 安装控制平面(默认部署在kurator-system命名空间)
helm install kurator kurator/kurator --namespace kurator-system --create-namespace
# 验证部署状态(所有Pod均为Running状态即可)
kubectl get pods -n kurator-system
2.3 源码构建安装(可选,适合定制化场景)
若需二次开发或定制功能,可通过源码编译安装:
bash
# 克隆源码仓库
git clone https://github.com/kurator-dev/kurator.git
cd kurator
# 编译生成可执行文件
make kurator
# 部署到系统路径
sudo mv ./out/linux-amd64/kurator /usr/local/bin/
三、核心功能实操
3.1 集群纳管:统一管理异构集群
Kurator支持纳管现有K8s集群(公有云、私有云、边缘集群均可),步骤如下:
3.1.1 存储集群kubeconfig
将待纳管集群的kubeconfig存储为Secret:
bash
# 假设待纳管集群kubeconfig文件为member-cluster-config
kubectl create secret generic member-cluster-secret -n default \
--from-file=kubeconfig=member-cluster-config
3.1.2 声明式纳管集群
创建AttachedCluster资源,完成集群注册:
yaml
# attached-cluster.yaml
apiVersion: cluster.kurator.dev/v1alpha1
kind: AttachedCluster
metadata:
name: member-cluster-01
namespace: default
spec:
kubeconfig:
name: member-cluster-secret # 关联上述创建的Secret
key: kubeconfig
执行应用命令:
bash
kubectl apply -f attached-cluster.yaml
# 验证纳管状态(STATUS为Ready即成功)
kubectl get attachedclusters -n default
3.2 Fleet管理:将多集群抽象为逻辑单元
Fleet是Kurator的核心抽象,可将多个集群编组为统一管理单元,简化批量操作:
yaml
# fleet.yaml
apiVersion: fleet.kurator.dev/v1alpha1
kind: Fleet
metadata:
name: global-fleet
namespace: default
spec:
# 关联已纳管的集群
clusters:
- name: member-cluster-01
namespace: default
# 可添加更多集群...
执行应用命令并验证:
bash
kubectl apply -f fleet.yaml
kubectl get fleet -n default
3.3 统一应用分发:GitOps跨集群部署
通过Application资源,实现一次配置、多集群同步部署,支持GitOps模式:
yaml
# app-distribution.yaml
apiVersion: apps.kurator.dev/v1alpha1
kind: Application
metadata:
name: podinfo-demo
namespace: default
spec:
source:
gitRepository: # 从Git仓库拉取应用配置
url: https://github.com/stefanprodan/podinfo
ref:
branch: master
interval: 3m0s # 定期同步间隔
syncPolicies:
- destination:
fleet: global-fleet # 分发到上述创建的Fleet
kustomization:
path: ./deploy/webapp # Git仓库中应用配置路径
prune: true # 自动清理已删除的资源
interval: 5m0s # 同步检查间隔
执行应用命令并验证:
bash
kubectl apply -f app-distribution.yaml
# 查看应用分发状态
kubectl get applications -n default
3.4 统一监控配置:多集群指标聚合
Kurator集成Prometheus+Thanos+Grafana,实现多集群监控统一视图:
yaml
# monitoring.yaml
apiVersion: monitoring.kurator.dev/v1alpha1
kind: Monitoring
metadata:
name: global-monitoring
namespace: default
spec:
fleet: global-fleet # 监控目标Fleet
prometheus:
retention: 15d # 数据保留时间
grafana:
enabled: true # 启用Grafana可视化
thanos:
objectStorage:
# 配置对象存储(示例使用本地存储,生产环境推荐S3/OSS)
local:
path: /data/thanos
执行应用命令并访问Grafana:
bash
kubectl apply -f monitoring.yaml
# 暴露Grafana服务(或通过Ingress配置访问)
kubectl port-forward svc/global-monitoring-grafana -n default 3000:80
浏览器访问http://localhost:3000,默认账号密码可通过Secret查询。
四、常见问题与解决方案
4.1 镜像拉取失败
- 问题原因:海外镜像仓库(gcr.io/quay.io)网络访问受限
- 解决方案:配置镜像仓库代理,修改containerd配置文件(/etc/containerd/config.toml),添加镜像镜像规则
4.2 集群纳管超时
- 问题现象:AttachedCluster状态长期处于Pending
- 解决方案:
- 检查控制平面与成员集群网络连通性(telnet 成员集群IP 6443)
- 验证Secret中的kubeconfig权限(需cluster-admin权限)
- 检查成员集群K8s版本是否符合要求(≥1.20)
4.3 应用分发失败
- 问题原因:Git仓库访问失败或配置路径错误
- 解决方案:
- 验证控制平面节点能否访问Git仓库
- 检查kustomization.path是否与Git仓库目录结构一致
- 查看应用事件日志:
kubectl describe application podinfo-demo -n default
五、进阶方向与总结
Kurator的核心优势在于"集成而非替代",通过高层抽象屏蔽底层组件复杂性。除基础功能外,还可探索这些进阶场景:
- 跨集群流量治理:集成Istio实现多集群服务网格
- 统一策略管理:通过Kyverno配置多集群安全策略
- 集群备份恢复:基于Velero实现跨集群资源备份