通用方案:单个容器无法被天基自动拉起的应急排查方法

通用方案:单个容器无法被天基自动拉起的应急排查方法

更新时间:2020-07-08 17:19:38

1. 概述

本文主要介绍在专有云环境中,单个容器无法被天基自动拉起的应急排查方法。

1.1. 适用范围

  • 专有云V2,容器服务
    说明:适用于专有云V2.0.0~V2.5.0版本。
  • 专有云V3,容器服务
    说明:适用于专有云V3.0.0~V3.10.0版本。

1.2. 风险说明

服务已经异常,该方案操作无风险。

1.3. 用户告知

本文涉及的操作步骤均在root用户环境中执行。

2. 问题描述

在专有云环境中,部分宿主机中的所有容器未达终态。

3. 解决方案

3.1. 环境检查

停止service_manager进程

详情请参见补充说明的KB文档中实施步骤停止操作步骤

检查备节点

确认本主机上异常容器的备节点或应用均能正常提供服务。

3.2. 实施步骤

手动启动容器

  1. 在容器所在的宿主机中执行以下命令,尝试手动启动容器。
    docker start [$Container_ID]
    说明:[$Container_ID]为问题容器ID。
  2. 执行如下命令,观察手动启动容器是否成功,若系统返回内容表明容器已启动,则对环境检查中的停止service_manager进程步骤进行回退,回退步骤请参见补充说明的KB文档中实施步骤启动操作步骤
    docker ps -l

手动生成容器

注意:若上一步操作后启动容器失败,则执行此步骤。

执行如下命令,生成一个新容器。

docker run -it --net=none --entrypoint=bash --name [$Test_Container_Name] [$Image_ID]
注意
  • [$Test_Container_Name]为测试容器的容器名,测试容器是不带应用的容器,容器名称根据实际情况而定。
  • [$Image_ID]为镜像ID。
  • 若执行该步骤后,成功启动新容器,说明容器镜像自身以及容器daemon运行正常,请联系阿里云技术支持对容器所属产品容器的启动程序进行诊断,然后对环境检查中的停止service_manager进程步骤进行回退,回退步骤请参考补充说明的KB文档中实施步骤启动操作步骤
  • 若无需保留测试容器再执行如下命令,其中[$Test_Container_ID]为无应用容器的容器ID。
    docker stop [$Test_Container_ID] && docker rm [$Test_Container_ID]

3.3. 结果验证

确认Docker宿主机中的该容器服务已到达终态,并且能正常提供服务。

4. 回滚方案

无需回滚,操作前的情况已是非正常状态。

5. 补充说明

  • 参见KB文档如下。
    KB 87194 通用方案:专有云禁止天基启动App容器
  • 若本文档无法对问题进行修复,则使用SupportTools收集日志,并咨询阿里云技术支持进行分析。容器无法启动排查流程如下。
    容器无法启动排查流程.pdf