事件二:重新启动容器失败-凯发k8国际娱乐官网入口
工作负载详情中,若事件中提示“重新启动容器失败”,请按照如下方式来排查原因。
排查项一:查看端口是否冲突
- 按照配置好kubectl。
- 在页面上单击失败的工作负载,进入负载详情界面,查看pod列表,获取pod名字。
- 查看失败的容器的名称。
kubectl describe pod $name -n $namespace | grep "error syncing pod failed to"
图1 查看失败的容器的名称
- 查看退出容器的错误日志。
kubectl logs $podname -n $namespace -c $containername
此种问题有如下解决方法:重新创建工作负载,并配置正确的端口,确保端口不冲突。
排查项二:用户自身业务bug
请检查工作负载启动命令是否正确执行,或工作负载本身bug导致容器不断重启。
- 按照配置好kubectl。
- 在页面单击失败的工作负载,进入负载详情界面,查看pod列表,获取pod名字。
- 查看失败的容器的名称。
kubectl describe pod $name -n $namespace | grep "error syncing pod failed to"
图2 查看失败的容器的名称
- 查看退出容器的错误日志。
kubectl logs $podname -n $namespace -c $containername
根据日志提示修复工作负载本身的问题。
图3 容器启动命令配置不正确
此种问题的凯发k8国际娱乐官网入口的解决方案是:重新创建工作负载,并配置正确的启动命令。
排查项三:工作负载配置的健康检查执行失败
工作负载若配置liveness型(工作负载存活探针)健康检查,当健康检查失败次数超过阈值时,会重启实例中的容器。在工作负载详情页面查看事件,若k8s事件中出现“liveness probe failed: ……”时,表示健康检查失败。请重新配置正确的健康检查策略。
排查项四:命名空间的资源类型错误
请检查创建命名空间时选择的资源类型是否正确,通用计算型和gpu加速型支持x86镜像。
- 登录控制台,在页面上单击失败的工作负载,进入负载详情界面。
- 查看pod列表,单击实例异常pod所在行“操作”列的“查看日志”。
- 查看报错信息如下。
error: exec failed: exec format error
error: hyper send process initiated event: error
其他定位方法
负载异常有可能是容器中运行的应用启动异常,这时可以通过手动执行启动命令,根据错误提示进行问题定位和修复。通常的做法如下:
- 为工作负载配置如下类型的启动命令,这样pod启动后没有启动应用程序,没有执行任何操作。
执行启动命令前,请确认镜像中/bin/bash命令可用。
- pod启动成功后,执行kubectl exec进入到pod中,手动执行启动命令,根据错误提示进行问题定位和修复。
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨
more