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

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 支持的版本如下:

Kubernetes Calico Containerd
v1.37.0(默认) v3.31.5 v2.2.4
v1.36.4 v3.31.5 v2.2.4
v1.35.8 v3.31.5 v2.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 新增了平台状态查看和诊断命令:

bash 复制代码
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 工具

bash 复制代码
# 下载最新版本的 kcctl
curl -sfLk https://oss.kubeclipper.io/get-kubeclipper.sh | bash -

# 验证安装
kcctl version

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

bash 复制代码
curl -sfLk https://oss.kubeclipper.io/get-kubeclipper.sh | \
  KC_VERSION=v1.7.0 bash -

2.3 部署 KubeClipper

bash 复制代码
# 对于 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 就说明部署完成了:

复制代码
 _   __      _          _____ _ _
| | / /     | |        /  __ \ (_)
| |/ / _   _| |__   ___| /  \/ |_ _ __  _ __   ___ _ __
|    \| | | | '_ \ / _ \ |   | | | '_ \| '_ \ / _ \ '__|
| |\  \ |_| | |_) |  __/ \__/\ | |_) | |_) |  __/ |
\_| \_/\__,_|_.__/ \___|\____/_|_| .__/| .__/ \___|_|
                                 | |   | |
                                 |_|   |_|

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

2.4 访问 Web UI

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

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

3. 快速上手体验

3.1 创建 K8s 集群

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

查看当前 Agent 节点:

bash 复制代码
kcctl get node

创建集群:

bash 复制代码
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。创建过程中可以查看实时操作:

bash 复制代码
kcctl operation list -c demo
kcctl operation logs -c demo

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

bash 复制代码
kcctl operation describe <OPERATION_ID>
kcctl operation retry <OPERATION_ID>
kcctl operation cancel <OPERATION_ID>

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

bash 复制代码
kubectl get node -owide
kubectl get pods -A

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

3.2 平台状态检查

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

bash 复制代码
kcctl status
kcctl doctor

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

3.3 KubeClipper 的工作负载管理功能

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

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 事件相关问题
相关推荐
右耳朵猫AI1 小时前
Go周刊2026W37 | Ebitengine 纯 Go 化、simd 重写 TurboPFor、json/v2 落地
后端·微服务·go
一技安身2 小时前
【信创】docker-26.0.2.tgz 原理 + 完整安装
linux·运维·服务器
程曦曦2 小时前
MySQL 生产库误删 98 张表后的时间点恢复实战:从 binlog 解析到资金对账
linux·数据结构·其他·算法·ubuntu·运维开发
赵民勇2 小时前
systemd-mount命令详解
linux
fengkai45452 小时前
八、Docker详解1-3
运维·docker·容器
H_oRIZoN_3 小时前
Linux入门DAY42【51 单片机】DS18B20 数字温度传感器完整解析(单总线原理 + 时序 + 读取流程)
linux·单片机·linux应用编程
j7~3 小时前
【Linux网络加餐】(篇六)网络版计算器(上):模板方法模式、序列化与 JSON
linux·c++·json·序列化·反序列化·网络版计算机
流浪0013 小时前
Linux系统篇34——信号(六):信号处理期间又来了怎么办?——sigaction、sa_mask、可重入函数与 volatile
linux·运维·面试·操作系统·信号处理·信号
学烹饪的小胡桃3 小时前
资产设备管理系统 WGFIX 怎么设置https访问
linux·运维·服务器·网络·安全