Ascend Docker Runtime
- 使用容器化支持、整卡调度、静态vNPU调度、动态vNPU调度、断点续训、弹性训练、推理卡故障恢复或推理卡故障重调度的用户,必须安装Ascend Docker Runtime。
- 仅使用资源监测的用户,可以不安装Ascend Docker Runtime,请直接跳过本章节。
前提条件
安装前,请确保runc文件的用户ID为0。
确认安装场景
目前仅支持root用户安装Ascend Docker Runtime,请根据实际情况选择对应的安装方式。
- 在任意节点执行以下命令,查询节点名称。
kubectl get node
回显示例如下:1 2
NAME STATUS ROLES AGE VERSION ubuntu Ready worker 23h v1.17.3
- 在任意节点执行以下命令,查看当前节点的容器运行时。其中node-name为节点名称。
- 不使用K8s场景
docker --version # Docker containerd --version # Containerd
- 若回显为Docker的版本信息,表示当前是Docker场景。
- 若回显为Containerd的版本信息,表示当前是Containerd场景。
- 若同时有Docker和Containerd的版本信息,请用户自行确定任务所要使用的容器运行时。
- K8s集成容器运行时场景
kubectl describe node <node-name> | grep -i runtime
- 若回显中有Docker信息,表示当前是K8s集成Docker场景。
- 若回显中有Containerd信息,表示当前是K8s集成Containerd场景。
- 不使用K8s场景
Docker场景下安装Ascend Docker Runtime
K8s集成Docker场景安装Ascend Docker Runtime,与Docker场景下安装Ascend Docker Runtime操作一致。
- 安装包下载完成后,在所有节点,进入安装包(run包)所在路径。
cd <path to run package>
- 执行以下命令,为软件包添加可执行权限。
chmod u+x Ascend-docker-runtime_{version}_linux-{arch}.run
- 执行如下命令,校验软件包安装文件的一致性和完整性。
./Ascend-docker-runtime_{version}_linux-{arch}.run --check
回显示例如下:1 2 3 4
[WARNING]: --check is meaningless for Ascend-docker-runtime and will be discarded in the future Verifying archive integrity... ./Ascend-docker-runtime_7.0.RC1_linux-x86_64.run does not contain an embedded SHA256 checksum. ... All good.
- 可通过以下命令安装Ascend Docker Runtime。
- 安装到默认路径下,执行以下命令。
./Ascend-docker-runtime_{version}_linux-{arch}.run --install
- 安装到指定路径下,执行以下命令,“--install-path”参数为指定的安装路径。
./Ascend-docker-runtime_{version}_linux-{arch}.run --install --install-path=<path>
Docker配置文件路径不是默认的“/etc/docker/daemon.json”时,需要新增--config-file-path参数,用于指定该配置文件路径。
回显示例如下,表示安装成功。
1 2 3 4
Uncompressing ascend-docker-runtime 100% [INFO]: installing ascend docker runtime ... [INFO] Ascend Docker Runtime install success
- 安装到默认路径下,执行以下命令。
- 执行以下命令,使Ascend Docker Runtime生效。
systemctl daemon-reload && systemctl restart docker
Ascend Device Plugin在启动时会自动检测Ascend Docker Runtime是否存在,所以需要先启动Ascend Docker Runtime,再启动Ascend Device Plugin。若先启动Ascend Device Plugin后再启动Ascend Docker Runtime,需要参见Ascend Device Plugin章节重新启动Ascend Device Plugin。
Containerd场景下安装Ascend Docker Runtime
- 安装包下载完成后,首先进入安装包(run包)所在路径。
cd <path to run package>
- 执行以下命令,为软件包添加可执行权限。
chmod u+x Ascend-docker-runtime_{version}_linux-{arch}.run
- 执行如下命令,校验软件包安装文件的一致性和完整性。
./Ascend-docker-runtime_{version}_linux-{arch}.run --check
回显示例如下:[WARNING]: --check is meaningless for Ascend-docker-runtime and will be discarded in the future Verifying archive integrity... ./Ascend-docker-runtime_7.0.RC1_linux-x86_64.run does not contain an embedded SHA256 checksum. ... All good.
- 可通过以下命令安装Ascend Docker Runtime。
- 安装到默认路径下。
/Ascend-docker-runtime_{version}_linux-{arch}.run --install --install-scene=containerd
- 安装到指定路径下,执行以下命令,“--install-path”参数为指定的安装路径。
/Ascend-docker-runtime_{version}_linux-{arch}.run --install --install-scene=containerd --install-path=<path>
Containerd的配置文件路径不是默认的“/etc/containerd/config.toml”时,需要新增--config-file-path参数,用于指定该配置文件路径。
回显示例如下,表示安装成功。Uncompressing ascend-docker-runtime 100% [INFO]: installing ascend docker runtime ... [INFO] Ascend Docker Runtime install success
- 安装到默认路径下。
- (可选)如果安装失败,可参照以下步骤修改Containerd配置文件。
- 修改配置文件。
- Containerd无默认配置文件场景:依次执行以下命令,创建并修改配置文件。
mkdir /etc/containerd containerd config default > /etc/containerd/config.toml vim /etc/containerd/config.toml
- Containerd已有配置文件场景:打开并修改配置文件。
vim /etc/containerd/config.toml
- Containerd无默认配置文件场景:依次执行以下命令,创建并修改配置文件。
- 执行以下命令查询当前cgroup的版本。
stat -fc %T /sys/fs/cgroup/
- 若回显为tmpfs,表示当前为cgroup v1版本。
- 若回显为cgroup2fs,表示当前为cgroup v2版本
- 根据cgroup的版本修改runtime_type字段,并修改Ascend Docker Runtime安装路径,示例如下加粗部分所示。
- cgroup v1
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes] [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] runtime_type = "io.containerd.runtime.v1.linux" runtime_engine = "" runtime_root = "" privileged_without_host_devices = false base_runtime_spec = "" [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] [plugins."io.containerd.grpc.v1.cri".cni] bin_dir = "/opt/cni/bin" conf_dir = "/etc/cni/net.d" max_conf_num = 1 conf_template = "" [plugins."io.containerd.grpc.v1.cri".registry] [plugins."io.containerd.grpc.v1.cri".registry.mirrors] [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"] endpoint = ["https://registry-1.docker.io"] [plugins."io.containerd.grpc.v1.cri".image_decryption] key_model = "" ... [plugins."io.containerd.monitor.v1.cgroups"] no_prometheus = false [plugins."io.containerd.runtime.v1.linux"] shim = "containerd-shim" runtime = "/usr/local/Ascend/Ascend-Docker-Runtime/ascend-docker-runtime" runtime_root = "" no_shim = false shim_debug = false [plugins."io.containerd.runtime.v2.task"] platforms = ["linux/amd64"] ...
- cgroup v2
[plugins."io.containerd.grpc.v1.cri".containerd.default_runtime.options] [plugins."io.containerd.grpc.v1.cri".containerd.runtimes] [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] base_runtime_spec = "" cni_conf_dir = "" cni_max_conf_num = 0 container_annotations = [] pod_annotations = [] privileged_without_host_devices = false runtime_engine = "" runtime_path = "" runtime_root = "" runtime_type = "io.containerd.runc.v2" [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] BinaryName = "/usr/local/Ascend/Ascend-Docker-Runtime/ascend-docker-runtime" CriuImagePath = "" CriuPath = "" CriuWorkPath = "" IoGid = 0 IoUid = 0 NoNewKeyring = false NoPivotRoot = false Root = "" ShimCgroup = "" SystemdCgroup = true ...
- cgroup v1
- 修改配置文件。
- 执行以下命令,重启Containerd。
systemctl daemon-reload && systemctl restart containerd
K8s集成Containerd场景下安装Ascend Docker Runtime
- 安装包下载完成后,首先进入安装包(run包)所在路径。
cd <path to run package>
- 执行以下命令,为软件包添加可执行权限。
chmod u+x Ascend-docker-runtime_{version}_linux-{arch}.run
- 执行如下命令,校验软件包安装文件的一致性和完整性。
./Ascend-docker-runtime_{version}_linux-{arch}.run --check
回显示例如下:[WARNING]: --check is meaningless for Ascend-docker-runtime and will be discarded in the future Verifying archive integrity... ./Ascend-docker-runtime_7.0.RC1_linux-x86_64.run does not contain an embedded SHA256 checksum. ... All good.
- 可通过以下命令安装Ascend Docker Runtime。
- 安装到默认路径下。
/Ascend-docker-runtime_{version}_linux-{arch}.run --install --install-scene=containerd
- 安装到指定路径下,执行以下命令,“--install-path”参数为指定的安装路径。
/Ascend-docker-runtime_{version}_linux-{arch}.run --install --install-scene=containerd --install-path=<path>
回显示例如下,表示安装成功。Uncompressing ascend-docker-runtime 100% [INFO]: installing ascend docker runtime ... [INFO] Ascend Docker Runtime install success
- 安装到默认路径下。
- (可选)如果安装失败,可参照以下步骤修改Containerd配置文件。
- 修改配置文件。
- Containerd无默认配置文件场景:依次执行以下命令,创建并修改配置文件。
mkdir /etc/containerd containerd config default > /etc/containerd/config.toml vim /etc/containerd/config.toml
- Containerd已有配置文件场景:打开并修改配置文件。
vim /etc/containerd/config.toml
- Containerd无默认配置文件场景:依次执行以下命令,创建并修改配置文件。
- 执行以下命令查询当前cgroup的版本。
stat -fc %T /sys/fs/cgroup/
- 若回显为tmpfs,表示当前为cgroup v1版本。
- 若回显为cgroup2fs,表示当前为cgroup v2版本
- 根据cgroup的版本修改runtime_type字段,并修改Ascend Docker Runtime安装路径,示例如下加粗部分所示。
- cgroup v1
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes] [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] runtime_type = "io.containerd.runtime.v1.linux" runtime_engine = "" runtime_root = "" privileged_without_host_devices = false base_runtime_spec = "" [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] [plugins."io.containerd.grpc.v1.cri".cni] bin_dir = "/opt/cni/bin" conf_dir = "/etc/cni/net.d" max_conf_num = 1 conf_template = "" [plugins."io.containerd.grpc.v1.cri".registry] [plugins."io.containerd.grpc.v1.cri".registry.mirrors] [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"] endpoint = ["https://registry-1.docker.io"] [plugins."io.containerd.grpc.v1.cri".image_decryption] key_model = "" ... [plugins."io.containerd.monitor.v1.cgroups"] no_prometheus = false [plugins."io.containerd.runtime.v1.linux"] shim = "containerd-shim" runtime = "/usr/local/Ascend/Ascend-Docker-Runtime/ascend-docker-runtime" runtime_root = "" no_shim = false shim_debug = false [plugins."io.containerd.runtime.v2.task"] platforms = ["linux/amd64"] ...
- cgroup v2
[plugins."io.containerd.grpc.v1.cri".containerd.default_runtime.options] [plugins."io.containerd.grpc.v1.cri".containerd.runtimes] [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] base_runtime_spec = "" cni_conf_dir = "" cni_max_conf_num = 0 container_annotations = [] pod_annotations = [] privileged_without_host_devices = false runtime_engine = "" runtime_path = "" runtime_root = "" runtime_type = "io.containerd.runc.v2" [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] BinaryName = "/usr/local/Ascend/Ascend-Docker-Runtime/ascend-docker-runtime" CriuImagePath = "" CriuPath = "" CriuWorkPath = "" IoGid = 0 IoUid = 0 NoNewKeyring = false NoPivotRoot = false Root = "" ShimCgroup = "" SystemdCgroup = true ...
- cgroup v1
- 修改配置文件。
- 如需将节点上的容器运行时从Docker更改为Containerd,需要修改节点上kubelet的配置文件kubeadm-flags.env。详情请参见K8s官方文档。
- 如果存在Docker服务,请执行以下命令停止对应服务。
systemctl stop docker
- 执行命令,重启Containerd和kubelet,示例如下。
systemctl daemon-reload && systemctl restart containerd kubelet
Ascend Docker Runtime安装包命令行参数说明
参数说明如表1所示。
参数 |
说明 |
---|---|
--help | -h |
查询帮助信息。 |
--info |
查询软件包构建信息。在未来某个版本将废弃该参数。 |
--list |
查询软件包文件列表。在未来某个版本将废弃该参数。 |
--check |
检查软件包的一致性和完整性。在未来某个版本将废弃该参数。 |
--quiet |
静默安装,跳过交互式信息,需要配合install、uninstall或者upgrade使用。在未来某个版本将废弃该参数。 |
--noexec |
解压软件包到当前目录,但不执行安装脚本。配套--extract=<path>使用,格式为--noexec --extract=<path>。在未来某个版本将废弃该参数。 |
--extract=<path> |
解压软件包中文件到指定目录,需要配合--noexec参数一起使用。在未来某个版本将废弃该参数。 |
--tar arg1 [arg2 ...] |
对软件包执行tar命令,使用tar后面的参数作为命令的参数。例如执行--tar xvf命令,解压run安装包的内容到当前目录。在未来某个版本将废弃该参数。 |
--install |
安装软件包。可以指定安装路径--install-path=<path>,也可以不指定安装路径,直接安装到默认路径下。 |
--install-path=<path> |
指定安装路径。当环境上存在全局配置文件“ascend_dcoker_runtime_install.info”时,指定的安装路径必须与全局配置文件中保存的安装路径保持一致。如用户想更换安装路径,需先卸载原路径下的Ascend Docker Runtime软件包并确保全局配置文件“ascend_docker_runtime_install.info”已被删除。
|
--install-scene=<scene> |
Ascend Docker Runtime安装场景。默认值为docker,取值说明如下。
|
--uninstall |
卸载软件。如果安装时指定了安装路径,那么卸载时也需要指定安装路径,安装路径的参数为--install-path=<path>。 |
--upgrade |
升级软件。如果安装时指定了安装路径,那么升级时也需要指定安装路径,安装路径的参数为--install-path=<path>。 |
--config-file-path=<path> |
Docker或Containerd的配置文件路径。不指定该参数时默认使用以下路径。
|
--install-type=<type> |
仅支持在以下产品安装或升级Ascend Docker Runtime时使用该参数:
该参数用于设置Ascend Docker Runtime的默认挂载内容,且需要配合“--install”一起使用,格式为--install --install-type=<type>。<type>可选值为:
|
--ce=<ce> |
|
--version |
查询Ascend Docker Runtime版本。 |