生命周期管理

本篇文档介绍 Rainbond 组件的基础属性,包括组件的生命周期、基础操作等。

组件状态

组件创建后就会进入到生命周期,在整个生命周期中会有一系列的状态,下文对各个状态进行解释。多数状态预设了超时时间,无论是否超时,在 3 分钟 后,都可以对组件重新进行全部生命周期操作。

状态说明
创建中  新创建的服务组件,正处于设置阶段。
构建中  新创建的服务组件设置完成,正在进行第一次服务组件版本构建。源码构建超时时间1小时,Dockerfile构建超时30分钟。超时不意味构建失败,参考构建日志来了解当前进度。
调度中  服务组件一旦构建完成,即进入调度中状态,实例颜色呈黄色。这个过程由K8s分配宿主机对实例进行调度。如果长时间维持在这个状态,则可能是由于没有宿主机节点可以运行该组件。
启动中  服务组件正在启动,实例颜色呈黄色。暂时不能访问,启动分为两个阶段,进程启动和业务启动,如果未配置启动时健康检查,只要进程启动完成则认为启动成功。启动超时时间为 40秒 实例数量。启动超时不意味启动失败
等待启动等待启动状态和启动中状态不会同时出现,一旦进入等待启动状态,实例颜色呈黄色。说明当前服务组件所依赖的其他服务组件没有启动完成。需要等待所依赖的其他服务组件启动完成后,当前服务组件才会进入启动中状态。
运行中  服务组件所有运行实例处于运行状态,实例颜色呈绿色。正常来说处于运行中的服务组件可以被访问,也可能由于业务启动缓慢应用暂时不能访问
运行异常  服务组件运行正常的实例少于总实例即标识应用运行异常,异常实例颜色呈红色。对于多实例的服务组件,处于异常态的服务组件只要还有正常的实例即可提供服务。实例异常大多数情况是由于服务组件本身异常退出或因为内存不足发生 OOM 退出。平台会自动尝试重启异常的实例。可通过查看服务组件日志,或通过命令行工具查看更多应用信息
升级中服务组件正处于滚动更新过程中,实例颜色呈黄色。多个节点处于当前状态的服务组件可以正常访问。升级超时时间为 3分钟 实例数量。升级超时不意味升级失败
已关闭服务组件已经停止运行,持久化数据依然存在。关闭超时时间为 40秒 * 实例数量。如长时间处于 关闭中 状态,实例颜色呈黑色,请联系运维同事。
未知实例颜色呈淡蓝色,服务组件处于此状态可能由于网络受阻,获取服务组件状态失败,或后端服务异常。可以尝试刷新页面,如果不能解决,请联系运维同事。

基础操作

构建操作

针对不同类型的组件,触发 构建 操作后,有着不同的含义,下表针对不同类型的组件加以说明:

组件类型说明
从源代码构建的组件拉取最新源代码,根据预先识别的语言类型进行组件版本构建并进行滚动升级
从 Docker 镜像构建的组件重新拉取指定镜像地址的镜像,构建出组件新版本并进行滚动升级
从应用市场构建的组件若应用市场不存在更新的版本,构建操作将提醒用户无需操作,若已存在多个更新版本,将提示用户选择需要获取的版本号。根据所选版本获取组件介质生成构建版本并进行滚动升级

更新操作

当组件的依赖、存储、环境变量、特性、健康监测等运行属性发生改变以后,必须通过手工触发更新操作来将最新的属性配置应用的组件的运行环境中,在这更新过程中默认采用滚动升级的策略对组件实例进行升级。

对于滚动升级有两类控制策略:

  • 无状态组件: 对无状态组件采用的是无序的先启动后停止的策略,即先启动新版本的运行实例,当其处于健康运行状态后关闭旧版本运行实例。需要注意的是,此过程会出现多版本同时工作的情况,若你的业务组件无法容忍多版本同时工作,请使用重启策略。

  • 有状态组件: 对于有状态组件采用的是有序的先停止后启动策略,即根据运行实例编号,从第一个实例开始先关闭实例然后启动新版本实例。这种控制对于像数据库类的组件至关重要,因此请勿将数据库类组件部署为无状态组件。

启动操作

启动操作会启动上一次成功构建的组件版本,启动后可以在组件概览页面的 操作日志 看到平台调度与处理组件的详细操作日志,当调度完成后,组件就进入启动阶段,这时候可以通过 日志 页面查看组件的启动日志。

关闭操作

触发关闭操作后,将关闭所有运行实例,释放集群资源。

重启操作

触发重启操作后,平台会将现有的组件运行实例全部关闭,待关闭完成后进行启动。若出现关闭超时时 重启操作将退出,组件启动的控制权交予用户。

  • 重启组件并不会更新组件代码或镜像,需要和构建操作区分。
  • 重启操作会中断组件

访问操作

针对不同协议的组件,点击访问按钮后所触发的命令也不一样:

组件协议点击访问按钮后的操作
HTTP浏览器新开窗口,打开组件的默认域名,如果绑定多个域名,会显示域名列表供用户选择
TCP弹出访问信息窗口