KubeClipper 1.7.0 发布:Operation 优化与 Kubernetes 1.37 支持

kubeclipper-release-1.7.0.jpg

KubeClipper 1.7.0 发布了。

本次版本新增 API 驱动的 Operation v2,移除了旧的 NATS Operation 投递链路,集群创建、扩容、删除等操作统一使用新的 Operation v2。新增 kcctl statuskcctl doctor 平台诊断命令,新增了对 Kubernetes 1.37 版本的支持,并对镜像仓库管理、离线镜像加载和部署预检查进行了优化。

KubeClipper 是一个轻量便捷的 Kubernetes 多集群全生命周期管理工具,旨在提供易使用、易运维、极轻量、生产级的 Kubernetes 多集群管理服务,让运维工程师从繁复的配置和晦涩的命令行中解放出来,实现一站式管理跨区域、跨基础设施的多 K8S 集群。

🚀 5分钟快速体验

第一次用 KubeClipper,可以先按下面这几步走一遍:

  1. 安装工具curl -sfLk https://oss.kubeclipper.io/get-kubeclipper.sh | bash -
  2. 部署服务kcctl deploy
  3. 创建集群kcctl create cluster --name demo --master YOUR_IP --untaint-master
  4. 打开控制台:访问 http://YOUR_IP,默认账号 admin/Thinkbig1

四步,从零开始创建一个 Kubernetes 集群。部署完成后,还可以使用 kcctl statuskcctl doctor 检查平台状态。

1. KubeClipper 1.7.0 新特性详解

1.7.0 的主要变化集中在以下几个方面:Operation v2、平台诊断、镜像仓库管理和部署稳定性。

本次更新的主要亮点:

  • 🆕 Operation v2:使用 API 和 etcd 管理集群操作,支持任务状态查询、重试、取消和重启恢复
  • 🩺 平台诊断命令:新增 kcctl statuskcctl doctor
  • 🔄 Kubernetes 1.37 支持:默认版本升级至 v1.37.0
  • 📦 Registry 与离线镜像:支持选择 Registry 资源,离线模式支持加载节点本地镜像
  • 🔧 稳定性提升:增加部署预检查,修复传输校验、操作清理和 Agent 运行等问题

1.1 Kubernetes 1.37 与组件升级

1.7.0 支持的版本如下:

KubernetesCalicoContainerd
v1.37.0(默认)v3.31.5v2.2.4
v1.36.4v3.31.5v2.2.4
v1.35.8v3.31.5v2.2.4

1.6.0 的默认 Kubernetes 版本为 v1.36.1,1.7.0 已升级至 v1.37.0,v1.35 和 v1.36 也同步更新到最新维护版本。Calico 和 Containerd 继续使用 v3.31.5 和 v2.2.4。

1.2 Operation v2,集群操作更加可靠

1.7.0 新增 API 驱动的 Operation v2,Operation 和 OperationTask 作为 API 资源保存到 etcd,支持查看任务状态、重试、取消、超时处理和重启恢复,集群创建、扩缩容、删除、备份恢复等操作都统一使用这套机制。

同时修复了 Operation 状态持久化、集群状态并发更新冲突、操作历史清理和删除校验 panic 等问题,并优化了关键状态读取和事件分发效率。

1.3 kcctl statuskcctl doctor

1.7.0 新增了平台状态查看和诊断命令:

1
2
kcctl status
kcctl doctor

kcctl status 用于查看 kc-serverkc-etcdkc-agent 的整体健康状态;kcctl doctor 用于进一步检查平台配置和服务状态,在异常时给出排查信息。doctor 只做诊断,不会自动修改或重启服务。

1.4 Registry 管理与离线镜像支持

1.7.0 将 Cluster.imageRegistry 调整为引用已配置的 Registry 资源,创建或升级集群时直接传入资源名称即可。KubeClipper 会自动读取 Registry 的地址、协议、认证和证书配置,并用于 Kubernetes、Containerd、Calico 等组件的镜像。

旧的 image repository/local registry 字段和 CLI 别名已移除。同时修复了 HTTP Registry 协议丢失的问题,离线模式且未指定 Registry 时,会直接加载离线安装包中随包分发到节点的镜像;在线模式未指定 Registry 时,各组件继续使用自己的默认镜像仓库。

1.5 部署与运行稳定性提升

这一版包含多项部署和运行稳定性修复:

  • 部署预检查:新增服务端口占用检查,预检查异常会明确显示节点 IP 和角色;部署 kc-server 前会等待 etcd Endpoint 通过健康检查。
  • 部署配置:支持通过 --temp-dir 指定安装包暂存目录
  • 运行稳定性:修复操作历史清理、Agent 命令输出缓冲、子进程管道阻塞和 watch 事件恢复等问题

2. 安装部署 KubeClipper 1.7.0

2.1 环境要求

  • CPU:2 核及以上
  • 内存:4GB 及以上
  • 操作系统:推荐 Ubuntu 22.04 / Ubuntu 24.04
  • 网络:节点间网络互通,并可通过 SSH 连接
  • 基础工具sudo / curl / wget / tar
  • 架构:amd64 / arm64

主机最好保持相对干净,避免已有容器运行时或系统配置与安装过程产生冲突。

2.2 安装 kcctl 工具

1
2
3
4
5
# 下载最新版本的 kcctl
curl -sfLk https://oss.kubeclipper.io/get-kubeclipper.sh | bash -

# 验证安装
kcctl version

如果需要安装指定版本,可以通过 KC_VERSION 指定:

1
2
curl -sfLk https://oss.kubeclipper.io/get-kubeclipper.sh | \
  KC_VERSION=v1.7.0 bash -

2.3 部署 KubeClipper

1
2
3
4
5
6
7
# 对于 AIO 环境使用 kcctl deploy 即可完成部署
kcctl deploy

# 更多参数参考 kcctl deploy -h
# kcctl deploy --server $IPADDR_SERVER --agent $IPADDR_AGENT \
#   --pk-file /root/.ssh/id_rsa --pkg $PKG \
#   --ip-detect=interface=ens3 --temp-dir /data/kc-tmp --v 5

看到下面的 banner 就说明部署完成了:

1
2
3
4
5
6
7
8
 _   __      _          _____ _ _
| | / /     | |        /  __ \ (_)
| |/ / _   _| |__   ___| /  \/ |_ _ __  _ __   ___ _ __
|    \| | | | '_ \ / _ \ |   | | | '_ \| '_ \ / _ \ '__|
| |\  \ |_| | |_) |  __/ \__/\ | |_) | |_) |  __/ |
\_| \_/\__,_|_.__/ \___|\____/_|_| .__/| .__/ \___|_|
                                 | |   | |
                                 |_|   |_|

安装过程中需要下载离线安装包,具体耗时取决于网络速度。

2.4 访问 Web UI

安装完成后,打开浏览器,访问 http://$IP 即可进入 KubeClipper 控制台。

kc-console-login.jpg

您可以使用默认帐号密码 admin / Thinkbig1 进行登录。

3. 快速上手体验

3.1 创建 K8s 集群

部署成功后可以使用 kcctl 工具或者通过控制台创建 K8s 集群,这里使用 kcctl 工具进行创建。

查看当前 Agent 节点:

1
kcctl get node

创建集群:

1
kcctl create cluster --name demo --master YOUR_IP --untaint-master

1.7.0 默认使用 Kubernetes v1.37.0、Calico v3.31.5 和 Containerd v2.2.4。创建过程中可以查看实时操作:

1
2
kcctl operation list -c demo
kcctl operation logs -c demo

如果操作失败,可以查看详情、重试或取消:

1
2
3
kcctl operation describe <OPERATION_ID>
kcctl operation retry <OPERATION_ID>
kcctl operation cancel <OPERATION_ID>

集群进入 Running 状态后,用 kubectl 查看集群健康状况:

1
2
kubectl get node -owide
kubectl get pods -A

几条命令,一个单节点 K8s 集群就创建完成了。

3.2 平台状态检查

部署和集群创建完成后,可以使用下面的命令检查 KubeClipper 平台状态:

1
2
kcctl status
kcctl doctor

kcctl status 用于查看平台整体健康状态,kcctl doctor 用于进一步定位配置、服务和节点问题。

3.3 KubeClipper 的工作负载管理功能

KubeClipper 的工作负载管理功能在 1.7.0 中仍然可以直接通过 Web UI 管理 Deployment、StatefulSet 等 Kubernetes 工作负载。

kc-console-workload3.png

4. 小结

这一版主要干了三件事:升级集群操作机制、补充平台诊断命令、优化镜像和部署流程。

组件升级:

  • Kubernetes 1.37: 支持 v1.37.0、v1.36.4 和 v1.35.8
  • Containerd v2.2.4: 延续 1.6.0 的默认版本
  • Calico v3.31.5: 延续 1.6.0 的默认版本

操作与诊断:

  • Operation v2: 使用 API 和 etcd 管理集群操作
  • kcctl status: 查看平台整体健康状态
  • kcctl doctor: 提供平台故障诊断信息

稳定性提升:

  • Registry 管理: 使用 Registry 资源配置集群镜像仓库
  • 离线镜像: 离线模式未指定 Registry 时支持加载离线安装包中的本地镜像
  • 部署优化: 增加端口预检查和 etcd 健康检查,完善节点错误信息和传输失败处理
  • 运行修复: 修复操作清理、Agent Worker 和 watch 事件相关问题
0%