KubeClipper 发布了 1.6.0 版本:支持 Kubernetes 1.36,容器运行时从 Containerd 1.x 升级到 2.x,Calico 更新到 v3.31.5。kcctl 新增了 kcctl set cluster、kcctl operation 等命令,并优化了 Registry 管理体验,修复了大量稳定性问题。
KubeClipper 是一个轻量便捷的 Kubernetes 多集群全生命周期管理工具,旨在提供易使用、易运维、极轻量、生产级的 Kubernetes 多集群管理服务,让运维工程师从繁复的配置和晦涩的命令行中解放出来,实现一站式管理跨区域、跨基础设施的多 K8S 集群。
🚀 5分钟快速体验
如果你是第一次接触 KubeClipper,可以通过以下步骤快速上手:
一键安装工具 :curl -sfL https://oss.kubeclipper.io/get-kubeclipper.sh | KC_REGION=cn bash -部署服务 :kcctl deploy创建集群 :kcctl create cluster --name demo --master YOUR_IP --untaint-master访问界面 :浏览器访问 http://YOUR_IP:8080,账号 admin/Thinkbig1四条命令,从零到一个跑起来的 K8s 集群。
1. KubeClipper 1.6.0 新特性详解
1.6.0 的主要变化集中在三块:K8s 最新版本支持、Containerd v2 适配、kcctl 命令行改进。
本次更新的主要亮点:
🔄 Kubernetes 1.36 支持 :支持最新 K8s 版本 🆕 Containerd v2 升级 :版本新特性:Sandbox API、CDI/NRI 默认启用、User Namespaces 等重大更新 🔄 Calico v3.31.5 :版本新特性:eBPF 数据面安装简化、nftables GA、LRU 连接追踪等 🛠️ kcctl 命令行优化 :set cluster、operation、registry 等多项改进 🔧 稳定性提升 :修复部署失败、配置覆盖、资源泄漏等问题 🧹 代码清理 :移除未使用命令和冗余代码 1.1 Kubernetes 1.36 与组件升级
Kubernetes Calico Containerd v1.36.1(默认) v3.31.5 v2.2.4 v1.35.0 v3.29.6 v1.7.29 v1.34.2 v3.29.6 v1.7.29
Containerd v2:容器运行时大版本跃迁
CDI 默认启用 :标准化 GPU、FPGA 等硬件设备注入方式,对 AI/ML 工作负载意义重大User Namespaces 支持(KEP-127) :容器内 root 不再映射为主机 root,从根本上提升容器安全性配置格式升级至 config.toml version=3 :CRI v1alpha2 移除,仅保留 CRI v1Calico v3.31:eBPF 数据面走向成熟
eBPF 安装大幅简化 :通过 Installation API 参数即可一键启用,无需再手动处理 kube-proxy 和 API Service Endpoint 配置nftables 数据面 GA :配合 Kubernetes 1.31+ 的 nftables kube-proxy,提供比 iptables 更好的性能和可扩展性LRU 连接追踪 :eBPF conntrack 采用 LRU 策略自动淘汰旧连接,高并发场景下不再轻易丢连接1.2 kcctl 命令行优化
kcctl set cluster
新增 kcctl set cluster 命令,支持在集群创建后修改外部访问配置:
1
2
3
4
5
# 设置外部 IP
kcctl set cluster my-cluster --external-ip 10.0.0.100
# 设置外部域名
kcctl set cluster my-cluster --external-domain k8s.example.com
同时 kcctl create cluster 也新增了 --external-port 和 --external-domain-port 参数,支持在创建集群时直接指定外部访问端口。
kcctl operation 命令
1.6.0 重写了 kcctl operation 命令,支持按集群名称查看操作记录,还加了 TUI 交互模式:
1
2
3
4
5
6
7
8
# 通过集群名称查看操作记录
kcctl operation list -c my-cluster
# TUI 模式查看集群操作日志
kcctl operation logs -c my-cluster
# 查看指定操作的详细日志
kcctl operation logs <OPERATION_ID> --follow
还有三个新子命令:
1
2
3
4
5
6
7
8
# 查看操作详情
kcctl operation describe <OPERATION_ID>
# 重试失败的操作
kcctl operation retry <OPERATION_ID>
# 终止运行中的操作
kcctl operation terminate <OPERATION_ID>
旧的 kcctl logs 命令已标记为废弃,后续版本将移除。
kcctl registry 优化
配置持久化 :kcctl registry deploy 完成后自动将节点信息(IP、端口、SSH 凭据)保存到 ~/.kc/registry-config.yaml,后续执行 list、push、delete 等命令时无需重复指定 --node 和 SSH 参数,CLI 参数优先级高于配置文件tar 格式支持 :kcctl registry push 支持 tar 格式的镜像包另外清理了多个废弃命令,修复了 CLI 参数解析和错误处理等问题。
1.3 稳定性提升
这一版包含大量的稳定性修复:
Containerd 配置保护 :更新镜像仓库认证配置时,不再覆盖整个 config.toml,而是仅更新 registry.configs.{host}.auth 部分,保留用户已有的配置(如 GPU Operator 添加的配置)过期认证清理 :当 Registry 从集群中移除时,自动清理 config.toml 中对应的认证信息部署修复 :修复了 kcctl deploy 在 deploy-config configmap 已存在时失败的问题,改为 CreateOrUpdate 语义资源泄漏修复 :修复了 backupstore 文件句柄泄漏、监控循环中单集群失败导致整体停止等问题代码清理 :移除了未使用的 kcctl-proxy 命令(约 1100 行)和多个工具包中的未使用代码(约 600 行),精简工具链2. 安装部署 KubeClipper 1.6.0
2.1 环境要求
操作系统 : CentOS 7+/Ubuntu 18.04+内核版本 : 4.4+内存 : 至少4GB RAM存储 : 至少 20GB 可用空间网络 : 节点间网络互通2.2 安装 kcctl 工具
1
2
3
4
5
# 下载最新版本的 kcctl
curl -sfL https://oss.kubeclipper.io/get-kubeclipper.sh | KC_REGION = cn bash -
# 验证安装
kcctl version
输出示例:
1
2
root@lixd-dev-3:~# kcctl version
kcctl version: version.Info{ Major:"1" , Minor:"6" , GitVersion:"v1.6.0" , GitCommit:"2561b625224a9cfd30941190bd38b828dc0ef1bb" , GitTreeState:"clean" , BuildDate:"2026-06-02T09:05:33Z" , GoVersion:"go1.24.2" , Compiler:"gc" , Platform:"linux/amd64" }
2.3 部署 KubeClipper
1
2
3
4
5
# 对于 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 --v 5
看到下面的 banner 就说明部署完成了:
1
2
3
4
5
6
7
8
_ __ _ _____ _ _
| | / / | | / __ \ (_)
| |/ / _ _| |__ ___| / \/ |_ _ __ _ __ ___ _ __
| \| | | | '_ \ / _ \ | | | | '_ \| '_ \ / _ \ '__|
| |\ \ |_| | |_) | __/ \__/\ | | |_) | |_) | __/ |
\_| \_/\__,_|_.__/ \___|\____/_|_| .__/| .__/ \___|_|
| | | |
|_| |_|
安装过程中需要去阿里云下载离线安装包,大概 1 分钟即可下载完成。
2.4 访问 Web UI
安装完成后,打开浏览器,访问 http://$IP 即可进入 KubeClipper 控制台。
您可以使用默认帐号密码 admin / Thinkbig1 进行登录。
3. 快速上手体验
3.1 创建 K8s 集群
用 kcctl 创建一个集群试试:
查看当前 agent 节点
1
2
3
4
5
6
root@lixd-dev-3:~# kcctl get node
+--------------------------------------+------------+---------+----------------+-------------+-----+---------+
| ID | HOSTNAME | REGION | IP | OS/ARCH | CPU | MEM |
+--------------------------------------+------------+---------+----------------+-------------+-----+---------+
| d6dff191-9a79-49bb-95fb-69c733c9fe7f | lixd-dev-3 | default | 172.16.131.146 | linux/amd64 | 8 | 15991Mi |
+--------------------------------------+------------+---------+----------------+-------------+-----+---------+
创建集群:
1
2
3
4
5
6
7
8
9
root@lixd-dev-3:~# kcctl create cluster --name demo --master 172.16.131.146 --untaint-master
[ 2026-06-02T09:47:29Z][ INFO] use default containerd version 2.2.4
[ 2026-06-02T09:47:29Z][ INFO] use default calico version v3.31.5
[ 2026-06-02T09:47:29Z][ INFO] use default k8s version v1.36.1
+------+---------+--------------+--------------+------------+----------------------------+-------------------------------+
| NAME | REGION | MASTER COUNT | WORKER COUNT | STATUS | APISERVER CERTS EXPIRATION | CREATE TIMESTAMP |
+------+---------+--------------+--------------+------------+----------------------------+-------------------------------+
| demo | default | 1 | 0 | Installing | | 2026-06-02 09:47:29 +0000 UTC |
+------+---------+--------------+--------------+------------+----------------------------+-------------------------------+
大概两分钟装完,用以下命令看实时日志:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
root@lixd-dev-3:~# kcctl operation list -c demo
+--------------------------------------+---------+---------------+---------+---------------------------+---------------------+-------+
| ID | CLUSTER | NAME | STATUS | SPONSOR | CREATED AT | STEPS |
+--------------------------------------+---------+---------------+---------+---------------------------+---------------------+-------+
| 40bee830-6ff5-4ed9-b07f-47762e0055a8 | demo | CreateCluster | running | https-172.16.131.146-8080 | 2026-06-02 09:47:29 | 14 |
+--------------------------------------+---------+---------------+---------+---------------------------+---------------------+-------+
root@lixd-dev-3:~# kcctl operation logs -c demo
root@lixd-dev-3:~# kcctl operation logs 40bee830-6ff5-4ed9-b07f-47762e0055a8
───── Step: installRuntime ( c11db224-d4bf-49a5-8fbb-4e3e8fc10490) [ successful] 2026-06-02 09:47:29 ─────
successful lixd-dev-3 ( 172.16.131.146) d6dff191-9a79-49bb-95fb-69c733c9fe7f [ 3s]
[ 2026-06-02T09:47:29Z] + download from http://172.16.131.146:8081/containerd/2.2.4/amd64/manifest.json
[ 2026-06-02T09:47:29Z] + download from http://172.16.131.146:8081/containerd/2.2.4/amd64/config... ( truncated)
───── Step: nodeEnvSetup ( f5c78839-4840-490b-a055-5d5f51f6ad4b) [ successful] 2026-06-02 09:47:32 ─────
successful lixd-dev-3 ( 172.16.131.146) d6dff191-9a79-49bb-95fb-69c733c9fe7f [ 1s]
[ 2026-06-02T09:47:32Z] + /bin/bash -c
systemctl stop firewalld || true
systemctl disable firewalld || true
setenforce 0
sed -i s/^SELINUX= .*$/SELINUX= disabled/ /etc/selinux/config
modprobe br_netfilt... ( truncated)
───── Step: installExtension ( 97a39913-50ed-41cd-9b67-e476d57b7c7a) [ successful] 2026-06-02 09:47:32 ─────
successful lixd-dev-3 ( 172.16.131.146) d6dff191-9a79-49bb-95fb-69c733c9fe7f [ 33s]
[ 2026-06-02T09:47:32Z] + download from http://172.16.131.146:8081/k8s-extension/v1/amd64/manifest.json
[ 2026-06-02T09:47:32Z] + download from http://172.16.131.146:8081/k8s-extension/v1/amd64/config... ( truncated)
新版还加了 TUI 日志查看器:
1
kcctl operation logs -c demo
集群装好了,用 kubectl 看一下状态:
1
2
3
4
5
6
7
8
root@lixd-dev-3:~# kubectl get cs
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy ok
root@lixd-dev-3:~# kubectl get node -owide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
lixd-dev-3 Ready control-plane 4m16s v1.36.1 172.16.131.146 <none> Ubuntu 24.04.3 LTS 6.8.0-90-generic ( amd64) containerd://2.2.4
几条命令,一个单节点 K8s 集群就起来了。
3.2 工作负载体验
1.5.0 版本引入的工作负载管理功能,可以直接在 Web UI 中管理 Deployment、StatefulSet 等工作负载。
4. 小结
这一版主要干了三件事:跟上 K8s 最新版本、适配 Containerd v2、把 kcctl 顺手打磨了一遍。
组件升级:
✅ Kubernetes 1.36 : 支持最新版本 ✅ Containerd v2.2.4 : CDI 默认启用、User Namespaces 支持、config.toml v3 ✅ Calico v3.31.5 : eBPF 安装简化、nftables GA、LRU 连接追踪 命令行优化:
✅ kcctl set cluster : 支持集群创建后修改外部访问配置 ✅ kcctl operation : 新增 describe/retry/terminate 子命令和 TUI 日志查看器 ✅ kcctl registry : 配置持久化,避免重复输入 –node 和 SSH 参数 ✅ kcctl create cluster : 支持 –external-domain 指定外部域名 稳定性提升:
✅ 配置保护 : 更新认证时仅修改 auth 部分,保留已有 containerd 配置 ✅ 部署修复 : 修复 configmap 已存在时的部署失败问题 ✅ 证书管理 : 防止重复证书更新操作,修复 kubeadm v1beta4 兼容问题 ✅ 代码清理 : 移除 kcctl-proxy 和约 1700 行冗余代码,精简工具链