插件
插件的定义
插件是相对于组件的一种模型定义,插件主要用来描述业务组件的扩展运维能力实现。由于应用运维特征的实现都具有较大的共性,因此插件本身仅包含描述和实现,使其可以被复用。必须绑定到组件时才具有运行时状态。目前插件都是需要有运行时的,用以实现一种运维能力,比如性能分析插件、网络治理插件。或许未来我们将定义更多的插件类型包括无运行时的虚拟插件描述模型,比如监控可视化插件,用以描述可视化 UI。
具有运行时的插件的运行环境与所绑定的组件从以下几个方面保持一致:
- 网络空间 这个一个至关重要的特性,网络空间一致使插件可以对组件网络流量进行旁路复制、截断,设置组件本地域名解析等。
- 存储持久化空间 这个特性使得插件与组件之间可以通过持久化目录进行文件交换。
- 环境变量 这个特性使得插件可以读取组件的环境变量。
插件的分类
分类名称 | 作用 | 控制 |
---|---|---|
性能分析类 | 服务安装性能分析类插件即可显示性能分析页面 | |
入口网络类 | ServiceMesh 插件类型之一,处理组件下游流量 | 动态分配监听端口 |
出口网络类 | ServiceMesh 插件类型之一,处理组件上游流量 | 支持服务发现 |
出入口共治网络类 | ServiceMesh 插件类型之一,同时负载处理组件上、下游流量 | 支持服务发现 |
初始化类型 | 服务在插件先启动并正常退出后再启动,用户服务数据初始化或其他初始化操作 | |
一般类型 | 比如数据备份、日志收集类 |
插件配置项
配置项的作用是描述插件需要的配置信息,类似于定义表单,当插件被实例化时(即被组件安装绑定时)根据组件的相关元数据生成配置表单。插件的配置除了基础的环境变量需求以外,一般还需要与组件的端口、依赖组件等元数据相结合。比如定义出口治理插件在某一个依赖通信链路上的熔断配置或路由配置等。
配置项可以分组,每一组配置项可以基于某一个元数据类型。目前支持的元数据类型包括:组件端口、下游组件端口。每一组配置项同时可以定义其注入方式,包括:环境变量和主动发现。依赖组件元数据的配置组只能通过主动发现的方式获取。