ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

《Kubernetes部署篇:基于Ubuntu 24.04+x86_64架构CPU使用containerd部署K8S 1.36.4容器板集群(三主多从)》

《Kubernetes部署篇:基于Ubuntu 24.04+x86_64架构CPU使用containerd部署K8S 1.36.4容器板集群(三主多从)》

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《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、版本说明

组件版本
Kubernetesv1.36.4
containerdv2.4.1
runcv1.5.2
CNI pluginsv1.9.1
crictlv1.36.0
Calicov3.32.2
kubelet.servicev0.16.2
10-kubeadm.confv0.16.2
kubelet-csr-approverv1.2.15

1、Kubernetes 与 containerd 版本对应关系

Kubernetes Versioncontainerd Version
1.322.1.0+, 2.0.1+, 1.7.24+, 1.6.36+
1.332.1.0+, 2.0.4+, 1.7.24+, 1.6.36+
1.342.1.3+, 2.0.6+, 1.7.28+, 1.6.39+
1.352.2.0+, 2.1.5+, 1.7.28+
1.362.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,如上图,选择 高于 v1.5.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 版本对应关系
官方文档明确建议:下载与你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 v1cgroup 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 v2Kubernetes v1.35 抢先一览

2、Kubernetes 版本与 kube-proxy 转发模式对照表

Kubernetes版本推荐模式模式状态说明
< v1.25iptables默认唯一稳定选择,ipvs 尚未 GA,nftables 尚未引入
v1.25 ~ v1.32ipvs/iptablesipvs GA/iptables 默认ipvs 性能更优,iptables 仍可用
v1.33 ~ v1.34nftables/ipvsnftables GA/ipvs兼容nftables进入稳定,ipvs仍可兼容使用
≥ v1.35nftablesipvs已弃用ipvs已弃用,官方强烈推荐迁移至nftables

3、kube-proxy 转发模式与内核版本对照表

转发模式最低内核版本推荐内核版本核心依赖模块适用场景
iptables无硬性最低版本,建议>=3.134.x+netfilter、conntrack小规模集群
ipvs>=4.1>=5.9ip_vs相关内核模块中大规模集群
nftables>=5.13(正式支持)>=6.6 LTS(生产推荐)nft命令行工具>=1.0.1大规模集群

补充说明:
1、内核< 3.13且iptables <= 1.6.2时,NAT后源端口随机性不足,可能导致1s延迟。iptables模式是Kubernetes的默认模式,兼容性最广,但在大规模Service场景下性能随规则数线性下降。
2、内核 < 5.9时不推荐使用IPVS模式。内核 4.1+时kube-proxy会将conn_reuse_mode设为0(解决低吞吐问题),但可能导致端口复用下 RealServer无法移除;内核 < 4.1时保持默认值 1,高并发下存在1秒延时。Kubernetes v1.35起IPVS模式已标记为弃用,建议新内核用户迁移至nftables模式。
3、nftables模式要求:操作系统内核版本>= 5.13;nft版本>=v1.0.1。


3、containerd v2.3.5版本
满足:glibc >= 2.35


1.3、证书详解

1、Kubernetes 集群中的证书体系是保障组件间安全通信的基石,主要由 kubeadm 统一签发与管理。下面按证书类型逐一说明其生成方式、存放路径、有效期及轮换策略。


2、证书查看与验证命令


3、证书轮换注意事项
1、所有证书续期操作需在 control-plane 节点上执行,且需具备 root 权限。
2、证书续期后,需重启对应组件(kube-apiserver、etcd、kube-controller-manager、kube-scheduler)使新证书生效。
3、建议在证书到期前 30 天进行续期,避免因证书过期导致集群不可用。
4、生产环境建议部署 kubelet-csr-approver,实现 kubelet 证书的全自动轮换,减少人工运维成本。
5、根 CA 轮换风险较高,需制定详细的迁移方案,并在维护窗口内执行。


1.4、资源下载

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进