K8s的滚动发布是将一次完整的发布过程分成多个批次,每次发布一个批次,成功后,再发布下一个批次,最终完成所有批次的发布。MSE可以帮助您在应用的滚动发布过程中,始终保证有可用的服务实例(副本)在运行,从而实现应用的无损滚动发布。

操作步骤

  1. 登录容器服务控制台
  2. 在左侧导航栏单击集群,然后在集群列表页面单击目标集群。
  3. 在集群左侧导航栏选择工作负载 > 无状态
  4. 无状态页签中找到需要进行无损滚动发布的目标应用,在其操作列单击编辑
    编辑无状态应用
  5. 在应用的编辑页面的环境变量区域单击新增,然后设置无损滚动发布的开关参数micro.service.graceful.rolling.enabletrue
    设置环境变量

    micro.service.graceful.rolling.enable=ture相当于以下配置:

    profiler.micro.service.readiness.check.enable=true
    micro.service.shutdown.auto.wait=false
    micro.service.shutdown.wait.time=20000 //20000为默认值,单位为ms。

    如果需要,还可以调整下线等待时间参数,profiler.micro.service.pre.stop.wait.time,单位为ms,默认为30000ms。

  6. 在应用的编辑页面的就绪检查区域打开开启开关,设置路径端口
    就绪检查
    参数 描述
    路径 所属类com.navercorp.pinpoint.plugin.micro.service.interceptor.Mse_Readiness_Controller的访问路径,可以通过服务查询的元数据进行查询,详细查询步骤,请参见查看服务详情。如果查询不到,请先排查。
    说明 在设置该路径前,请先测试该服务的访问路径/__mse__/readiness是否可用。如果在应用代码中配置了context-path,则需要将访问路径配置为{context-path}/__mse__/readiness

    你可以使用MSE提供的服务测试功能,具体操作,请参见测试Spring Cloud服务,也可以登录对应Pod执行curl命令测试。

    端口 该服务的业务端口。
    说明 其它参数保持默认配置即可。
  7. 设置完成后,在页面右侧单击更新

结果验证

配置完成后,根据实际业务验证应用是否实现了无损滚动发布。