
# 将节点迁移到cgroup v2
Kubernetes社区在v1.25已正式GA支持[cgroup v2](https://kubernetes.io/zh-cn/docs/concepts/architecture/cgroups/)，其采用统一层级结构，资源管理能力更强，且兼容Kubernetes后续新特性。
自Kubernetes v1.31起，cgroup v1已进入[维护模式](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4569-cgroup-v1-maintenance-mode)，不再接收新功能；自Kubernetes v1.35起，cgroup v1已被标记为[正式废弃](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/5573-remove-cgroup-v1)。若您的集群版本为v1.31及以上且节点仍运行在cgroup v1上，kubelet将在启动时上报Warning级别事件，提示cgroup v1已不再受支持。为避免集群升级受阻并消除相关告警，建议您将节点迁移至启用cgroup v2的新版操作系统。
#### cgroup版本说明
Linux 内核提供 cgroup v1 和 cgroup v2 两个版本，kubelet 与底层容器运行时均通过 cgroup 实现对 Pod 和容器的资源管控，包括为容器化工作负载配置 CPU、内存的请求与限制。cgroup v2 作为新一代 cgroup 接口，采用统一的层级结构设计，解决了 cgroup v1 多控制器层级分散、管理复杂的问题，具备更强的资源管控能力与更稳定的隔离效果，同时引入[压力失速信息（Pressure Stall Information, PSI）](https://www.kernel.org/doc/html/latest/accounting/psi.html)，也能更好地兼容 Kubernetes 后续新功能。由于两个版本在内核接口与文件系统结构上存在差异，直接访问 cgroup 文件系统的应用程序需要进行相应适配。
#### cgroup版本兼容性差异
cgroup v2 与 cgroup v1 在文件系统结构和参数命名上存在差异，直接读取 cgroup 系统路径的应用程序，需验证并适配其对 cgroup v2 的兼容性。
您需重点关注并升级以下应用与组件：
- 部分第三方监控、安全代理类应用，以及需要读取 cgroup 文件的自定义脚本，均依赖 cgroup 文件系统。相关应用需升级至明确支持 cgroup v2 的版本；而自定义脚本会因 cgroup v2 环境下的文件路径变更失效，需逐一审查并修改为适配 cgroup v2 的读取逻辑。
- DaemonSet 方式部署 cAdvisor 用于 Pod 和容器监控，需升级至 v0.43.0 及以上版本。
- Java 应用建议使用已完整支持 cgroup v2 的版本： OpenJDK / HotSpot：jdk8u372、11.0.16、15 及更高版本
  IBM Semeru Runtimes：8.0.382.0、11.0.20.0、17.0.8.0 及更高版本
  IBM Java：8.0.8.6 及更高版本
  
- 若使用 uber-go/automaxprocs 包，需升级至 v1.5.1 及以上版本。
 
#### 查询节点cgroup版本
1. 登录节点。
2. 执行以下命令，查看当前节点cgroup版本。 
   ```
   stat -fc %T /sys/fs/cgroup/
   ```
   - 对于cgroup v2，输出为*cgroup2fs*。
   
   - 对于cgroup v1，输出为*tmpfs*。
   
   
   
   
 
#### 区别CCE节点cgroup版本
使用cgroup v2操作系统的节点，CCE会为其打上*cce.io/cgroupVersion: v2*系统标签，同时，在节点列表会标识节点操作系统的cgroup版本。
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002563240180.png "点击放大")
#### 迁移步骤
CCE集群节点的cgroup版本由操作系统决定。如需要迁移，请将节点重置为支持cgroup v2的新版操作系统（CCE中默认使用cgroup v2的操作系统为Ubuntu 22.04.cgroup2）。具体操作步骤及注意事项，请参考[重置节点](https://support.huaweicloud.com/usermanual-cce/cce_10_0003.html)。
