
# 节点重启后工作负载无法启动的解决方案（ASM 1.28+）
#### 问题现象
ASM 1.28及以上版本网格节点重启后工作负载无法启动，事件日志显示：
![](https://support.huaweicloud.com/asm_faq/zh-cn_image_0000002661768569.png)
#### 根因分析
默认未启用节点优雅关机机制，异常关机导致istio-cni组件配置文件未正常清理。节点优雅关机请参考[Node Shutdowns](https://kubernetes.io/docs/concepts/cluster-administration/node-shutdown/)。
#### 启用节点优雅关机
**操作步骤：**
1. 备份原始配置文件： 
   ```
   cp /opt/cloud/cce/kubernetes/kubelet/kubelet_config.yaml /opt/cloud/cce/kubernetes/kubelet/kubelet_config.yaml.bak
   ```
   
   
2. 节点上编辑kubelet配置文件： 
   ```
   vim /opt/cloud/cce/kubernetes/kubelet/kubelet_config.yaml
   ```
   
   
3. 添加优雅关机配置（文件末尾追加）： 
   ```
   shutdownGracePeriod: 60s   #节点关机前等待Pod优雅终止的总时长
   shutdownGracePeriodCriticalPods: 57s     #关键Pod的优雅终止时长
   ```
   
   
4. 输入:wq保存退出，并重启kubelet： 
   ```
   systemctl restart kubelet
   ```
   
   
 
#### 修复方案：异常节点恢复
**适用场景：**未启用优雅关机且已发生工作负载异常时。
**操作步骤：**
1. 备份原始配置文件： 
   ```
   cp /etc/cni/net.d/cni.conflist /etc/cni/net.d/cni.conflist.bak
   ```
   
   
2. 编辑cni配置文件： 
   ```
   vim /etc/cni/net.d/cni.conflist
   ```
   
   
3. 删除plugins下name为istio-cni配置段（以典型配置为例）： 
   - **删除istio-cni配置段**：在plugins数组中，找到name为istio-cni的配置段，并将其整个删除。该配置段通常包含多个键值对，如ambient_enabled、cni_agent_run_dir、dns等。
   
   - **删除前一个配置项末尾的逗号** ：在删除istio-cni配置段后，检查其前一个配置项的末尾，删除该逗号以确保JSON格式正确。
     例如，在以下配置中：
     
   
   
   ![](https://support.huaweicloud.com/asm_faq/zh-cn_image_0000002631449336.png)
   需要删除从"ambient_enabled": false开始到"operator": "NotIn"结束的整个配置段，并删除前一个配置项（"type": "eni-neutron"）末尾的逗号。
   
   
4. 输入:wq保存退出，并重启工作负载： 
   ```
   kubectl rollout restart deployment <workload-name>
   ```
   
   
 
