服务其他设置

服务的其他功能,包括更多的服务信息、自动部署、健康检查等高级功能都在 服务的 【设置】页面中,下文会对每一块功能做详细介绍。

1.1 服务基础信息

服务基础信息显示了服务当前的版本信息、来源及状态,不同类型的服务显示的内容也会有所不同,并且在基础可以改变应用的部署类型,给服务添加标签,构建后是否自动升级等;只有在服务是有状态的情况下,才可以设置服务名称属性:

其他设置 - 图1
其他设置 - 图2

提示:

  • 只有通过源码构建的服务才显示Git/Svn仓库地址和分支信息
  • Docker镜像、Docker Run命令和Docker compose的方式创建的服务会显示镜像地址和版本

1.2 自动部署

Rainbond目前支持基于Git仓库Webhook方式(Github、Gitlab、Gitee、Gogs)、自定义API方式触发自动构建和部署。

在服务【设置】页面,自动部署区域,点击【开启自动部署】按钮后,会提示类似如下信息:

其他设置 - 图3

详细文档请参考: 服务持续构建与部署

1.3 自定义环境变量

当你通过服务【设置】中的自定义环境变量,添加变量时,服务下次启动会加载这些环境变量。

通常情况下,我们将配置信息写到配置文件中供程序读取使用,在Rainbond平台中,我们极力推荐使用环境变量的方式来代替传统的配置文件的方式。

这样做的好处如下:

  • 将配置信息与服务绑定,与代码解耦,摆脱不同环境下切换配置文件的麻烦
  • 敏感信息与代码分离,避免程序漏洞造成数据丢失
  • 省去配置管理的工作
    下面是一个生产环境的服务使用环境变量进行配置的截图:
其他设置 - 图4

以Python为例介绍在配置读取环境变量的方法:

  1. # -*- coding: utf8 -*-
  2. import os
  3. DEBUG = os.environ.get('DEBUG') or False
  4. TEMPLATE_DEBUG = os.environ.get('TEMPLATE_DEBUG') or False
  5. DEFAULT_HANDLERS = [os.environ.get('DEFAULT_HANDLERS') or 'zmq_handler']
  6. DATABASES = {
  7. 'default': {
  8. 'ENGINE': 'django.db.backends.mysql',
  9. 'NAME': 'goodrain',
  10. 'USER': os.environ.get('MYSQL_USER'),
  11. 'PASSWORD': os.environ.get('MYSQL_PASSWORD'),
  12. 'HOST': os.environ.get('MYSQL_HOST'),
  13. 'PORT': os.environ.get('MYSQL_PORT'),
  14. }
  15. }
  16. ...

基于环境变量除了可以定义上诉所述的用于应用运行的变量以外,还能作为服务编译、服务调度运行的参数指定方式,更多请查看 环境变量的高级用法

关于动态值环境变量:

环境变量的值可以基于已存在环境变量的值解析,如果环境变量的值中出现 ${XXX},平台将尝试查找XXX环境变量的值来替换此字符串,若无法找到具有值的XXX变量,将不做更改。 为防止出现无法被解析的情况,可以定义为${XXX:yy}的形式,:以后的将作为未成功解析的默认值。例如有已存在环境变量 A=1,环境变量B需要使用A的值,直接定义B=${A}。

1.4 健康检查

为了了解服务启动后的服务是否可用,已经服务运行中的服务运行情况,我们增加了服务检查的功能:

  • 启动时检查
服务启动时的健康检查,用户可根据服务的协议、端口自定义设置监控选项。如果达到检查的阈值的实例,将被设置为不健康状态,继而从应用网关或ServiceMesh层下线。

服务启动时检查配置示例

其他设置 - 图5
示例配置:当容器启动2秒后,开始对 5000 端口进行 tcp 协议的第一次检查,如果等待20秒检查没有结果,平台会重启服务,如果20秒内成功返回,平台认为服务启动成功。
  • 运行时检查
服务运行时的监控检查,用户可根据服务的协议、端口自定义设置监控选项。如果达到检查的阈值,平台会重启服务(生产环境谨慎设置)

服务运行时检查配置示例

其他设置 - 图6
示例配置:当服务成功启动后,等待20秒,针对5000端口,tcp协议进行第一次检查,每隔3秒检查一次,检查超时时间20秒,如果连续三次检查都失败,平台会重启服务。

1.5 成员服务权限

关于角色权限定义的文档请参考:用户管理

这里主要讲的是服务权限的管理,当某个用户加入到团队时,团队管理员决定该用户的角色,如果要限制某个用户只能管理某些服务,建议使用 Viewer(观察者) 角色,然后根据需要在服务的 【成员服务权限】中设置服务的管理权限。

1.6 删除服务

平台提供服务永久删除功能,服务删除后,服务信息会从控制台和数据中心数据库中删除,持久化数据暂时保留。

目前还没有恢复删除服务的功能,请谨慎使用该功能。

其他设置 - 图7

原文: https://www.rainbond.com/docs/stable/user-manual/app-manage/service-manage/other-set.html