Releases: goodrain/rainbond
v5.2.0-beta2
Rainbond-Operator支持高可用安装
存储方面
- 支持阿里云盘、NAS两类存储的Provider安装
- 支持Ceph存储对接
- 支持选择集群中已有StorageClass存储类型服务于Rainbond系统组件
- 移除所有系统组件对宿主机磁盘目录的依赖
组件安装方面
- 新增高可用安装模式
- 组件运行节点不再限制于kubernetes master节点
- 支持基于mysql-operator创建mysql多主集群
- 各系统组件支持多实例运行
- 支持使用用户提供的本地镜像仓库替换默认安装的goodrain.me镜像仓库
- 支持选择网关组件安装节点和chaos组件安装节点
其他变化
- Rainbond-Operator UI支持中英文切换
应用控制台UI升级
视图化管理流程
- 支持企业、团队、应用三级视图模式,视图间可便捷跳转。
- 支持收藏任意视图、支持定义快捷入口,便于用户快速进入指定的管理面板。
- 支持应用、组件的便捷切换,便于用户操作多个应用或组件
企业视图
- 新增共享组件库管理,支持从公有应用商店同步应用模版、离线导入应用模版或创建开发应用模版。
- 应用模版支持定义标签分类,定义版本状态。
- 新增企业用户基础管理,支持企业用户添加。
- 新增团队管理面板,登录用户统一管理加入的所有团队。
团队视图
- 移除本地应用市场、移除企业管理。
- 新增应用列表管理。
应用视图
- 新增应用发布管理。
- 新增发布记录管理。
- 支持多个发布任务同时进行。
- 支持发布到企业共享库。
- 支持发布到指定的云端应用商店。
- 完善应用升级管理
- 支持基于共享库的应用模版进行同版本和新版本升级。
- 新增应用级网关策略管理,支持管理当前应用维度下的HTTP和TCP/UDP访问策略。
应用与组件管理
- 扩展组件类型,变更为单实例有状态,多实例有状态,单实例无状态,多实例无状态四种基础类型,不同类型的组件在存储类型支持、伸缩功能支持等方面呈现出差异。在这四类基础组件类型基础上,后续版本中将支持扩充组件类型。
- 根据组件类型提供集群可用的存储类型列表。
- Rainbond应用模型支持新增的应用和组件的属性,应用发布和安装流程同步支持。
- 新增对扩展存储元数据备份的支持,暂不支持扩展存储类型的数据备份,应用备份时将提示用户。
其他变更
- 缓存到ETCD中的数据自动清理 #568
开始安装体验新版本Rainbond
安装文档参考:https://v5.2-doc.rainbond.com/docs/quick-start/rainbond_install/
v5.1.11-release
5.1.11版本更新
- 修复持续大量添加访问域名导致网关服务奔溃的缺陷 #635
- 修复HTTPS证书更新后不自动生效的缺陷
- 修复设置非法header信息导致组件不能启动的缺陷
- 修复第三方组件实例健康检测状态不一致的缺陷
- 修复应用升级时无法回滚的缺陷
- 修复HTTPS证书选择时显示不完整的缺陷
- 修复删除一个HTTPS访问策略导致使用相同证书的其他策略不可用的缺陷
升级
v5.2.0-beta1
下载安装
安装文档参考: https://v5.2-doc.rainbond.com/docs/quick-start/rainbond_install/
版本变更
安装与运维
- Rainbond系统安装和运维管理重构为Operator模式,运行于Kubernetes集群内部。
- 解除对Kubernetes的强依赖关系,Rainbond不再维护Kubernetes集群安装脚本,推荐使用 easzup
- Rainbond-Operator安装采用Helm包管理工具安装。
- Rainbond系统安装提供UI界面,实时把控安装进度,后续版本UI提供系统运维、升级等功能。
- 安装提供多种参数可选配置,包括镜像仓库、数据库、ETCD集群等关键配置。
- 系统组件生命周期由Kubernetes和Rainbond-Operator共同维护和管理。
应用存储
- Rainbond 组件存储抽象支持存储类型支持通过Kubernetes StorageClass 扩展,通过增加集群中的StorageClass即可扩充Rainbond支持的存储类型,目前测试接入的存储类型包括阿里云盘、Ceph块设备等
- 组件存储模型增加容量、挂载状态属性。
- 应用分享安装、跨集群迁移等用例中基于简要算法选择合适的存储类型,后续版本中将基于存储特性指标更加智能选择。
应用网关
- 重构TCP/UDP类访问策略的负载均衡机制,Upstream的更新机制由过去生成Nginx配置文件并Reload修改为Lua控制的动态更新,无需触发Reload。
- HTTP访问策略默认支持X-Forwarded-Proto X-Scheme等参数 #591
- 新增对Rainbond数据中心API,控制台UI等外网控制入口的代理,集群所有请求统一由网关组件进入。
源码构建
- 重构源代码构建任务运行模式,由管理节点运行变更为Kubernetes Job任务,在集群计算节点运行,进而支持高并发构建任务。
- Golang语言Buildingpack升级,增加对Go mod模式依赖包管理的支持,支持Go 1.12 1.13 #613
- Java相关语言Buildingpack升级,支持JDK 11 12 13, Maven 3.5.4 3.6.2
- PHP语言Buildingpack升级,支持php 7.2.26 7.3.13 版本
- NodeJS/NodeJS前端 两种语言类型支持UI设置构建参数
其他变更
- 所有系统组件对ETCD的通信支持TLS认证
- grctl命令行变更安装方式,新增
grctl gateway
grctl envoy
等功能辅助运维。 - 组件支持使用privileged模式运行 #333
移除功能
- 移除命令行扩充集群节点功能,改由easzup 扩充Kubernetes集群后Rainbond节点自动扩充。
- 移除“全局共享存储”存储类型的自动化安装(无权限操作宿主机),改由用户使用简化命令行工具安装。
- rainbond-ansible 项目仅用于V5.1版本。
v5.1.10-release
- 重构Oauth支持模块使其扩展更容易 goodrain/rainbond-console#379
- 新增对钉钉、阿里云Oauth登录的支持 #goodrain/rainbond#373 感谢 lxm的贡献
- 改进第三方组件的健康检测控制器,修复第三方组件异常下线问题 #580 #590
- 第三方组件支持不同端口号的Endpoints列表。
- 修复组件具有多个端口号时ServiceMesh框架监听不完整的问题。
- 隐藏应用网关内置Openresty版本号,增加默认访问页面 #612
- 修复组件伸缩记录的时间显示错误问题 #625
- 修复拓扑图不体现自动伸缩后组件实例数量超过1的情形 #588
- 修复插件导致CPU资源不合理分配从而耗尽CPU时内存剩余较大的问题 #602
- 被依赖服务有多个端口开启对内服务的情况下,下游服务保持等待启动状态#606
安装
升级
v5.1.9-release
新增功能
-
当前版本新增基于内存、CPU两个资源使用监控指标的组件实例水平伸缩功能。 参考文档
-
代码仓库互联(OAuth2.0互联) 参考文档
-
支持租户删除和资源清
-
新增管理节点磁盘自动清理功能
-
新增已删除组件所占资源自动清理功能
-
应用网关支持VIP漂移后,关联策略自动漂移功能
-
应用网关管理支持HTTPS证书更新后自动生效 #527
-
云端备份存储类型支持阿里对象存储和兼容S3的其他对象存储#545
-
组件互相依赖时支持启动顺序控制 #499
-
平台默认数据库切换到Mysql5.7版本,并对8.0版本作兼容测试
-
新增节点Condition更新机制,grctl命令行和管理后台体现Condition更新状态,便于用户发现节点健康检测故障
-
节点处于UNKNOW的节点自动下线该节点注册的系统服务保证高可用性
解决问题清单
安装
升级
v5.1.8-release
应用网关支持多IP
应用网关是外部流量进入租户空间应用组件的唯一入口, 提供HTTP, HTTPs路由, TCP/UDP服务, 负载均衡器, 高级路由(A/B测试, 灰度发布)等功能。
在5.1.8以前, 所有的TCP/UDP类策略绑定的IP:PORT
都是0.0.0.0:port
, 这样一个端口只能给一个程序使用。且多个网关节点配置完全等价,我们服务器的端口是有限的(最大65535),因而带来了规则数量上限。 在当前版本中我们引入第二个变量IP地址,所有网关节点动态上报当前节点的可用IP地址供用户选择,从而带来了以下的功能:
- 内外网隔离: 网关节点一般处于内外网结合点,南向面对内网网络,北向面对外网网络。由不同的IP地址来呈现,选择不同的IP地址形成内外网隔离的特性。
- 定向网关: 部分用户场景中需要针对部分服务有独立的访问入口,比如特殊的租户或特殊的接入网络等。
- 跨团队通信: 默认情况下团队间服务不能直接通信,但其可以通过应用网关的中转通信。
- 虚拟IP的支持: 虚拟IP是变化的,可能在多个网关服务上迁移,支持定向绑定虚拟IP的端口是灵活的解决方案。
第三方组件支持域名实例
运行于Rainbond集群之外,运行生命周期不受Rainbond管理,且在网络上能够与Rainbond集群通信的组件称为第三方组件。例如单独运行的MySQL服务,或运行于Windows服务器的.net服务等。
在云计算的环境中, 各个云服务商都推出了许多云服务, 比如: 阿里云的云数据库 RDS MySQL 版
, 云数据库 Redis 版
, 云数据库 MongoDB 版
和 亚马逊的 Elasticsearch Service
. 这些云服务提供的公网连接地址都是域名
。
为了方便用户将实例地址为域名
的第三方组件加入到 Rainbond 中, 在此次迭代中, 第三方组件在只支持IP实例的基础上增加了域名实例
。Rainbond ServiceMesh层可以动态解析域名并加载通信地址,第三方组件健康检测器也增加了对域名的支持。
其他功能改进和BUG修复
- 应用支持带插件备份和恢复
- 规范产品抽象描述 #266
- 离线模式下优化云端应用市场页面的网络故障展示。
- 创建或更新应用时,有概率出现无法点击“查看日志” #214
- 多实例组件在线缩容,组件状态不停进入启动中 #460
- 自定义域名 一旦绑定,在网关策略选项中修改其配置时,会被认为 是违法域名,禁止修改 #461
- 应用共享其他服务存储设置后不生效 #456
- 5.1.7在创建应用时无法正确保存ARG参数 #453
- 使用svn从源码创建,平台识别路径错误 #444
- 对环境变量命名的检测问题 #391
- 环境变量删除失败,操作无响应 #434
- 通过源码创建应用时,使用https连接,仓库地址前加空格平台会判定为ssh连接 #224
- 组件日志打印无缩进 #217
- 应用发布到应用市场时添加的应用图标无法预览 #215
- .Netcore 语言源码构建,cmd 参数没有被传递导致运行异常 #447
安装
升级
v5.1.6-release
高可用安装
在本次版本更新中,为了是用户高可用安装Rainbond更新简单,我们对Rainbond安装脚本项目进行了如下调整:
- Ansible主机列表配置从脚本维护更改为安装工具从集群获取节点数据进行维护,使主机列表信息准确表达。
- 调整节点角色安装策略,支持灵活的角色组合安装和增量角色安装。
- 调整部分服务的部署配置参数,降低在资源有限环境下的部署失败率。
- 更改API证书签发逻辑,默认使用外网IP地址作为证书签发目标。
- 更改外部数据库的支持策略以支持阿里云RDS数据库。
基于安装脚本的调整,我们提供了两篇高可用安装文档供用户参考:
BUG修复
- 修复在批量多个服务构建时代码缓存目录冲突导致部分服务构建失败的问题
- 修复环境变量值存储最大限制256导致部分环境变量无法设置的问题,更改为最大限制1024 goodrain/rainbond#338
- 修复镜像创建服务时私有用户名密码长度限制过低导致无法设置账号密码问题 goodrain/rainbond#352
- 修复共享存储、本地存储无法修改挂载路径的问题 goodrain/rainbond#347
- 修复性能分析插件、入口网络治理插件同时开启时无法进行性能分析的问题 goodrain/rainbond#318
- 修复Pod状态错误时导致平台统计租户使用资源错误的问题 goodrain/rainbond#328
- 修复node日志收集模块获取容器元数据失败导致node奔溃的问题 goodrain/rainbond#331
- 修复镜像创建服务时识别限制内存值不为2的n次方,导致无法水平升级问题。goodrain/rainbond-console#186
- 修复版本管理中构建失败的版本依然提供升级选项的问题 goodrain/rainbond-console#207
- 修复网关访问策略编辑时丢失https配置的问题 goodrain/rainbond-ui#174
- Java类服务构建源设置,更改OracleJDK设置为自定义JDK设置,便于用户发散性使用此功能。goodrain/rainbond-ui#169
- 修复应用管理页面的便捷添加组件中的从应用市场安装搜索问题和无法安装的问题 goodrain/rainbond-ui#166
- 修复依赖服务连接信息显示不全的问题 goodrain/rainbond-ui#171
版本升级
v5.1.5-release
重点功能
- Rainbond应用市场体验升级
- 支持直接从云端安装应用的本地。
- 发布私有的应用到云端应用市场,交付给你想要交付的Rainbond用户
- 发布社区公开应用
- ServiceMesh架构支持入站网络治理
- 服务入站方向熔断
- 服务全局限流
其他功能优化
- 源码构建的服务版本介质由slug包更改为容器镜像,源码类服务的运行将不再依赖于分布式文件系统,运行环境支持版本化控制。
- 服务构建任务是一个消耗管理节点资源的动作,批量的服务构建如果不受限制将导致管理节点的资源耗尽。此次更新带来了构建任务的并发限制,最大并行任务数取决于当前管理节点的CPU核数。未能执行的任务将在消息系统中等待。
- 优化了服务访问策略自动以环境变量形式注入服务的策略,便于服务能够获取当前服务的访问策略,对于部分Web类服务非常有用。
- 更改了服务插件与应用运行时的通信地址,由过去Docker0网桥网卡地址更改为节点IP地址,如此移除了过去版本对Docker0网桥网卡IP地址的依赖。
- 服务容器的标准输出和错误输出日志收集方式由之前的node服务从docker进程获取更改为node服务从宿主机日志文件获取,减小docker进程的压力,同时减小了日志呈现给用户的延迟时间。
- 优化了grctl service get命令,便于用户之间查看服务的容器运行状态。
BUG修复
- 修复自定义服务访问域名访问数据被忽略的BUG。
- 修复服务连接信息前端未显示分页模块导致显示不全的BUG。
- 修复服务构建版本、已删除服务持久化数据自动清理未正常工作的BUG,新版本中默认开启清理。
- 应用备份时更改备份策略为只备份服务当前运行的构建版本,减小备份数据,提供备份成功率。
- 修复了应用市场安装应用第一次未构建成功,后续无法继续构建的BUG。
- 修复了服务环境变量与连接信息转移未生效的BUG。
- 修复了应用升级时,新增的服务包含插件无法直接完成插件挂载的BUG。
- 修复了节点更改节点属性后元数据不自动更改的BUG。
安装和升级
新集群安装参考Rainbond安装文档:https://www.rainbond.com/docs/quick-start/rainbond_install/
升级5.1.4到5.1.5版本: https://www.rainbond.com/docs/user-operations/upgrade/5.1.4-5.1.5/
v5.1.4-release
新功能
在5.1.4之前, rainbond仅仅支持对云市应用中单个服务的升级, 如果想要升级整个云市应用, 则需要单独地对每个服务进行升级, 且无法升级新添加的服务. 这给各位用户的使用带来了极大的不便. 为了让用户有的操作更加的简单, 提高使用体验, 我们在5.1.4版本中, 对应用市场进行了改造升级.
灵活的升级方式: 可以自由地选择需要升级的服务, 可以全部升级也可以部份升级.
创建新添加服务: 除了可以升级已有的服务外, 还可以创建旧版本没有, 但是新版本有的服务.
详细的变更信息: 在升级界面中, 可以查看当前版本与新版本服务之间属性的变更.
详细的升级记录: 对每次升级操作, rainbond都进行了详细的记录, 包括: 升级操作的时间, 版本号的变更和各服务属性的变更信息等.
自动回滚: 在应用升级的过程中, 如果程序发生了异常, 会回滚到升级前的状态, 避免只升级部分属性或服务.
手动回滚: 升级成功后, 如果新版本有缺陷导致各个服务无法正常工作, 或者你更倾向升级前的版本, 那么可以选择手动回滚, 回到之前的版本.
改进
- 第三方服务新添加实例地址时, 允许地址中带有端口
- 镜像服务支持修改镜像仓库帐号, 密码等信息
- grctl命令行工具增加身份属性gateway
- 将自定义网关策略的域名以环境变量的方式注入到服务中
- 将环境变量,配置文件等配置信息综合为环境配置
- 分享应用时支持定义不分享的服务
- 支持服务链接信息和环境变量的相互转移
- 关闭或重启服务时, 增加二次确认, 防止误操作
安装
- 优化安装时初始化数据中心流程
- 优化调整安装任务结构,调整离线镜像文件路径
- 支持调整网络类型
- 优化部分组件配置参数
- 优化安装过程中宿主机IP段与容器ip段冲突问题
Bug修复
- 【重要】修复了关闭服务时, pod无法被删除或删除需要花费比较多时间的问题
- 【重要】修复了多管理节点中, 某个节点rbd-hub服务异常了,但gateway没有将其下线导致goodrain.me服务异常的问题
- 修复了第三方服务的网关访问策略控制错误
- 修复了删除端口报系统异常的错误
- 修复了编辑HTTPs网关策略, 无法勾选 HTTP rewriet HTTPs 的问题
- 修复了更改构建源后无法重新检测语言的错误
- 修复了无法修改健康检测参数的错误
- 修复了云市应用版本号显示不全的问题
- 修复了添加镜像服务时, 没有高级选项按钮的问题
- 修复了构建源中镜像Tag显示不全的问题
- 修复了创建应用时勾选的是有状态应用,创建成功后却是无状态应用的问题
- 修复了无法将无状态应用修改为有状态应用的问题
- 修复了禁止调度计算节点后, 导致可用资源统计错误的问题
- 修复了第三方服务TCP访问策略状态错误且无法操作的问题
- 修复了网关策略参数配置中Websocket不生效的问题
- 修复了云市应用导出的docker-compose.yaml中的镜像有误的问题
- 修复了环境变量名格式验证有误的问题, 支持带”.“的环境变量名
安装和升级
新集群安装参考Rainbond安装文档:https://www.rainbond.com/docs/quick-start/rainbond_install/
升级已有集群到5.1.4版本: https://www.rainbond.com/docs/user-operations/upgrade/5.1.3-5.1.4/
v5.1.3-release
新Feature
- 支持Java Maven多模块批量创建服务[beta]
- 新增新手引导任务流程
改进
- 改进基于应用市场的服务升级策略,新增对环境变量、存储(包括依赖存储)、端口、服务依赖等属性的升级[beta]
- 改进Docker Compose 批量创建服务的功能,修改服务镜像检测机制大大提高DockerCompose检测成功性。同时支持设置私有镜像仓库的账号信息。提供了Docker Compose到Kubernetes转化的稳定功能支持。
- Git-Webhook增加对腾讯Coding代码仓库的支持。
- 镜像仓库Webhook自动构建支持Tag版本根据策略进行自动验证和改变。
- 改进镜像创建服务识别策略,智能识别镜像信息确定服务部署类型和内存分配,提供服务创建准确性。
- 应用网关支持便捷设置Websocket支持和ProxyBuffer等参数。
- 改进端口属性维护机制,增加当端口删除时自动设置其他与端口绑定的服务属性,比如健康检查。防止由于错误的端口设置导致服务一直运行异常。
- 系统服务注册功能改进,基于健康检查实现注册Endpoint的自动上线和下线,解决错误的添加管理节点导致镜像仓库等服务负载均衡错误问题。[beta]
安装方面:
- 优化安装流程,将push镜像流程更改到最后防止push镜像失败导致安装不成功。
- 新增使用第三方数据库的机制,用户提供数据库给Rainbond数据中心和控制台使用Rainbond将不再默认安装数据库,适用于生产环境部署时对数据库单独进行部署和运维。[beta]
- 调整部分组件日志级别等启动参数
BUG修复
- 修复在HTTP访问策略中添加IP或其他非法域名导致服务无法启动的BUG。
- 修复了DockerRun等方式创建的服务后期无法修改账号密码的问题。
- 修复了镜像错误导致检测失败后UI未提供后续操作的问题。
- 修复了重复添加访问策略导致服务无法访问的问题。
- 修复了UI搜索访问策略后无法进行翻页的BUG。
- 修复了服务经过分享过后,伸缩范围固化的问题。
安装和升级
新集群安装参考Rainbond安装文档:https://www.rainbond.com/docs/quick-start/rainbond_install/
升级已有集群到5.1.3版本: https://www.rainbond.com/docs/user-operations/upgrade/5.1.2-5.1.3/