emptyDir卷使用说明
1、功能说明
在 BIE 中创建应用,可以添加多个容器,1个应用部署至边缘,对应1个Pod。为了实现同一个Pod中多容器之间的数据共享的需求,支持了空目录存储卷(emptyDir)功能。
emptyDir 作为一个卷,可以挂在到容器内,如果容器内目录已存在,会覆盖,如果不存在,会新建。因此建议使用容器内不存在的目录,并且使用叶子目录。不同容器可以通过挂载同一个emptyDir卷来实现数据共享。emptyDir 卷的生命周期与其所属的 Pod 对象相同。
emptyDir 需要BIE 2.3.4及以上版本支持。
2、操作指南
2.1 节点
在【节点管理】页面创建节点 emptydir-node
2.2 应用
在【应用管理】页面创建应用 emptydir-app
2.2.1 卷
引入emptyDir类型的卷 conf
2.2.2 容器
增加两个标准容器 busybox0、busybox1
- busybox0 负责周期性向指定目录下文件(/etc/test/date.txt)写入时间戳
- busybox1 负责周期性从指定目录下文件(/etc/test/date.txt)读取时间戳
注意:这里不强制要求busybox0和busybox1挂载emptyDir卷的容器内目录相同。比如可以busybox0映射目录/etc/test0,而busybox1映射目录/etc/test1。
busybox0
镜像、卷配置参数如下
启动参数配置如下
busybox1
镜像、卷配置参数如下
启动参数配置如下
2.2.3 目标节点
在目标节点处选择 单节点匹配 ,选择 emptydir-node
2.4 部署
在 emptydir-node 节点详情页获取安装命令
在边缘节点进行安装
通过 kubectl get po -nbaetyl-edge-system
和kubectl get po -nbaetyl-edge
命令可以看到系统应用和用户应用部署情况
通过 kubectl logs -nbaetyl-edge emptydir-app-xxxxx busybox1
命令可以查看此Pod下busybox1容器的日志
可以看到 busybox1 容器从 emptyDir 挂在进去的 /etc/test 目录下读取到了 busybox0服务写的 date.txt 文件的时间戳数据
也可以通过kubectl exec -it -nbaetyl-edge emptydir-app-xxxxx -c busybox0 -- /bin/sh
和 kubectl exec -it -nbaetyl-edge emptydir-app-xxxxx -c busybox1 -- /bin/sh
命令分别进入对应容器内查看