Ascend Docker Runtime组件参考信息说明
Ascend Docker Runtime组件信息分为边缘应用容器日志输出指导、Ascend Docker Runtime默认挂载内容和Ascend Docker Runtime命令说明。可根据实际情况选择对应信息参考,示例如下:
- 边缘应用容器日志输出指导
- 背景
- 容器日志输出方式
- Ascend Docker Runtime默认挂载内容
- Ascend Docker Runtime命令说明
背景
由于边缘设备存储空间有限,并且很多边缘设备采用EMMC等flash作为存储介质,这些介质有使用寿命的限制。为避免存储空间很快被写满从而影响业务或存储介质很快达到使用寿命,本文描述边缘容器日志的输出建议,指导边缘容器以合适的方式输出日志。
简介
当前Atlas硬件上运行的边缘应用容器一般通过K8s兼容的边缘管理平台来管理,如华为云IEF、或基于kubeedge搭建的第三方边缘平台等。在此类平台下,容器日志的输出方式主要分为以下三种:
- 容器控制台标准输出(STDOUT和STDERR)方式
- 挂载到主机目录方式
- 容器日志直接输出到日志服务
如果系统中有日志服务器,建议直接在容器中将日志输出到日志服务中;如果没有,建议采用挂载到主机目录的方式输出日志,减少日志对硬件和其他业务影响的风险。
容器控制台标准输出方式
在这种方式下,应用将容器的日志输出到标准输出。缺省情况下,Docker引擎捕捉所有容器的标准输出,使用JSON格式写入到文件里,该文件会保存到主机的“/var/lib/docker/containers/containerid”目录下,如图1所示。
如果边缘管理平台不支持该目录下日志文件的绕接或日志绕接配置错误,会导致/var/lib/docker被占满,从而影响新容器的部署及其他容器业务的正常运行。故不建议采用该方式。
挂载到主机目录方式
该方式下边缘平台日志收集的方式如图2所示。
应用将容器日志挂载到边缘主机上。边缘管理平台提供主机上日志收集能力,并将主机文件日志进行绕接。
- 应用可以将容器日志挂载到主机上的非关键大容量目录,建议不要挂载到EMMC等存储介质上,避免影响硬件整体寿命。
- 边缘容器管理平台一般会支持该能力,建议使用该方案,以减少对系统目录var/lib/docker的影响。基于安全性考虑,该配置需要符合所在组织的安全要求。
Ascend Docker Runtime默认挂载内容
Ascend Docker Runtime会根据实际环境情况默认以只读方式挂载以下目录和文件到容器中。
路径 |
说明 |
---|---|
/dev/davinciX |
NPU设备,X是ID号。例如:davinci0。 |
/dev/davinci_manager |
管理设备。 |
/usr/local/Ascend/driver/tools |
目录,驱动提供的工具包。 |
/usr/local/Ascend/driver/lib64 |
目录,驱动提供的用户态库。 |
/usr/local/sbin/npu-smi |
文件,NPU-SMI工具。 |
/etc/hdcBasic.cfg |
文件,hdc基础文件。 |
/etc/sys_version.conf |
文件,驱动的版本信息。 |
路径 |
说明 |
---|---|
/dev/davinciX |
NPU设备,X是ID号。例如:davinci0。 |
/dev/davinci_manager |
davinci相关的设备管理的设备。 |
/usr/local/bin/npu-smi |
文件,NPU-SMI工具。 |
/etc/hdcBasic.cfg |
文件,hdc基础文件。 |
/etc/sys_version.conf |
文件,驱动的版本信息。 |
路径 |
说明 |
---|---|
/dev/davinciX |
NPU设备,X是ID号。例如:davinci0。 |
/dev/davinci_manager |
管理设备。 |
/dev/hisi_hdc |
管理设备。 |
/dev/devmm_svm |
管理设备。 |
/home/data/miniD/driver/lib64 |
目录,驱动提供的用户态库。 |
/usr/local/lib/libdcmi.so |
文件,DCMI动态库。 |
/usr/local/bin/npu-smi |
文件,NPU-SMI工具。 |
路径 |
说明 |
---|---|
/dev/davinciX |
NPU设备,X是ID号。例如:davinci0。 |
/dev/davinci_manager |
管理设备。 |
/dev/hisi_hdc |
管理设备。 |
/dev/devmm_svm |
管理设备。 |
/usr/local/Ascend/driver/lib64 |
目录,驱动提供的用户态库。 |
/usr/local/Ascend/driver/include |
目录,驱动提供的头文件。 |
/usr/local/dcmi |
目录,DCMI头文件和库。 |
/usr/local/bin/npu-smi |
文件,NPU-SMI工具。 |
Ascend Docker Runtime命令说明
Ascend Docker Runtime安装后,会在安装目录生成可执行工具,涉及到的指令为内部命令,用户请勿直接使用,相关指令如表 命令说明所示。
工具名 |
短指令 |
长指令 |
---|---|---|
ascend-docker-cli |
d |
devices |
p |
pid |
|
r |
rootfs |
|
o |
options |
|
f |
mount-file |
|
i |
mount-dir |
|
ascend-docker-plugin-install-helper |
- |
add |
- |
rm |
|
h |
- |
|
ascend-docker-runtime |
- |
create |
b |
bundle |
|
ascend-docker-destroy |
- |
- |
- 因为Ascend Docker Runtime会将输入参数直接传递至runc或者docker-runc,所以runc/docker-runc的相关参数也会被Ascend Docker Runtime接受,用户请自行参考所在环境的runc/docker-runc的命令行选项使用相关参数。
- ascend-docker-hook工具会忽略参数运行,运行时会接受标准输入。