下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

准备镜像

用户可通过以下两种方式准备镜像,获取镜像后依次为安装的相应组件创建节点标签、创建用户、创建日志目录和创建命名空间。

  • 从昇腾镜像仓库拉取镜像。用户可以从昇腾镜像仓库获取基于制作镜像示例中的步骤制作好的集群调度各组件的镜像,具体操作可参考从昇腾镜像仓库拉取镜像章节。镜像制作完成后,请及时进行安全加固;如修复基础镜像的漏洞、安装第三方依赖导致的漏洞等。
  • (推荐)制作镜像。本章节以HCCL-Controller为例,介绍了制作集群调度组件容器部署时所需要的镜像,请参考制作镜像章节进行操作。软件包中的Dockerfile仅作为参考,用户可基于本示例制作定制化镜像。
  • 请根据K8s所使用的容器运行时制作相应的镜像。如K8s 1.24以上版本默认使用containerd作为容器运行时,需要在运行前制作containerd的镜像。

从昇腾镜像仓库拉取镜像

  1. 确保服务器能访问互联网后,访问昇腾镜像仓库
  2. 在左侧导航栏选择“MindX DL”。然后根据下表选择组件对应的镜像。

    NodeDResilience-ControllerElastic-Agent软件包的镜像tag为v5.0.RC2;其他组件软件包的镜像tag为v5.0.RC2.2。

    表1 镜像列表

    组件

    镜像名称

    镜像tag

    拉取镜像的节点

    说明

    Resilience-Controller

    resilience-controller

    v5.0.RC2

    管理节点

    拉取的镜像需要重命名后才能使用组件启动yaml进行部署,可参考步骤3

    Volcano

    根据需要选择镜像:

    v1.4.0-5.0.RC2.2

    v1.7.0-5.0.RC2.2

    HCCL-Controller

    hccl-controller

    v5.0.RC2.2

    Ascend Operator

    ascend-operator

    v5.0.RC2.2

    NodeD

    noded

    v5.0.RC2

    计算节点

    NPU-Exporter

    npu-exporter

    v5.0.RC2.2

    Ascend Device Plugin

    ascend-k8sdeviceplugin

    v5.0.RC2.2

    若无下载权限,请根据页面提示申请权限。提交申请后等待管理员审核,审核通过后即可下载镜像。

  3. 昇腾镜像仓库中拉取的集群调度镜像与组件启动yaml中的名字不一致,需要重命名拉取的镜像后才能启动。根据以下步骤将2中获取的镜像重新命名,同时建议删除原始名字的镜像。具体操作如下。
    1. 执行以下命令,重命名镜像(用户需根据所使用的组件,选取对应命令执行)。
      docker tag swr.cn-south-1.myhuaweicloud.com/ascendhub/resilience-controller:v5.0.RC2.2 resilience-controller:v5.0.RC2.2
      
      docker tag swr.cn-south-1.myhuaweicloud.com/ascendhub/ascend-operator:v5.0.RC2.2 ascend-operator:v5.0.RC2.2
      
      docker tag swr.cn-south-1.myhuaweicloud.com/ascendhub/npu-exporter:v5.0.RC2.2 npu-exporter:v5.0.RC2.2
      
      docker tag swr.cn-south-1.myhuaweicloud.com/ascendhub/ascend-k8sdeviceplugin:v5.0.RC2.2 ascend-k8sdeviceplugin:v5.0.RC2.2
      
      docker tag swr.cn-south-1.myhuaweicloud.com/ascendhub/vc-controller-manager:v1.4.0 volcanosh/vc-controller-manager:v1.4.0            # v1.7.0版本的Volcano需要将v1.4.0改为v1.7.0
      
      docker tag swr.cn-south-1.myhuaweicloud.com/ascendhub/vc-scheduler:v1.4.0 volcanosh/vc-scheduler:v1.4.0
      
      docker tag swr.cn-south-1.myhuaweicloud.com/ascendhub/noded:v5.0.RC2 noded:v5.0.RC2
      docker tag swr.cn-south-1.myhuaweicloud.com/ascendhub/hccl-controller:v5.0.RC2.2 hccl-controller:v5.0.RC2.2
    2. (可选)执行以下命令,删除原始名字镜像(用户需根据所使用的组件,选取对应命令执行)。
      docker rmi swr.cn-south-1.myhuaweicloud.com/ascendhub/resilience-controller:v5.0.RC2
      docker rmi swr.cn-south-1.myhuaweicloud.com/ascendhub/ascend-operator:v5.0.RC2.2
      docker rmi swr.cn-south-1.myhuaweicloud.com/ascendhub/npu-exporter:v5.0.RC2.2
      docker rmi swr.cn-south-1.myhuaweicloud.com/ascendhub/ascend-k8sdeviceplugin:v5.0.RC2.2
      docker rmi swr.cn-south-1.myhuaweicloud.com/ascendhub/vc-controller-manager:v1.4.0  # v1.7.0版本的Volcano需要将v1.4.0改为v1.7.0
      docker rmi swr.cn-south-1.myhuaweicloud.com/ascendhub/vc-scheduler:v1.4.0
      docker rmi swr.cn-south-1.myhuaweicloud.com/ascendhub/noded:v5.0.RC2
      docker rmi swr.cn-south-1.myhuaweicloud.com/ascendhub/hccl-controller:v5.0.RC2.2

制作镜像

  1. 获取软件包章节,获取需要安装的集群调度组件软件包。
  2. 将软件包上传到制作镜像服务器任意目录,然后解压。以HCCL-Controller为例,放到“/home/ascend-hccl-controller”目录,目录结构如下。
    root@ubuntu:/home/ascend-hccl-controller# ll
    total 66328
    drwxr-xr-x 3 root root     4096 Jun 24 20:24 ./
    drwxr-x--- 9 root root     4096 Jun 24 20:24 ../
    -r-------- 1 root root      677 Jun 22 04:00 Dockerfile
    -r-x------ 1 root root 36578912 Jun 22 04:00 hccl-controller*
    -r-------- 1 root root     2493 Jun 22 04:00 hccl-controller-v5.0.RC2.2.yaml
    NPU-ExporterAscend Device Plugin若以容器化的形式部署在Atlas 200I SoC A1 核心板上,需要进行如下操作。
    1. 在制作镜像时检查宿主机HwHiAiUser、HwDmUser、HwBaseUser用户的UIDGID,并记录该GIDUID的取值。
    2. 查看在Dockerfile-310P-1usoc中创建HwHiAiUser、HwDmUser、HwBaseUser用户时指定的GIDUID是否与宿主机的一致。如果一致则不做修改;如果不一致,请手动修改Dockerfile-310P-1usoc文件使其保持一致,同时需要保证每台宿主机上HwHiAiUser、HwDmUser、HwBaseUser用户的GIDUID的取值一致。
  3. 检查制作集群调度组件镜像的节点是否存在如下基础镜像。
    • 执行docker images | grep ubuntu命令检查ubuntu镜像,Arm架构和x86_64架构镜像大小有差异。
      ubuntu              18.04               6526a1858e5d        2 years ago         64.2MB
    • 如果需要安装Volcano,则需要检查alpine镜像是否存在。执行docker images | grep alpine命令检查,回显示例如下,Arm架构和x86_64架构镜像大小有差异。
      alpine            latest              a24bb4013296        2 years ago         5.57MB

    若上述基础镜像不存在,使用表 获取基础镜像命令中相关命令拉取基础镜像(拉取镜像需要服务器能联网)。

    表2 获取基础镜像命令

    基础镜像

    拉取镜像命令

    说明

    ubuntu:18.04

    docker pull ubuntu:18.04

    拉取时自动识别系统架构。

    alpine:latest

    • x86_64架构

      docker pull alpine:latest

    • Arm架构

      docker pull arm64v8/alpine:latest

      docker tag arm64v8/alpine:latest alpine:latest

    -

  4. 进入组件解压目录,执行docker build命令制作镜像,命令参考如下表。
    表3 各组件镜像制作命令

    节点产品类型

    组件名称

    镜像制作命令

    说明

    其他类型

    Ascend Device Plugin

    docker build --no-cache -t ascend-k8sdeviceplugin:v5.0.RC2.2 ./

    {tag}需要参考软件包上的版本。

    说明:

    NodeDResilience-ControllerElastic-Agent软件包的镜像tag为v5.0.RC2;其他组件软件包的镜像tag为v5.0.RC2.2。

    Atlas 200I SoC A1 核心板

    docker build --no-cache -t ascend-k8sdeviceplugin:v5.0.RC2.2 -f Dockerfile-310P-1usoc ./

    其他类型

    NPU-Exporter

    docker build --no-cache -t npu-exporter:v5.0.RC2.2 ./

    Atlas 200I SoC A1 核心板

    docker build --no-cache -t npu-exporter:v5.0.RC2.2 -f Dockerfile-310P-1usoc ./

    其他类型

    HCCL-Controller

    docker build --no-cache -t hccl-controller:v5.0.RC2.2 ./

    Ascend Operator

    docker build --no-cache -t ascend-operator:v5.0.RC2.2 ./

    Resilience-Controller

    docker build --no-cache -t resilience-controller:v5.0.RC2 ./

    NodeD

    docker build --no-cache -t noded:v5.0.RC2 ./

    Volcano

    v1.4.0版本执行以下命令。

    docker build --no-cache -t volcanosh/vc-scheduler:v1.4.0 ./ -f ./Dockerfile-scheduler
    docker build --no-cache -t volcanosh/vc-controller-manager:v1.4.0 ./ -f ./Dockerfile-controller

    v1.7.0版本执行以下命令。

    docker build --no-cache -t volcanosh/vc-scheduler:v1.7.0 ./ -f ./Dockerfile-scheduler
    docker build --no-cache -t volcanosh/vc-controller-manager:v1.7.0 ./ -f ./Dockerfile-controller

    -

    HCCL-Controller组件的镜像制作为例,执行docker build --no-cache -t hccl-controller:v5.0.RC2.2 .进行制作:
    root@ubuntu:/home/ascend-hccl-controller# docker build --no-cache -t hccl-controller:v5.0.RC2.2 .
    Sending build context to Docker daemon  43.92MB
    Step 1/5 : FROM ubuntu:18.04 as build
     ---> 0ccb47f043f5
    Step 2/5 : RUN useradd -d /home/hwMindX -u 9000 -m -s /usr/sbin/nologin hwMindX &&     usermod root -s /usr/sbin/nologin
     ---> Using cache
     ---> ba8caef1ba53
    Step 3/5 : COPY ./hccl-controller  /usr/local/bin/
     ---> 14575155c852
    Step 4/5 : RUN chown -R hwMindX:hwMindX /usr/local/bin  &&    chmod 750 /home/hwMindX &&    chmod 550 /usr/local/bin/ &&    chmod 500 /usr/local/bin/hccl-controller &&    echo 'umask 027' >> /etc/profile &&     echo 'source /etc/profile' >> /home/hwMindX/.bashrc
     ---> Running in 14a81476a370
    Removing intermediate container 14a81476a370
     ---> 63c668d03745
    Step 5/5 : USER hwMindX
     ---> Running in 63407e98c56d
    Removing intermediate container 63407e98c56d
     ---> be9c4a8d385b
    Successfully built be9c4a8d385b
    Successfully tagged hccl-controller:v5.0.RC2.2
  5. 满足以下场景可以跳过本步骤。
    • 已将制作好的集群调度组件镜像上传到私有镜像仓库,各节点可以通过私有镜像仓库拉取集群调度组件的镜像。
    • 已在安装集群调度组件各节点制作好了组件对应的镜像。
    如不满足上述场景,则需要手动分发各组件镜像到各个节点。以HCCL-Controller组件为例,使用离线镜像包的方式,分发镜像到其他节点。
    1. 将制作完成的镜像保存成离线镜像。
      docker save hccl-controller:v5.0.RC2.2 > hccl-controller-v5.0.RC2.2-linux-arrch64.tar
    2. 将镜像拷贝到其他节点。
      scp hccl-controller-v5.0.RC2.2-linux-arrch64.tar root@{目标节点IP地址}:保存路径
    3. 以root用户登录各个节点载入离线镜像。
      docker load < hccl-controller-v5.0.RC2.2-linux-arrch64.tar
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词