上云无忧 > 文档中心 > 百度智能云智能边缘 - subpath子路径使用说明
智能边缘
百度智能云智能边缘 - subpath子路径使用说明

文档简介:
1. 功能说明: 场景1: 在 BIE 中创建应用时,可以添加多个容器,一个应用对应边缘侧的一个Pod,1个Pod包含多个容器。这种场景下,会出现以下需求: 1个Pod当中的多个容器期望挂载同一个卷,实现卷的共享。 将1个卷当中的不同配置映射进不容的容器当中,实现卷的数据隔离。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

1. 功能说明

场景1

在 BIE 中创建应用时,可以添加多个容器,一个应用对应边缘侧的一个Pod,1个Pod包含多个容器。这种场景下,会出现以下需求:

  • 1个Pod当中的多个容器期望挂载同一个卷,实现卷的共享。
  • 将1个卷当中的不同配置映射进不容的容器当中,实现卷的数据隔离。

场景2

希望将配置项当中key对应的value映射到容器内的某一个文件当中,并且不影响该文件同级目录的其他文件。比如希望将一个yaml配置文件覆盖容器内已有的一个配置文件。

解决方案

上述需求可以通过Kubernetes的子路径(subPath)功能支持。子路径(subPath)用于指定所引用卷内的子路径,而不是其根路径。

子路径(subPath)在BIE 2.3.4 版本开始支持

2. 操作指南

2.1 创建节点

在【节点管理】页面创建节点 subpath-node

2.2 创建配置项

在【配置管理】页面点击创建配置项 subpath-conf,增加三对kv数据:

  • key0:000
  • key1:111
  • key2:222

上述的key0、key1、key2就是卷内子路径索引,通过指定key0、key1、key2将文件内容(value)赋值给映射的文件(非目录)

2.3 创建应用

  1. 在【应用管理】页面创建应用 subpath-app
  2. 创建卷conf,关联前面创建的配置项subpath-conf

  1. 添加容器,增加两个标准容器:

    • busybox0

      • 镜像地址:busybox:1.33
      • 卷配置

        • 容器目录:/etc/test/data,此处data是一个文件,而非目录
        • subpath:key0
        • 即将key0的value值作为busybox0中/etc/test/data的文件内容
      • 启动参数:

        • /bin/sh
        • -c
        • cat /etc/test/data;while true; do echo $(date); sleep 1; done
    • busybox1

      • 镜像地址:busybox:1.33
      • 卷配置

        • 容器目录:/etc/test/data,此处data是一个文件,而非目录
        • subpath:key1
        • 即将key1的value值作为busybox1中/etc/test/data的文件内容
      • 启动参数:

        • /bin/sh
        • -c
        • cat /etc/test/data;while true; do echo $(date); sleep 1; done
  2. 在目标节点处选择 单节点匹配 ,选择 subpath-node

2.4 节点安装

  1. 在 subpath-node 节点详情页获取安装命令

  1. 在边缘节点进行安装
  2. 执行以下命令,查看系统应用和用户应用部署情况
kubectl get po -nbaetyl-edge-system
kubectl get po -nbaetyl-edge

2.5 检查验证

  1. 执行以下命令,查看Pod下两个容器的日志
kubectl logs -nbaetyl-edge subpath-app-xxxxx busybox0
kubectl logs -nbaetyl-edge subpath-app-xxxxx busybox1

  1. 可以看到配置项的两组kv都是挂载到对应容器的 /etc/test/data 文件。通过不同的subpath映射,/etc/test/data 文件被赋予了不同的值。
  2. 也可以通过以下命令进入对应容器内查看/etc/test/data 文件的内容
kubectl exec -it -nbaetyl-edge subpath-app-xxxxx -c busybox0 -- /bin/sh

subpath使用注意事项

  1. 容器目录出填写的必须是一个文件,不能是一个已存在的目录。
  2. 如果容器内存在这个文件,会做覆盖这个文件,并且不会影响到这个文件同级目录下的其他文件。
  3. 如果容器内不存在这个问题,会新建文件,并且不会影响到这个文件同级目录下的其他文件。
  4. 容器内文件名称在容器目录指定,文件内容为subpath索引key对应的value值。
相似文档
  • 1. 功能说明: 在 BIE 中创建应用时,可以通过填写 工作目录 来指定边缘服务的默认工作路径的。 工作目录(workingDir)主要用于指定容器内执行命令的起始目录。工作目录(workingDir)在BIE 2.3.4版本开始支持。可以在云端控制台查看、升级边缘版本。
  • 1、功能说明: 在 BIE 中创建应用,可以添加多个容器,1个应用部署至边缘,对应1个Pod。为了实现同一个Pod中多容器之间的数据共享的需求,支持了空目录存储卷(emptyDir)功能。
  • 背景: 目前BIE的云端资源类型均为自定义资源类型,如果用户的应用为原生K8S语义的YAML文件,那么用户需要将原生YAML文件的语义转换成BIE的资源语义进行应用及配置项等的创建,增加用户工作量的同时,语义转换失误就会造成实际下发的应用或配置项与原生YMAL中的应用及配置项产生差异,从而导致应用下发错误等问题。
  • 1、进程应用的定义: 进程应用在进程模式下创建。 进程应用由进程程序包以及程序包的卷、环境变量、启动参数配置等部分组成。 一个进程可应用包含>=0个程序包,即可以先创建空壳进程应用,再在进程应用当中添加程序包,支持添加多个程序包。
  • 1、概述: 在进程应用概述当中提到,进程应有两类,本文重点讲解可执行二进制程序类型进程应用。并以构建emqx的BIE进程应用为例来进行详细说明。 2、程序包依赖文件准备: 2.1 可执行二进制程序: emqx提供了多个平台的编译程序,因此可以使用emqx作为示例介绍二进制程序文件的制作方式。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部