通过本地磁盘存储将容器所在宿主机的文件目录挂载到容器的指定路径中,也可以不填写源路径。
使用本地硬盘有四种形式:
- 主机路径挂载:将容器所在宿主机的文件目录挂载到容器指定的挂载点中,如容器需要访问/etc/hosts则可以使用HostPath映射/etc/hosts等场景。
- 临时路径挂载:用于临时存储,生命周期与容器实例相同。容器实例消亡时,EmptyDir会被删除,数据会永久丢失。
- 配置项挂载:将ConfigMap配置项中的key映射到容器中,可以用于挂载配置文件到指定容器目录。ConfigMap的创建请参见创建配置项,具体使用请参见使用配置项。
- 密钥挂载:将密钥中的数据挂载到容器的某一路径中。密钥是一种用于存储工作负载所需要认证信息、密钥的敏感信息等的资源类型,内容由用户决定。Secret的创建请参见创建密钥,具体使用请参见使用密钥。
下面分别介绍如何通过这四种形式进行挂载。
主机路径(HostPath)挂载表示将主机上的路径挂载到指定的容器路径。通常用于:“容器工作负载程序生成的日志文件需要永久保存”或者“需要访问宿主机上Docker引擎内部数据结构的容器工作负载”。
步骤 1 参照创建无状态负载(Deployment)、创建有状态负载(StatefulSet)或创建守护进程集(DaemonSet),在“容器设置”步骤中,展开“数据存储”,单击“添加本地磁盘”。
步骤 2 设置添加本地磁盘参数,如下表。
参数 | 参数说明 |
存储类型 | 主机路径(HostPath)。 |
主机路径 | 输入主机路径,如/etc/hosts。 说明 请注意“主机路径”不能设置为根目录“/”,否则将导致挂载失败。挂载路径一般设置为: /opt/xxxx(但不能为/opt/cloud) /mnt/xxxx(但不能为/mnt/paas) /tmp/xxx /var/xxx (但不能为/var/lib、/var/script、/var/paas等关键目录) /xxxx(但不能和系统目录冲突,例如bin、lib、home、root、boot、dev、etc、lost+found、mnt、proc、sbin、srv、tmp、var、media、opt、selinux、sys、usr等) 注意不能设置为/home/paas、/var/paas、/var/lib、/var/script、/mnt/paas、/opt/cloud,否则会导致系统或节点安装失败。 |
添加容器挂载 | 配置如下参数: 1. 子路径:请输入子路径,如:tmp。 使用子路径挂载本地磁盘,实现在单一Pod中重复使用同一个Volume。不填写时默认为根。 2. 挂载路径:请输入挂载路径,如:/tmp。 数据存储挂载到容器上的路径。请不要挂载在系统目录下,如“/”、“/var/run”等,会导致容器异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响容器启动的文件,否则文件会被替换,导致容器启动异常,工作负载创建失败。 须知:挂载高危目录的情况下 ,建议使用低权限帐号启动,否则可能会造成宿主机高危文件被破坏。 3. 权限:
单击“添加容器挂载”可增加多条设置,单击“确定”完成配置。 |
临时路径(EmptyDir)挂载适用于临时存储、灾难恢复、共享运行时数据等场景,工作负载实例的删除或者迁移会导致临时路径被删除。
步骤 1 参照创建无状态负载(Deployment)、创建有状态负载(StatefulSet)或创建守护进程集(DaemonSet),在添加容器后,展开“数据存储”,单击“添加本地磁盘”。
步骤 2 选择本地磁盘类型为“临时路径挂载”,设置添加本地磁盘参数,如下表。
参数 | 参数说明 |
存储类型 | 临时路径(EmptyDir)。 |
磁盘介质 |
说明:
|
添加容器挂载 | 配置如下参数: 1. 子路径:请输入子路径,如:tmp。 使用子路径挂载本地磁盘,实现在单一Pod中重复使用同一个Volume。不填写时默认为根。 2. 挂载路径:请输入挂载路径,如:/tmp。 数据存储挂载到容器上的路径。请不要挂载在系统目录下,如“/”、“/var/run”等,会导致容器异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响容器启动的文件,否则文件会被替换,导致容器启动异常,工作负载创建失败。 须知:挂载高危目录的情况下 ,建议使用低权限帐号启动,否则可能会造成宿主机高危文件被破坏。 3. 权限:
单击“添加容器挂载”可增加多条设置,单击“确定”完成配置。 |
配置项(ConfigMap)挂载是将配置项中的数据挂载到指定的容器路径。平台提供工作负载代码和配置文件的分离,“配置项挂载”用于处理工作负载配置参数。用户需要提前创建工作负载配置,操作步骤请参见创建配置项。
步骤 1 参照创建无状态负载(Deployment)、创建有状态负载(StatefulSet)或创建守护进程集(DaemonSet),在添加容器后,展开“数据存储”,单击“添加本地磁盘”。
步骤 2 选择本地磁盘类型为“配置项挂载”,设置添加本地磁盘参数,如下表。
表-卷类型选择配置项挂载
参数 | 参数说明 |
存储类型 | 配置项(ConfigMap)。 |
配置项 | 选择对应的配置项名称。 配置项需要提前创建,具体请参见“创建配置项”。 |
添加容器挂载 | 配置如下参数: 1. 子路径:请输入子路径,如:tmp。 使用子路径挂载本地磁盘,实现在单一Pod中重复使用同一个Volume。不填写时默认为根。 2. 挂载路径:请输入挂载路径,如:/tmp。 数据存储挂载到容器上的路径。请不要挂载在系统目录下,如“/”、“/var/run”等,会导致容器异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响容器启动的文件,否则文件会被替换,导致容器启动异常,工作负载创建失败。 须知:挂载高危目录的情况下 ,建议使用低权限帐号启动,否则可能会造成宿主机高危文件被破坏。 3. 设置权限:只读。只能读容器路径中的数据卷。 单击“添加容器挂载”可增加多条设置,单击“确定”完成配置。 |
密钥(Secret)挂载将密钥中的数据挂载到指定的容器路径,密钥内容由用户决定。用户需要提前创建密钥,操作步骤请参见创建密钥。
步骤 1 参照创建无状态负载(Deployment)、创建有状态负载(StatefulSet)或创建守护进程集(DaemonSet),在添加容器后,展开“数据存储”,单击“添加本地磁盘”。
步骤 2 选择本地磁盘类型为“密钥挂载”,设置添加本地磁盘参数,如下表。
卷类型选择密钥挂载
参数 | 参数说明 |
存储类型 | 密钥(Secret)。 |
密钥 | 选择对应的密钥名称。 密钥需要提前创建,具体请参见“创建密钥”。 |
添加容器挂载 | 配置如下参数: 1. 子路径:请输入子路径,如:tmp。 使用子路径挂载本地磁盘,实现在单一Pod中重复使用同一个Volume。不填写时默认为根。 2. 挂载路径:请输入挂载路径,如:/tmp。 数据存储挂载到容器上的路径。请不要挂载在系统目录下,如“/”、“/var/run”等,会导致容器异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响容器启动的文件,否则文件会被替换,导致容器启动异常,工作负载创建失败。 须知 挂载高危目录的情况下 ,建议使用低权限帐号启动,否则可能会造成宿主机高危文件被破坏。 3. 设置权限:只读。只能读容器路径中的数据卷。 单击“添加容器挂载”可增加多条设置,单击“确定”完成配置。 |