
# 事件二：重新启动容器失败
工作负载详情中，如果事件中提示"重新启动容器失败"，请按照如下方式来排查原因。
#### 排查项一：查看端口是否冲突
1. 按照使用kubectl配置好kubectl。
2. 在页面上单击失败的工作负载，进入负载详情界面，查看Pod列表，获取Pod名字。
3. 查看失败的容器的名称。 
   kubectl describe pod $name -n $namespace \| grep "Error syncing pod failed to"
   图1查看失败的容器的名称   
   ![](https://support.huaweicloud.com/cci_faq/zh-cn_image_0163511087.png)
   
   
4. 查看退出容器的错误日志。 
   kubectl logs $podName -n $namespace -c $containerName
   ![](https://support.huaweicloud.com/cci_faq/zh-cn_image_0163511891.png)
   此种问题有如下解决方法：重新创建工作负载，并配置正确的端口，确保端口不冲突。
   
   
 
#### 排查项二：用户自身业务BUG
请检查工作负载启动命令是否正确执行，或工作负载本身bug导致容器不断重启。
1. 按照使用kubectl配置好kubectl。
2. 在页面单击失败的工作负载，进入负载详情界面，查看Pod列表，获取Pod名字。
3. 查看失败的容器的名称。 
   kubectl describe pod $name -n $namespace \| grep "Error syncing pod failed to"
   图2查看失败的容器的名称   
   ![](https://support.huaweicloud.com/cci_faq/zh-cn_image_0164810604.png)
   
   
4. 查看退出容器的错误日志。 
   kubectl logs $podName -n $namespace -c $containerName
   根据日志提示修复工作负载本身的问题。
   图3容器启动命令配置不正确   
   ![](https://support.huaweicloud.com/cci_faq/zh-cn_image_0164810606.png)
   此种问题的解决方案是：重新创建工作负载，并配置正确的启动命令。
   
   
 
#### 排查项三：工作负载配置的健康检查执行失败
工作负载如果配置liveness型（工作负载存活探针）健康检查，当健康检查失败次数超过阈值时，会重启实例中的容器。在工作负载详情页面查看事件，如果K8S事件中出现"Liveness probe failed: ......"时，表示健康检查失败。请重新配置正确的健康检查策略。
#### 排查项四：命名空间的资源类型错误
请检查创建命名空间时选择的资源类型是否正确，通用计算型和GPU加速型支持X86镜像。
1. 登录控制台，在页面上单击失败的工作负载，进入负载详情界面。
2. 查看Pod列表，单击实例异常Pod所在行"操作"列的"查看日志"。
3. 查看报错信息如下。 
   ERROR: exec failed: Exec format error
   ERROR: hyper send process initiated event: error
   
   
 
#### 其他定位方法
负载异常有可能是容器中运行的应用启动异常，这时可以通过手动执行启动命令，根据错误提示进行问题定位和修复。通常的做法如下：
1. 为工作负载配置如下类型的启动命令，这样pod启动后没有启动应用程序，没有执行任何操作。
   ![](https://support.huaweicloud.com/cci_faq/zh-cn_image_0274884996.png)
   ![](https://support.huaweicloud.com/cci_faq/public_sys-resources/note_3.0-zh-cn.png)
   执行启动命令前，请确认镜像中**/bin/bash**命令可用。
   
2. Pod启动成功后，执行kubectl exec进入到pod中，手动执行启动命令，根据错误提示进行问题定位和修复。
 
