Rainbond 5.1.9发布,新增实例弹性伸缩、OAuth代码仓库互联功能
2019年12月12日,Rainbond开源2周年纪念,我们带来了5.1.9版本,本次更新引入组件实例自动伸缩、代码仓库互联(OAuth2.0互联)两大功能,同时在系统高可用、系统服务自动运维、功能可用性等方面做大量优化。
- Rainbond:以应用为中心,支撑企业应用的开发、架构、模块化组装、交付和运维的全生命周期,通过“无侵入”架构无缝衔接各类企业应用,通过软件定义管理企业物理资源,并提供DevOps能力。 Rainbond是什么?
- 发布版本:5.1.9
- 版本更新:推荐
- 更新范围:组件实例控制、系统自动化运维、持续集成
实例弹性伸缩
弹性伸缩是指对于无状态类组件服务或有状态可水平伸缩类组件服务当业务量大时自动增加实例数量,以保证计算能力。当业务处理量下降时减少实例数量,以降低资源占用成本。本次实现我们采用Kubernetes 默认伸缩算法。
伸缩算法
HPA Controller会通过调整副本数量使得某一指标尽量向期望值靠近,而且不是完全相等.另外,考虑到自动扩展的决策可能需要一段时间才会生效:例如当某一个组件实例的内存使用率一直上升并超过期望值,创建一个新实例的过程中,原实例的内存使用率还会持续上升。所以,在每一次作出决策后的一段时间内,将不再进行扩展决策。对于扩容而言,这个时间段为3分钟,缩容为5分钟。
HPA Controller中有一个tolerance(容忍力)的概念,它允许一定范围内的使用量的不稳定,现在默认为0.1,这也是出于维护系统稳定性的考虑。例如,设定HPA调度策略为内存使用率高于50%触发扩容,那么只有当使用率大于55%或者小于45%才会触发伸缩活动,HPA会尽力把实例的使用率控制在这个范围之间。
- 具体的每次扩容或者缩容的多少Pod的算法为:
Ceil(采集到的使用率 / 用户自定义的使用率) * Pod数量)
- 每次最大扩容pod数量不会超过当前副本数量的2倍
对于指标当前版本支持资源使用类的内存(使用率、使用量)和CPU(使用率、使用量)指标。
<center>组件弹性伸缩设置演示</center>
未来计划
未来的版本中我们将支持用户自定义组件的业务能力指标,比如API服务暴露其每秒处理的请求数量,则可通过配置请求处理效率指标为实例伸缩指标,对于这类业务类指标将更能够及时准确的衡量业务伸缩的时机。除了扩充业务指标外,HPA Controller将联合网关模块、ServiceMesh模块来实现组件实例缩放到“0”的能力。这种能力对于企业长期不使用的应用或业务能够节省较多企业资源,这同时也是服务于FaaS的能力基础。
代码仓库互联(OAuth2.0互联)
Rainbond基于源码新建或持续构建组件都直接与Git代码仓库交互。过去需要用户手动输入项目仓库地址,对于私有仓库还需要提供账号密码等信息。OAuth是目前最常用的开放授权通信协议,目前几乎全部Git代码仓库服务实现都支持基于OAuth2.0实现开放用户授权。当前版本Rainbond实现对Github、Gitlab、Gitee三类代码仓库服务的支持,用户授权后可直接获取用户项目列表、提供创建组件的快捷流程。通过OAuth Token从代码仓库获取源码或调用API自动设置webhook,从而简化用户配置。
<img src="https://rainbond-pkg.oss-cn-shanghai.aliyuncs.com/releases/5.1/5.1.9/oauth.gif" width="90%">
<center>OAuth流程演示</center>
其他新增功能
- 新增Kubernetes集群监控服务和平台Mysql数据库监控服务
- 支持租户删除和资源清理
- 新增管理节点磁盘自动清理功能
- 新增已删除组件所占资源自动清理功能
- 应用网关支持VIP漂移后,关联策略自动漂移功能
- 应用网关管理支持HTTPS证书更新后自动生效 #527
- 云端备份存储类型支持阿里对象存储和兼容S3的其他对象存储#545
- 组件互相依赖时支持启动顺序控制 #499
- 平台默认数据库切换到Mysql5.7版本,并对8.0版本作兼容测试
- 新增节点Condition更新机制,grctl命令行和管理后台体现Condition更新状态,便于用户发现节点健康检测故障
- 节点处于UNKNOW的节点自动下线该节点注册的系统服务保证高可用性
解决问题清单
- 应用备份恢复时提示删除原备份,但服务器上查看原备份并没有被删除
- 5.1.8由源码创建组件,正常的git地址报错
- 添加第二个计算节点失败,node uuid is null
- /rainbond/endpoints存在非法endpoint
- 节点删除组件时检测项无法删除,节点一直处于unhealth状态
- 节点信息中, 组件的lastHeartbeatTime和lastTransitionTime不正确
- 应用网关按应用/组件名搜索不生效
- 无法删除组件, 提示"请先卸载组件安装的插件"
- 内部市场导入应用成功后应用列表没有刷新
- 网关https策略修改为http策略不生效
- 内部市场手动导入应用失败
- 应用网关VIP切换后从可用列表中消失
- 挂载共享目录时共享存储查询查询错误
- webhook触发后报错分支不一致
查看更多Rainbond介绍:https://www.rainbond.com
新安装:https://www.rainbond.com/docs/quick-start/rainbond_install/
升级到5.1.9:https://www.rainbond.com/docs/upgrade/5.1.8-5.1.9/
Rainbond RoadMap https://www.rainbond.com/docs/quick-start/roadmap/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。