
# 节点操作系统（OS）升级最佳实践
节点操作系统中的CVE漏洞可能带来集群数据泄露、服务中断等问题，对集群的稳定性、安全性、合规性造成威胁。
针对节点操作系统（OS）安全漏洞，CCE会负责及时提供相关公告，并发布对应的漏洞补丁及修复指导。在新版本OS发布时，CCE会修复已知的安全漏洞。在新版本未发布时，您可以开启集群安全服务，扫描节点上存在的安全漏洞，获得修复建议与方法，并在控制台上完成快速修复。
#### 节点操作系统CVE漏洞修复说明
- 根据CCE版本节奏发布新的OS镜像（例行每个季度一个版本），您可以通过[节点操作系统说明](https://support.huaweicloud.com/usermanual-cce/cce_10_0476.html)查看当前在维集群对应的节点OS最新内核信息。若最新的内核高于当前节点，可通过重置节点（若集群版本已经EOS，需先升级集群版本）的方式，将节点OS升级到最新版本修复漏洞。
- 若升级到最新的OS后，经评估还有需要解决的漏洞，您可以开启集群安全服务，在控制台上完成修复。
- 针对高危漏洞，CCE会单独发布漏洞公告，并在SLA时间内发布修复补丁。详情请参见[漏洞修复策略](https://support.huaweicloud.com/bulletin-cce/cce_bulletin_0011.html)。
 
#### 节点内核允许升级的场景
| 内核软件类型                                                          | 容器隧道网络（CCE Standard集群）                                                                                                                                                                                                                    | VPC网络（CCE Standard集群）                                                                                                                                                                                                                                                                                                                                                                                      | 云原生网络2.0（CCE Turbo集群） |
|:---|:---|:---|:---|
| kernel开头的内核软件（Ubuntu中是linux开头）                                  | 不支持自行升级，自行升级后可能会导致CCE功能异常，请勿自行升级。 您可以将集群版本升级到最新版本后，再重置节点解决。如果集群版本已经是最新版本并且重置节点后仍然存在该漏洞，CCE将按照华为云漏洞SLO在后续版本修复。详情请参见[漏洞修复策略](https://support.huaweicloud.com/bulletin-cce/cce_bulletin_0011.html)。 | 升级需要满足条件： - 以下节点OS类型可以直接升级：EulerOS/Huawei Cloud EulerOS  - 其他节点OS类型需要节点所属的集群版本大于等于v1.23.18-r0、v1.25.13-r0、v1.27.10-r0、v1.28.8-r0、v1.29.4-r0   | 可以直接升级                |
| openvswitch和 ovs开头的内核软件 | 不支持自行升级，自行升级后可能会导致CCE功能异常，请勿自行升级。 您可以将集群版本升级到最新版本后，再重置节点解决。如果集群版本已经是最新版本并且重置节点后仍然存在该漏洞，CCE将按照华为云漏洞SLO在后续版本修复。详情请参见[漏洞修复策略](https://support.huaweicloud.com/bulletin-cce/cce_bulletin_0011.html)。 | 可以直接升级                                                                                                                                                                                                                                                                                                                                                                                                     | 可以直接升级                |
| ipvlan开头的内核软件                                                   | 可以直接升级                                                                                                                                                                                                                                    | 升级需要满足条件： - 以下节点OS类型可以直接升级：EulerOS/Huawei Cloud EulerOS  - 其他节点OS类型需要节点所属的集群版本大于等于v1.23.18-r0、v1.25.13-r0、v1.27.10-r0、v1.28.8-r0、v1.29.4-r0              | 可以直接升级                |
| libnvidia-container和nvidia-container-toolkit开头的内核软件             | 非GPU类型节点可以直接升级                                                                                                                                                                                                                            | 非GPU类型节点可以直接升级                                                                                                                                                                                                                                                                                                                                                                                             | 非GPU类型节点可以直接升级        |
| s3fs、obsfs、kata、docker、containerd、runc开头的内核软件                   | 不支持自行升级，自行升级后可能会导致CCE功能异常，请勿自行升级。 您可以将集群版本升级到最新版本后，再重置节点解决。如果集群版本已经是最新版本并且重置节点后仍然存在该漏洞，CCE将按照华为云漏洞SLO在后续版本修复。详情请参见[漏洞修复策略](https://support.huaweicloud.com/bulletin-cce/cce_bulletin_0011.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                    |||
   
#### 注意事项
- docker、containerd、runc、kubernetes、openvswitch、ipvlan等**CCE自研组件的漏洞不支持自行升级**，需通过升级集群修复。
- GPU与NPU节点升级完后，需要验证驱动与OS的兼容性，部分场景可能需要升级驱动。
- 建议在业务低峰期执行OS升级，且先执行节点排水，将业务Pod驱逐到其他节点后再进行升级。
- 若涉及OS内核升级，升级完成后需要重启节点生效，升级完成后**切勿重置节点**，否则会将操作系统回退到CCE最近发布的版本。
 
#### 升级流程
您可以通过重置或者滚动升级节点，将节点OS升级到CCE最新版本修复漏洞。
- 默认节点池中的节点通过重置节点升级OS。
- 自定义节点池中的节点通过滚动升级节点池升级OS。
- GPU/NPU等涉及驱动和OS配套的场景，需验证虚拟化域提供的驱动配套关系，测试完成后才可升级节点操作系统。如涉及依赖则需要CCE发布新的集群版本来解决：例如存在驱动和OS最新版本不配套等情况，需要升级集群小版本才能启用最新OS。
 
#### 启用安全服务进行修复
您可以在创建集群或者集群创建完成后，开启安全服务。开启后，将该集群管理权限授权给主机安全服务委托，同时系统为集群内节点自动安装Agent。
图1新建集群开启安全服务
![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002588931554.png "点击放大")
图2存量集群开启安全服务
![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002589091474.png "点击放大")
完成后，可以在HSS界面差异化展示漏洞详情，执行一键修复。
图3修复单个漏洞
![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002589091106.png "点击放大")
图4修复多个漏洞
![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002619370895.png "点击放大")
#### 自助修复
![](https://support.huaweicloud.com/bestpractice-cce/public_sys-resources/caution_3.0-zh-cn.png)
- 升级内核时，需要有可用镜像源，可参考[ECS指导配置华为云镜像源](https://support.huaweicloud.com/ecs_faq/zh-cn_topic_0118948562.html)，或给节点绑定EIP。
- 强烈建议您先在测试环境验证无误后，再升级生产环境。
 
Huawei Cloud EulerOS 2.0升级步骤
1. 登录节点，查看升级前内核版本。
   ```
   uname -a
   ```
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002513352208.png "点击放大")
   
2. 对需要内核升级的节点执行节点排水，将业务Pod调度到其他节点，避免业务受损。建议执行，因为更新内核需要重启节点，节点上Pod会短暂不可用。 ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002513192664.png "点击放大")
   
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002513194018.png "点击放大")
   
   
3. 登录节点，安装必要的软件包（不安装可能导致内核升级失败）。
   ```
   sudo yum install -y grub2-pc-modules grub2-tools-extra grub2-pc
   ```
   
4. 更新系统内核。
   ```
   sudo yum update -y kernel 
   # 安装完成后重启节点
   reboot
   ```
   重启后，内核已升级到最新版本。
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002544953223.png "点击放大")
   
5. 若集群网络模型为**容器隧道网络** ，则需重新编译openvswitch。**非容器隧道网络的集群无需执行本步骤。**
   ```
   cd /opt/cloud/cce/kubernetes/canal/openvswitch
   bash can_ovs.sh uninstall
   bash can_ovs.sh install
   ```
   
6. 开启节点调度，验证功能。 ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002544954199.png "点击放大")
   
   
 
EulerOS 2.9升级步骤
1. 登录节点，查看升级前内核版本。
   ```
   uname -a
   ```
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002544954323.png "点击放大")
   
2. 对需要内核升级的节点执行节点排水，将业务Pod调度到其他节点，避免业务受损。建议执行，因为更新内核需要重启节点，节点上Pod会短暂不可用。 ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002513192664.png "点击放大")
   
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002513194018.png "点击放大")
   
   
3. 更新系统内核。
   ```
   sudo yum update -y kernel 
   # 安装完成后重启节点
   reboot
   ```
   重启后，内核已升级到最新版本。
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002544954471.png "点击放大")
   
4. 若集群网络模型为**容器隧道网络** ，则需重新编译openvswitch。**非容器隧道网络的集群无需执行本步骤。**
   ```
   cd /opt/cloud/cce/kubernetes/canal/openvswitch
   bash can_ovs.sh uninstall
   bash can_ovs.sh install
   ```
   
5. 开启节点调度，验证功能。 ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002544954199.png "点击放大")
   
   
 
Ubuntu 22.04升级步骤
1. 登录节点，查看升级前内核版本。
   ```
   uname -a
   ```
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002513354682.png "点击放大")
   
2. 对需要内核升级的节点执行节点排水，将业务Pod调度到其他节点，避免业务受损。建议执行，因为更新内核需要重启节点，节点上Pod会短暂不可用。 ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002513192664.png "点击放大")
   
   ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002513194018.png "点击放大")
   
   
3. 获取软件包信息。
   ```
   sudo apt update
   ```
   
4. 更新系统内核。
   ```
   sudo apt install -y linux-image-generic
   # 安装完成后重启节点
   reboot
   ```
   重启后，内核已升级到最新版本。
   
5. 若集群网络模型为**VPC网络** ，则需重新编译ipvlan。**非VPC网络的集群无需执行本步骤。**
   ```
   cd /opt/cloud/cce/kubernetes/yangtse/ipvlan/
   bash ipvlan.sh uninstall
   bash ipvlan.sh install
   reboot
   ```
   
6. 开启节点调度，验证功能。 ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002544954199.png "点击放大")
   
   
 
#### 升级后验证
您可以在升级后的节点上新建Pod验证节点是否正常，详情请参见[新建Pod检查](https://support.huaweicloud.com/usermanual-cce/cce_10_0566.html)。
