昇腾社区首页
中文
注册
开发者
下载

Container Manager

Container Manager组件直接在物理机上通过二进制方式运行。

  1. 使用root用户登录服务器。
  2. 将获取到的Container Manager软件包上传至服务器的任意目录(以下以“/home/container-manager”目录为例)。
  3. 进入“/home/container-manager”目录并进行解压操作。
    unzip Ascend-mindxdl-container-manager_{version}_linux-{arch}.zip

    <version>为软件包的版本号;<arch>为CPU架构。

  4. (可选)创建自定义故障码配置文件,自定义故障码处理级别。配置及使用详情请参见(可选)配置芯片故障级别,以下步骤不体现该文件。
  5. 创建并编辑container-manager.service文件。
    1. 执行以下命令,创建container-manager.service文件。
      vi container-manager.service
    2. 参考如下内容,写入container-manager.service文件中。“ExecStart”字段中加粗的内容为启动命令,启动参数说明请参见表1,用户可以根据实际需要进行修改。

      [Unit]
      Description=Ascend container manager
      Documentation=hiascend.com
      
      [Service]
      ExecStart=/bin/bash -c "container-manager run -ctrStrategy ringRecover -logPath=/var/log/mindx-dl/container-manager/container-manager.log >/dev/null  2>&1 &"
      Restart=always
      RestartSec=2
      KillMode=process
      Environment="GOGC=50"
      Environment="GOMAXPROCS=2"
      Environment="GODEBUG=madvdontneed=1"
      Type=forking
      User=root
      Group=root
      
      [Install]
      WantedBy=multi-user.target
    3. 按“Esc”键,输入:wq!保存并退出。
  6. 创建并编辑container-manager.timer文件。通过配置timer延时启动,可保证Container Manager启动时NPU卡已就位。
    1. 执行以下命令,创建container-manager.timer文件。
      vi container-manager.timer
    2. 参考以下示例,并将其写入container-manager.timer文件中。
      [Unit]
      Description=Timer for container manager Service
      
      [Timer]
      # 设置Container Manager延时启动时间,请根据实际情况调整
      OnBootSec=60s 
      Unit=container-manager.service
      
      [Install]
      WantedBy=timers.target
    3. 按“Esc”键,输入:wq!保存并退出。
  7. 依次执行以下命令,启用Container Manager服务。
    # 准备Container Manager二进制文件到PATH
    cp container-manager /usr/local/bin
    chmod 500 /usr/local/bin/container-manager
    
    # 准备Container Manager系统服务文件
    cp container-manager.service /etc/systemd/system
    cp container-manager.timer /etc/systemd/system      
    
    # 启动Container Manager系统服务
    systemctl enable container-manager.service 
    systemctl enable container-manager.timer 
    systemctl start container-manager.service
    systemctl start container-manager.timer

参数说明

表1 Container Manager启动参数

命令

参数

类型

默认值

说明

help

-

-

-

查看帮助信息。

version

-

-

-

查看Container Manager的版本信息。

run

-logPath

string

/var/log/mindx-dl/container-manager/container-manager.log

日志文件。

说明:

单个日志文件超过20MB时,会触发自动转储功能,文件大小上限不支持修改。转储后文件的命名格式为container-manager-触发转储的时间.log,例如:container-manager-2025-11-07T03-38-24.402.log。

-logLevel

int

0

日志级别:

  • -1:debug
  • 0:info
  • 1:warning
  • 2:error
  • 3:critical

-maxAge

int

7

日志备份时间,取值范围为[7, 700],单位为天。

-maxBackups

int

30

转储后日志文件保留个数上限,取值范围为(0, 30],单位为个。

-ctrStrategy

string

never

故障容器启停策略:

  • never:不进行容器启停。
  • singleRecover:仅启停挂载单个故障芯片的容器。故障产生时,停止容器;故障恢复后,将容器重新拉起。
  • ringRecover:启停挂载故障芯片所关联的所有芯片的容器。故障产生时,停止容器;故障恢复后,将容器重新拉起。
说明:
  • Container Manager在感知到芯片处于RestartRequest、RestartBusiness、FreeRestartNPU和RestartNPU类型故障时,才会进行容器启停操作。故障类型说明请参见故障码级别说明
  • 当故障容器启停策略配置为singleRecover或者ringRecover时,不支持用户通过容器运行时自动重启容器,二者选其一即可。
  • 若用户手动干预导致容器停止,可能会造成Container Manager内存数据混乱,导致容器状态异常。

-sockPath

string

/run/docker.sock

容器运行时的sock文件,该路径不允许为软链接。

-runtimeType

string

docker

容器运行时类型:

  • docker:容器运行时为docker。
  • containerd:容器运行时为containerd。
    说明:
    • Container Manager仅支持管理一种容器运行时启动的容器。
    • 当容器运行时为containerd时,仅支持管理命名空间不为moby的容器。当多个命名空间下有相同名称的容器,容器管理功能可能会出现异常。

-faultConfigPath

string

""

自定义故障配置文件路径。若不配置,则使用默认的故障码配置。自定义故障配置文件详情请参见故障级别配置

说明:
  • 该路径不允许为软链接。
  • 该文件权限需不高于640。

status

-

-

-

查询容器恢复进度,包括容器ID、状态、状态开始时间及描述信息。容器的状态定义及变化规则详细请参见容器恢复

说明:

如果status查询到的容器信息有误,需确认run服务是否已经终止,或者环境上启动了一个以上的Container Manager

Container Manager服务已经启动后,若需要修改Container Manager的启动参数,请修改服务配置文件中的启动参数后,执行以下命令,重启Container Manager系统服务。

systemctl daemon-reload && systemctl restart container-manager