kubeadm 1.37 介绍与选型指南
kubeadm 1.37 介绍与选型指南:官方资料溯源的 Kubernetes 上游集群引导工具定位、init/join 与静态 Pod 架构、kubeadm.yaml 配置体系、快速上手与适用限制,以及与 K3s、RKE2、MicroK8s、Minikube、k0s 的量化选型对比(2026-10-19 实查,未做本地安装实测)。
kubeadm 1.37 介绍与选型指南
目标:本文基于官方公开资料溯源(kubernetes.io 官网与官方文档、GitHub kubernetes/kubernetes 发行页)梳理 kubeadm 的定位、架构与选型对比,未做本地安装实测;版本号、日期与 stars 均标注来源与查询日期 2026-10-19。
一、信息基准
1.1 查询说明
- 查询日期:2026-10-19。
- 信息获取方式:纯官方资料溯源(kubernetes.io、GitHub kubernetes/kubernetes 发行页),并与本站同期实查的 K8s 发行版文档交叉核对,本文不做本地安装与运行实测。
- 版本结论:kubeadm 版本号与 Kubernetes 保持一致。当前上游支持线为 1.37 / 1.36 / 1.35 三个 minor(kubernetes.io/releases 实查);本文以 kubeadm 1.37(对应 Kubernetes 1.37,1.37.0 GA 于 2026-08-26,最新补丁 v1.37.1 于 2026-09-23)为介绍基准。
1.2 版本依据表
| 项目 | 实查结果(2026-10-19) | 来源 |
|---|---|---|
| 当前支持线 | 1.37 / 1.36 / 1.35(各约 1 年补丁支持;1.37 EOL 标注 2027-10-28) | kubernetes.io/releases/ |
| 1.37 线 | 1.37.0 GA 2026-08-26;最新补丁 v1.37.1(2026-09-23,1.35.9/1.36.5/1.37.1 三线并行补丁) | kubernetes.io/releases/;github.com/kubernetes/kubernetes/releases(与本站同期实查交叉核对) |
| 下一个版本 | 1.38(SIG Release 排期中) | kubernetes.io/releases/ |
| 代码仓库 | kubernetes/kubernetes(kubeadm 源码位于仓库 cmd/kubeadm) | github.com/kubernetes/kubernetes |
| 开源许可 | Apache-2.0 | 仓库 LICENSE |
| GitHub stars | 114057(kubernetes/kubernetes 主仓库整体) | GitHub API 实查(与本站同期实查交叉核对) |
1.3 官方来源清单
二、软件概述
本文介绍的是 kubeadm 1.37(随 Kubernetes 1.37 发布,1.37.0 GA 2026-08-26,最新补丁 v1.37.1 2026-09-23)。
kubeadm 是 Kubernetes 上游官方提供的集群「引导(bootstrap)」工具:一条 kubeadm init 初始化控制面、一条 kubeadm join 把节点加入集群,并配套升级(upgrade)、重置(reset)、证书(certs)、令牌(token)等全生命周期子命令。它属于 Kubernetes 主仓库(Apache-2.0,主仓库 stars 114057,2026-10-19 实查),是 CNCF 上游的「标准部署路径」。
定位边界(选型关键):官方文档明确 kubeadm 不是 turnkey(开箱即用)方案——它只负责把最小可用集群(minimum viable cluster)拉起来,容器运行时、CNI 网络、Ingress、监控等均需用户自选自装;它也不是 K8s 发行版,没有厂商定制组件。换言之,kubeadm 卖的是「纯粹与上游对齐」,发行版(K3s/RKE2/k0s/MicroK8s 等)卖的是「打包好的默认选择」。
三、核心架构
3.1 子命令与生命周期
| 子命令 | 作用(官方文档口径) |
|---|---|
| init | 初始化控制面节点(生成证书、写入静态 Pod、拉起 etcd/ apiserver / controller-manager / scheduler) |
| join | 将节点加入集群(控制面节点或工作节点) |
| upgrade | 集群滚动升级(kubeadm upgrade plan/apply/node) |
| reset | 回滚 init/join 所做的变更 |
| token | 引导令牌管理 |
| certs | 证书检查、续期 |
| kubeconfig | 生成/管理 kubeconfig |
3.2 控制面形态
- 静态 Pod:控制面组件以 kubelet 管理的静态 Pod 运行( manifests 由 kubeadm 写入
/etc/kubernetes/manifests),自愈与升级由 kubelet/静态 Pod 机制保证。 - etcd:默认与控制面同节点堆叠(stacked etcd),也支持外部 etcd 拓扑;etcd 由用户(经 kubeadm)自管。
- 高可用:多控制面节点 + 前置负载均衡(用户自建)实现 HA,官方文档给出 HA 拓扑说明。
3.3 配置体系(kubeadm.yaml)
kubeadm 以配置文件驱动部署:InitConfiguration(bootstrap token、节点信息)、ClusterConfiguration(apiserver/etcd/CRI endpoint、证书 SAN、podSubnet/serviceSubnet 等)、KubeProxyConfiguration、KubeletConfiguration、JoinConfiguration。本站已有多篇配置文件详解,如 《kubeadm 集群配置文件详解(Ubuntu 22.04)》。
四、功能特性
4.1 与上游完全对齐
kubeadm 属于 Kubernetes 主仓库,随每个 minor 同步发布,行为与上游一致;版本偏差策略(version skew policy)由上游官方维护,升级路径最「正」。
4.2 集群生命周期管理
覆盖初始化、加入、升级、降级(在支持范围内)、证书轮换(certs renew)、令牌管理、reset 清理等完整生命周期;upgrade plan 可预演升级路径。
4.3 自由组装的组件矩阵
运行时(containerd/CRI-O 等 CRI 实现)、CNI(Calico/Cilium/Flannel 等)、Ingress、存储均由使用者选择——适合需要精确控制每个组件版本与配置的团队。
4.4 1.37 线状态
1.37.0 于 2026-08-26 GA,属当前最新支持线;1.34 线将于 2026-10-27 到期(kubernetes.io 实查),存量集群应注意升级窗口。
五、快速上手
以下步骤转述自官方教程(https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ ),本文不做本地实测。
5.1 准备
按官方安装文档在所有节点安装 kubelet、kubeadm、kubectl 与容器运行时(containerd 等),关闭 swap 并满足端口要求(官方 prerequisites)。
5.2 初始化控制面
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
完成后按输出提示拷贝 admin kubeconfig。
5.3 安装 CNI 并加入节点
kubectl apply -f <所选 CNI 的官方清单>
sudo kubeadm join <apiserver>:6443 --token <token> --discovery-token-ca-cert-hash <hash>
CNI 需自行选型安装(官方教程列出常见 CNI);验证 kubectl get nodes 就绪。
六、适用场景与限制
6.1 适用场景
- 需要与上游严格对齐、组件版本完全可控的生产/预生产集群。
- 云厂商托管 K8s 覆盖不到的私有化数据中心部署。
- 学习与验证上游原生行为(没有发行版魔改变量的基准环境)。
- 作为发行版之外「自建派」的标配工具。
6.2 限制与注意事项
- 官方明示 kubeadm 不是开箱即用方案:CNI、运行时、Ingress、监控、存储均需自选自装。
- etcd 与证书体系由用户自管,备份(etcd snapshot)与证书轮换要有流程。
- HA 需自建控制面前置负载均衡。
- 「三件套 + kubeadm」的装配与排障门槛高于发行版,小团队或边缘场景建议评估 K3s/k0s。
七、同类选型对比
7.1 候选概览
| 工具 | 定位 | 开源许可 |
|---|---|---|
| kubeadm 1.37 | Kubernetes 上游官方集群引导工具(非发行版) | Apache-2.0 |
| K3s v1.37.1+k3s1 | SUSE/Rancher 轻量生产可用 K8s(单二进制) | Apache-2.0 |
| RKE2 v1.37.1+rke2r1 | SUSE 安全加固型数据中心 K8s 发行版 | Apache-2.0 |
| MicroK8s 1.36 | Canonical snap 交付的轻量 K8s | Apache-2.0 |
| Minikube v1.39.0 | 本地学习/开发环境(多驱动) | Apache-2.0 |
| k0s v1.36.4+k0s.1 | Mirantis 零摩擦 K8s 发行版(单二进制) | Apache-2.0 |
7.2 量化对比(2026-10-19 实查)
| 维度 | kubeadm 1.37 | K3s | RKE2 | MicroK8s | Minikube | k0s |
|---|---|---|---|---|---|---|
| GitHub stars | 114057(kubernetes/kubernetes 主仓库) | 29966(k3s-io/k3s) | ≈2.4k(rancher/rke2,shields.io 徽标) | 9380(canonical/microk8s) | 30557(kubernetes/minikube) | 6537(k0sproject/k0s) |
| 最近发版 | v1.37.1(2026-09-23,三线并行补丁) | v1.37.1+k3s1(2026-10-01) | v1.37.1+rke2r1(2026-10-01) | v1.36 track(releases.atom 更新 2026-05-25) | v1.39.0(2026-09-01) | v1.36.4+k0s.1(2026-09-19) |
| 对应 K8s 版本 | 即上游(1.35–1.37 多线并行) | 1.37.1(1.34–1.37 四线并行) | 1.37.1 | K8s 1.36 track | 默认 v1.37.0 | K8s 1.36 track |
| 版本节奏 | 上游季度 minor + 补丁 | 跟随上游,补丁周级 | 跟随上游,补丁周级 | snap 通道随 track 滚动 | 约季度 minor | 跟随上游 |
| 交付形态 | 二进制工具 + systemd 组件手动装配 | 单二进制(内置运行时/网络) | 打包组件 + CIS/FIPS 基线 | snap 单包(dqlite 单机 HA) | 单二进制 CLI + 容器/VM 驱动 | 单二进制 |
| 数据存储 | etcd(自建/自管) | SQLite/kine/etcd 可选 | 内嵌 etcd | dqlite | 本地存储 | etcd(内置) |
| 兼容矩阵要点 | 需自备容器运行时与 CNI | Linux 单二进制,x86_64/arm64 | CIS v1.12 + FIPS 140-2 | snapd 必需 | 需 Docker/QEMU/Podman 等驱动之一 | Linux 单二进制 |
(stars 与发版时间取自各项目 GitHub Releases/GitHub API 与 shields.io 徽标的 2026-10-19 实查,并与本站同期《K3s 1.37.1》《RKE2 1.37》《MicroK8s 1.36》《Minikube 1.39》《Kind v0.33.0》介绍文档交叉核对;许可见各仓库 LICENSE。)
7.3 选型建议
一句话概括:kubeadm 卖纯粹,RKE2 卖合规,K3s 卖轻量,MicroK8s/k0s 卖各自厂商生态,Minikube 只做本地。需要完全掌控每个组件、贴着上游走的数据中心集群,用 kubeadm(本站有 《CentOS 8 安装 Kubernetes(kubeadm)集群指南》);合规与生产支持优先的选 RKE2(见《RKE2 1.37 介绍与选型指南》);边缘与资源受限场景选 K3s 或 k0s;Ubuntu/snap 生态的开发与 IoT 场景选 MicroK8s(见《MicroK8s 1.36 介绍与选型指南》);个人学习与本地实验选 Minikube(见《Minikube 1.39 介绍与选型指南》)。kubeadm 的额外代价是运维自管(etcd、证书、HA 负载均衡、CNI 装配),团队没有专职平台组时应慎选。
八、参考链接
- Kubernetes 官网:https://kubernetes.io/
- 版本与支持周期:https://kubernetes.io/releases/
- kubeadm 概念文档:https://kubernetes.io/docs/concepts/cluster-administration/kubeadm/
- kubeadm 建集群官方教程:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/
- 版本偏差策略:https://kubernetes.io/releases/version-skew-policy/
- 源码仓库:https://github.com/kubernetes/kubernetes
- K3s 仓库:https://github.com/k3s-io/k3s
- RKE2 仓库:https://github.com/rancher/rke2
- MicroK8s 仓库:https://github.com/canonical/microk8s
- Minikube 仓库:https://github.com/kubernetes/minikube
- k0s 仓库:https://github.com/k0sproject/k0s