应用插件
概述
Rainbond 的插件体系抽象集中在业务层面,理论基础源于 Kubernetes 的 Pod 机制和一部分容器概念。针对平台业务层面对 Kubernetes 容器编排进行抽象,转变为一个对用户体验友善的 Rainbond 插件产品的过程,方便用户在不需要懂 Kubernetes 原理的情况下使用。
Rainbond 的插件类型主要有以下两种:
- 初始化容器: 在 pod 创建时运行的容器,主要用于初始化应用的数据、环境等,初始化容器在主容器启动之前启动,主要用于初始化应用的数据、环境等。
- 一般容器: 与主容器同时启动的容器,主要用于扩展应用的功能,如日志收集、监控等。
设计原则
Rainbond插件体系的设计遵循易于理解和易于使用的原则:
- 易于理解: 在 Rainbond 插件体系中,插件使用的过程即主容器与 init 或 sidecar 等容器结合的过程,原理是将插件容器以 sidecar 容器(大部分)的形式编排至主应用的 pod 中,共享主应用容器的网络和环境变量。
- 易于使用: Rainbond 插件体系易于使用的原则体现在类应用化、绑定使用、独有的变量作用域等方面。
类应用 化
Rainbond 插件体系为插件设计了与应用类似的生命周期,包含创建、启用、关闭等模式,与 Rainbond 平台用户操作应用的习惯保持一致。同时, Rainbond 插件体系简化了插件创建类型,支持基于 docker image 和 dockerfile 创建,创建插件比创建应用更加简单。
插件创建流程设计如下图所示:
需要注意的是,当一个插件版本固定后,其内存、版本信息、插件变量无法再做修改,这些元素仅作用于当前插件版本。需要修改插件变量等元素时,对插件进行重新构建
,重复创建流程即可。
创建完成后,用户可以对插件进行针对性设置,目前可以设置变量、插件生效与否和内存设定。内存的限制将在 Pod 创建时进行限制,插件变量生效与实时修改在下文中会继续介绍。
独有的变量作用域
注入到容器内的变量设计为有两类:共用变量
与 插件变量
。
- 共用变量就是主容器的变量,为使插件参与甚至扩展主应用的功能,在 Pod 创建过程中将主应用的环境变量注入到了插件容器中。
- 插件变量则仅作用在该插件容器内部,防止插件间的变量重复与混用。
插件使用
从应用市场安装插件
Rainbond 提供了丰富的插件市场,用户可以在应用市场中选择合适的插件安装到自己的应用中。
进入团队 -> 插件,点击从应用市场安装,选择需要的插件,点击安装即可。
新建插件
- 进入团队 -> 插件,点击新建插件:
- 插件名称: 插件的名称,用于区分不同的插件。
- 安装来源: Rainbond 提供镜像和 Dockerfile 两个安装来源。使用镜像时,提供镜像地址。使用 Dockerfile 文件时,提供项目源码地址。
- 插件类型: 插件类型有
初始化类型
和一般类型
。 - 资源限制: 插件的资源限制,包括 CPU 和内存。
- 启动命令: 插件的启动命令。
- 说明: 插件的说明信息。
- 进入已创建的插件内,构建插件。
- 添加插件配置,如下:
- 配置组名称: 配置组的名称,用于区分不同的配置组。
- 配置项: 配置插件的环境变量,支持字符串、单选和多选三种类型。