更新时间:2022-04-28 GMT+08:00
分享

容器启动内部异常

问题现象

执行CCE部署任务时,日志最后提示“For more information, Please check the deployment event”,如下图所示。

图1 日志信息

原因分析

出现上述情况,通常是在容器启动过程中出现的异常情况,主要有以下三种情况:

  1. 内存或CPU资源配额不足,导致在容器启动失败。
  2. 镜像不正确,导致任务部署失败。
  3. 容器启动失败。

内存或CPU资源配额不足,导致在容器启动失败

内存或CPU资源配额不足,导致在容器启动失败。出现此情况通常有两种原因:

  1. 编辑任务时填写的CPU或内存配额大于该集群剩余配额,导致容器启动失败;
  2. 更新已有工作负载时,升级方式为滚动升级方式。为了保证业务不中断,在升级的时候旧容器将一直保证在运行状态,直到新容器被成功启动后才被删除。导致在升级过程中需要多余的CPU和内存资源,若该集群剩余配额不满足要求,也将导致工作负载更新失败。

对于容器启动时出现的内部异常,通常会将异常信息在实例启动事件中打印出来。待部署完成后单击“实例列表”,找到对应实例查看启动事件,确认容器启动异常原因。 CPU及内存配额不足报错信息如下两张图所示:

图2 cpu限额不足
图3 内存配额不足

处理方法

进入云容器引擎(CCE)服务,单击“集群管理”查看集群资源分配率详情,如下图所示。若CPU和内存资源不足,单击“弹性扩容”进行配额扩充。操作指南见集群自动扩容

图4 查看集群资源分配

镜像不正确,导致任务部署失败

镜像不正确,导致任务部署失败。通常是在镜像版本参数化时,指定版本的镜像在镜像仓库中不存在,导致启动容器时拉取镜像失败,原因定位如下图所示。

图5 未找到对应镜像导致拉去镜像失败

处理方法

进容器镜像服务(SWR),单击“我的镜像”查看部署任务所选镜像是否存在。若镜像名称正确,单击该镜像查看指定的镜像版本是否存在于镜像仓库中。

图6 镜像仓库详情

容器启动失败

单击实例列表,查看失败实例事件,显示一直在重新启动容器,如下图所示。

原因定位

通常有以下两种原因:

  1. 启动容器时,容器中的应用程序启动异常,导致失败。
  2. 容器启动后内部无进程,导致容器一直尝试重启。

定位及解决方式

  1. 对于CCE部署,建议登录实例所在节点查看容器启动日志。实例所在节点如图所示。

    1. 第一步,执行命令“docker ps |grep 负载名称”获取容器ID。

    2. 第二步,执行命令“docker logs 容器ID”查看容器启动日志。

  2. 若没有日志启动日志或者启动日志正常,进入容器内部查看容器内是否有运行的进程。
    1. 对于CCE部署,建议登录节点,执行如下命令。
      1. 执行命令“docker ps |grep 负载名称”获取容器名称。

      2. 执行命令“docker exec –it 容器名 /bin/sh(/bin/bash)”进入容器。
      3. 在容器中执行命令“ps -ef”查看是否有进程运行。
    1. 对于CCI部署,建议进入云容器实例服务(CCI),在Pod一栏中的终端中查看容器详情,如下图所示。

分享:

执行CCE部署任务所有常见问题

more

close