什么是 Kubekey
KubeKey 是一个开源的轻量级工具,用于部署 Kubernetes 集群。它提供了一种灵活、快速、方便的方式来安装 Kubernetes/K3s、Kubernetes/K3s 和 KubeSphere,以及相关的云原生附加组件。它也是扩展和升级集群的有效工具。此外,KubeKey 还支持定制离线包(artifact),方便用户在离线环境下快速部署集群。
为什么选择 Kubekey?
KubeKey 由 Go 语言开发,使用便捷、轻量,支持多种主流 Linux 发行版。KubeKey 支持多种集群部署模式,例如 All-in-One、多节点、高可用以及离线集群部署。KubeKey 也支持支持快速构建离线安装包,加速离线交付场景下的集群交付效率。KubeKey 实现多节点并行安装,且利用 Kubeadm 对集群和节点进行初始化,极大地节省了集群部署时间,同时也遵循了 Kubernetes 社区主流集群部署方法。KubeKey 提供内置高可用模式,支持一键部署高可用 Kubernetes 集群。
升级实操
etcd 数据备份
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
--cacert=<trusted-ca-file> --cert=<cert-file> --key=<key-file> \
snapshot save <backup-file-location>下载 Kubekey 工具
版本:v3.1.0-rc.2 (这个版本当前是稳定已测,即将发布 v3.1.0)。
export KKZONE=cn支持手动下载:https://github.com/kubesphere/kubekey/releases。
curl -sfL https://get-kk.kubesphere.io | sh -检查当前集群状态
kubectl get node -o wide
准备集群配置文件
如果创建集群时的配置文件存在,本步骤可跳过。
- 创建当前集群配置
./kk create config [--with-kubernetes version] [(-f | --filename) path]- 填入真实集群信息

修改 configmap
- 修改 kubeadm-config
注意:确保配置中的 featuregate 在新版本中没有被移除。
kubectl -n kube-system edit cm kubeadm-config
- 修改 kubelet-config-1.23
注意:确保配置中的 featuregate 在新版本中没有被移除。
kubectl -n kube-system edit cm kubelet-config-1.23
开始升级
./kk upgrade -f sample.yaml --with-kubernetes v1.24.17 --skip-dependency-check验证集群版本
kubectl get node -A -o wide
验证容器运行时
kubectl get nodes -o json | jq '.items[].status.nodeInfo.containerRuntimeVersion'
结尾彩蛋
正如我们在这篇文章中所揭示的,Kubernetes 1.24 版本及其后续迭代虽逐步摒弃了对 Docker 的直接依赖,但这并不意味着我们必须舍弃熟悉的 Docker 工作流。通过 KubeKey 这样的强大工具,我们可以享受到 Kubernetes 最新版本的种种改进,同时还能优雅地保留 Docker 的某些关键特性,让升级之路变得更为顺畅。勇敢拥抱变化,善用工具的力量,每一次的技术升级都将成为我们打造高效、稳定、可扩展基础设施的宝贵经验。




