总结:整理不易,如果对你有帮助,可否点赞关注一下?
更多详细内容请参考:《K8S 集群运维指南》
摘要:本文详细介绍了基于 Kubernetes v1.36.4 的高可用集群部署全过程,涵盖组件版本选型、环境初始化、容器运行时安装、二进制工具部署及网络插件配置等核心环节。文章首先梳理了 Kubernetes 与 containerd、runc、CNI、crictl、Calico 等组件的版本对应关系,并给出推荐版本组合;随后说明了 CGroup、kube-proxy 转发模式等关键注意事项。部署部分按 control-plane 与 worker 节点分别规划,逐步完成系统基础配置、内核模块加载、依赖包安装、containerd 与 runc 部署、CNI 插件及 crictl 工具安装,最后部署二进制工具、Calico 插件与 kubelet-csr-approver 控制器,并给出集群检查与测试建议。全文以实操为导向,适合运维人员参考落地。
一、部署说明
1.1、版本说明
| 组件 | 版本 |
|---|---|
| Kubernetes | v1.36.4 |
| containerd | v2.4.1 |
| runc | v1.5.2 |
| CNI plugins | v1.9.1 |
| crictl | v1.36.0 |
| Calico | v3.32.2 |
| kubelet.service | v0.16.2 |
| 10-kubeadm.conf | v0.16.2 |
| kubelet-csr-approver | v1.2.15 |
1、Kubernetes 与 containerd 版本关系
| Kubernetes Version | containerd Version |
|---|---|
| 1.32 | 2.1.0+, 2.0.1+, 1.7.24+, 1.6.36+ |
| 1.33 | 2.1.0+, 2.0.4+, 1.7.24+, 1.6.36+ |
| 1.34 | 2.1.3+, 2.0.6+, 1.7.28+, 1.6.39+ |
| 1.35 | 2.2.0+, 2.1.5+, 1.7.28+ |
| 1.36 | 2.3.0+, 2.2.0+ |
总结:根据当前要部署的 Kubernetes 版本 v1.36.4,结合上表版本对应关系,选择 containerd v2.4.1 版本。
2、containerd 与 runc 版本关系
官方明确建议:runc 版本应等于或高于containerd 发布时 script/setup/runc-version 文件 中锁定的版本。
总结:根据当前要部署的 containerd 版本 v2.4.1,如上图,选择 runc v1.5.2 版本。
3、Kubernetes与CNI版本关系
官方文档明确要求:CNI 插件必须兼容 CNI 规范 v0.4.0 或更高版本,并推荐使用 兼容 v1.0.0 规范 的插件。
总结:根据当前要部署的 K8s 版本 v1.36.4,结合上图版本对应关系,选择 CNI v1.9.1 版本。
4、Kubernetes与crictl (cri-tools)版本关系
官方文档明确建议:下载与你Kubernetes 版本相对应的crictl版本。
总结:根据当前要部署的 K8S 版本 v1.36.4,结合上图版本对应关系,选择 crictl v1.36.0 版本。
5、Kubernetes与calico版本关系
总结:根据 Calico 与 Kubernetes 版本对应关系,结合上图,选择 Calico v3.32.2 版本。
1.2、注意事项
1、根据 Kubernetes 官方文档,cgroup 版本与 Kubernetes 版本的对应关系如下表所示:
| Kubernetes 版本 | cgroup v1 支持状态 | cgroup v2 支持状态 | 推荐配置 | 官方参考 |
|---|---|---|---|---|
< v1.25 | 完全支持(默认) | Alpha/Beta 阶段 | cgroup v1 | cgroup v2 GA 博客 (v1.25) |
v1.25 – v1.30 | 支持(默认) | Stable (GA) | 推荐 cgroup v2 | 关于 cgroup v2 |
v1.31 – v1.34 | 维护模式 | Stable (GA) | 推荐 cgroup v2 | 对 cgroup v1 的支持转为维护模式 |
>= v1.35 | 不再支持(已移除) | 强制要求 | 必须使用 CGroup v2 | Kubernetes v1.35 抢先一览 |
2、Kubernetes 版本与 kube-proxy 转发模式对照表
| Kubernetes版本 | 推荐模式 | 模式状态 | 说明 |
|---|---|---|---|
< v1.25 | iptables | 默认 | 唯一稳定选择,ipvs 尚未 GA,nftables 尚未引入 |
v1.25 ~ v1.32 | ipvs/iptables | ipvs GA/iptables 默认 | ipvs 性能更优,iptables 仍可用 |
v1.33 ~ v1.34 | nftables/ipvs | nftables GA/ipvs兼容 | nftables进入稳定,ipvs仍可兼容使用 |
≥ v1.35 | nftables | ipvs已弃用 |