设置组件升级策略
在实际应用中,组件升级是一个常见的场景。ServiceStage中使用容器部署方式部署的组件支持如下升级策略。
- RollingUpdate:滚动升级,即逐步创建新实例再删除旧实例。在容器方式创建并部署组件、滚动发布方式升级组件、灰度发布方式升级组件和批量升级组件过程中,默认使用滚动升级策略。
- Recreate:替换升级,即先把当前实例删掉再重新创建实例。在单批发布方式升级组件过程中,默认使用替换升级策略。
您可以在设置组件“高级配置”时,根据实际业务需要设置组件的升级策略。
设置组件升级策略
- 选择“高级配置 > 升级策略”。
- 参考下表设置升级策略参数。
参数名称
参数说明
部署批次
表示分几个批次升级组件实例,取值范围为[1, 总实例数]。总实例数,即组件当前运行的实例数量。
例如,组件总实例数为4,“部署批次”设置为2,则表示会分2批次升级组件版本配置,每批次升级2个组件实例。
- 使用容器部署方式基于界面配置创建并部署组件操作场景下在执行本操作时不支持设置该参数。
- 其他操作场景下可以执行本操作时,支持设置该参数。
最大无效实例数
每次滚动升级允许的最大无效实例数,如果等于实例数有断服风险(最小存活实例数 = 实例数 - 最大无效实例数)。
- 使用容器部署方式基于界面配置创建并部署组件操作场景下对无状态组件执行本操作时支持设置该参数。参数可选单位及取值范围说明如下:
- 个,与实例数相比最多可以有多少个无效实例数,取值范围为[0, 实例数]。
- %,与实例数相比无效实例数在实例数中的最大百分比,取值范围为[0, 100]。
- 其他操作场景下可以对无状态组件执行本操作时支持设置该参数。取值根据实例数和已设置的“部署批次”来确定,单位为“个”。
实例数为1时,固定为1。
实例数大于1时,根据实例数是否可以整除“部署批次”来确定。
- 是,固定为实例数除以“部署批次”的商。
- 否,固定为实例数除以“部署批次”的商向下取整后加1。
最大浪涌
每次滚动升级允许超出所需规模的最大实例数。可选单位说明如下:
- 个,与实例数相比最多可以有多少个有效实例数,取值范围为[0, 2147483647]。
- %,与实例数相比有效实例数在实例数中的最大百分比,取值范围为[0, 100]。
可以对无状态组件执行本操作时支持设置该参数。
实例可用最短时间(s)
指定新创建的实例在没有任意容器崩溃情况下的最小就绪时间,只有超出这个时间实例才被视为可用。
默认值为0,表示组件实例准备就绪后立即视为可用。取值范围为[0, 2147483647]。
最大保留版本数
用来设定出于回滚目的所要保留的旧实例数量。
默认情况下,系统保留10个旧实例。取值范围为[0, 2147483647]。
升级最大时长(s)
指定系统在报告组件升级失败之前等待组件取得进展的秒数。
如果指定,则此字段值需要大于“实例可用最短时间(s)”取值。取值范围为[0, 2147483647]。
缩容时间窗(s)
工作负载停止前命令的执行时间窗,默认值为30秒。取值范围为[0, 2147483647]。
您可以设置一个缩容时间窗,用于在组件实例停止前保存重要数据。例如某应用有两个实例,执行缩容操作,缩容后只剩一个实例,则您仍然可以在设置的时间窗内对即将要停止的实例进行某些操作。