乐趣区

Rainbond-518发布应用网关支持多IP网络接入

2019 年 10 月 23 日,Rainbond 发布 5.1.8 版本,本次版本更新带来了应用网关对多 IP 的支持, 第三方组件对域名实例的支持 等新功能和修复若干 BUG。

  • Rainbond:支撑企业应用的开发、架构、交付和运维的全流程,通过“无侵入”架构无缝衔接各类企业应用,底层资源可以对接和管理 IaaS、虚拟机和物理服务器。Rainbond 是什么?
  • 发布版本:5.1.8
  • 版本更新:推荐
  • 更新范围:应用网关,第三方组件

应用网关支持多 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

安装

> 参考 Rainbond 安装文档指南

升级

升级要求和注意事项
  • V5.1.8 版本支持从 V5.1.2 – V5.1.7 版本升级,如果你还未升级到 V5.1.2 版本,参考 V5.1.x 版本升级文档,先升级至 V5.1.2 版本:

    grctl version, 例如 5.1.7 版本显示如下:grctl version v5.1.7-release-afa0e36-2019-09-11-00

  • 升级过程会重启管理服务,因此单管理节点的集群会短暂影响控制台操作和应用访问,请选择合理的升级时间段。
  • 升级过程脚本需要从集群获取节点数据,请务必在集群正常工作情况下进行升级。
  • 升级前请备份控制台和数据中心数据库。
  • 升级过程的主要耗时点是解压升级包和导入服务镜像的过程,根据你的服务器写入速度而定。
  • 如果你手动调整过 /opt/rainbond/conf 下的服务配置文件导致升级失败请到社区咨询。
下载 5.1.8 更新包

离线包镜像大小约 1.3GB,需要保证当前集群磁盘可用空间至少不低于 2G

# Rainbond 组件升级包
wget https://pkg.rainbond.com/offline/5.1/rainbond.images.2019-10-20-5.1.8.tgz -O /grdata/services/offline/rainbond.images.upgrade.5.1.8.tgz

# 升级脚本包
wget https://pkg.rainbond.com/offline/5.1/rainbond-ansible.upgrade.5.1.8.tgz -O /grdata/services/offline/rainbond-ansible.upgrade.5.1.8.tgz
第一个管理节点执行下述命令升级平台

再次提醒,升级前系统比较运行正常,升级过程耗时取决于你的系统磁盘写入速度,脚本未成功之前请勿主动终止升级。

rm -rf  /tmp/rainbond-ansible
rm -rf /grdata/services/offline/upgrade
mkdir -p /tmp/rainbond-ansible
tar xf /grdata/services/offline/rainbond-ansible.upgrade.5.1.8.tgz -C /tmp/rainbond-ansible
cd /tmp/rainbond-ansible/scripts/upgrade/
bash ./upgrade.sh
平台升级完成验证
  • 执行 grctl cluster确定所有服务和节点运行正常
  • 执行 grctl version 命令 确认版本已升级到 5.1.8
  • 执行 dps 命令查看以下组件运行使用的镜像版本是否为 v5.1.8-release
组件 版本
rbd-worker v5.1.8-release
rbd-api v5.1.8-release
rbd-app-ui v5.1.8-release
rbd-chaos v5.1.8-release
rbd-eventlog v5.1.8-release
rbd-gateway v5.1.8-release
rbd-monitor v5.1.8-release
rbd-webcli v5.1.8-release
rbd-mq v5.1.8-release

升级常见问题排查

  • 升级后以上镜像版本没有变化

下面以 rbd-api 组件为例,升级后镜像版本停留在旧版本,手动更新单个组件

# 重新拉取 rbd-api 镜像
docker pull rainbond/rbd-api:v5.1.8-release
# 修改镜像 tag
docker tag rainbond/rbd-api:v5.1.8-release goodrain.me/rbd-api:v5.1.8-release
# 找到 rbd-api 配置文件 /opt/rainbond/conf/master.yaml
修改 - i 指定的 rbd-api 镜像信息为 goodrain.me/rbd-api:v5.1.8-release

# 更新 node 节点上的服务
node service update
# 此时重新查看组件运行使用的镜像版本应为修改后的镜像版本, 查看集群状态健康,到此完成手动更新

升级如有问题,请至社区反馈

退出移动版