技术博客

containerd 2.3 LTS 对 Kubernetes 运维意味着什么

containerd 2.3 已进入 LTS 维护周期,本文解释 Kubernetes 节点运行时升级时需要关注的版本支持、CRI、runc、CNI 和回滚策略。

containerdKubernetesCRI容器运行时

Kubernetes 节点真正负责拉镜像、创建容器、管理容器生命周期的组件,不是 kubelet 自己,而是容器运行时。现在最常见的运行时之一就是 containerd。

截至 2026 年,containerd 2.x 已经成为生产环境需要重点关注的版本线。其中 containerd 2.3 是 LTS 分支,官方维护周期到 2028 年 4 月。

这对 Kubernetes 运维很重要。

containerd 在 Kubernetes 中的位置

Kubernetes 通过 CRI 和容器运行时通信:

kubelet -> CRI -> containerd -> runc -> Linux kernel

当 Pod 创建失败时,问题可能出在很多层:

所以排障时不要只看 kubectl describe pod,还要会看节点上的运行时状态。

为什么 LTS 分支值得关注

containerd 官方维护页面显示,2.3 是 LTS 分支,维护周期更长。生产环境选择 LTS 分支的好处是:

如果你的集群节点不是由云厂商完全托管,而是自己维护操作系统和运行时,LTS 分支尤其重要。

升级前先检查当前版本

在节点上执行:

containerd --version
ctr version
crictl version
runc --version

再检查 kubelet 使用的运行时端点:

ps aux | grep kubelet | grep container-runtime-endpoint

常见路径可能是:

unix:///run/containerd/containerd.sock

如果 crictl 没配置好,可以查看:

cat /etc/crictl.yaml

配置文件不要盲目覆盖

containerd 的配置通常在:

/etc/containerd/config.toml

升级时最危险的做法是直接用新默认配置覆盖旧配置。旧配置里可能有:

建议先导出新默认配置对比:

containerd config default > /tmp/containerd-default.toml
diff -u /etc/containerd/config.toml /tmp/containerd-default.toml

再决定哪些字段要迁移。

重点检查 cgroup driver

Kubernetes 节点常见问题之一是 kubelet 和 containerd 的 cgroup driver 不一致。

检查 kubelet:

kubectl get node <node-name> -o yaml | grep -i cgroup

检查 containerd 配置:

grep -i SystemdCgroup /etc/containerd/config.toml

systemd 管理的现代 Linux 发行版上,通常建议使用 systemd cgroup。

升级后的节点验证

升级 containerd 后,不要只看服务启动:

systemctl status containerd

还要验证 CRI:

crictl ps
crictl images
crictl pods

再创建测试 Pod:

kubectl run runtime-test --image=nginx:alpine
kubectl get pod runtime-test -o wide
kubectl logs runtime-test

如果 Pod 一直 ContainerCreating,优先看:

journalctl -u containerd -f
journalctl -u kubelet -f

回滚策略

运行时升级必须有回滚方案。建议提前准备:

示例:

kubectl cordon <node>
kubectl drain <node> --ignore-daemonsets --delete-emptydir-data

升级验证通过后:

kubectl uncordon <node>

总结

containerd 是 Kubernetes 节点稳定性的基础。2.3 LTS 的意义在于,它给自建集群提供了一个更适合长期维护的运行时版本线。

学习 Kubernetes 运维时,不要只停留在 kubectl。能理解 kubelet、CRI、containerd、runc、CNI 之间的关系,才算真正摸到节点层排障的门。

参考资料