云服务器内容精选

  • 场景二:单独使用资源计划 当数据量以天为周期有规律的变化,并且希望在数据量变化前提前完成集群的扩缩容,可以使用 MRS 的资源计划配置在规定时间内按计划调整Task节点数量。 例如:某项实时处理业务数据量在周一、周二和周六7:00~13:00出现高峰,其他时间保持平稳低水平。假设使用MRS流式集群来处理该业务数据,在周一、周二和周六7:00~13:00时,为应对数据量高峰需要5个Task节点的资源,其他时间只需要2个Task节点。 进入弹性伸缩配置界面后,配置资源计划。 资源计划可调控节点数量,也会对实际价格有影响,请谨慎操作。 节点数量范围的“默认范围”设置为“2-2”,表示除资源计划规定时间范围外,其他时间Task节点数量固定为2个。 单击默认范围下方的“配置指定时间段的节点数量范围”或者“添加资源计划”。 配置“生效日期”、“时间范围”和“节点数量范围”。 例如此处“生效日期”设置为周一、周二和周六,“时间范围”设置为“07:00-13:00”,“节点数量范围”设置为“5-5”,表示在该时间范围内,Task节点数量固定为5个。 单击“配置指定时间段的节点数量范围”配置多条资源计划。 生效日期默认是每日生效,也可以选择周一至周日任意一天或几天生效。 如果没有配置指定时间段的节点数量范围,则节点数量范围以“默认范围”为准。 如果配置了指定时间段的节点数量范围,则在这个时间范围内,以配置的“节点数量范围”为准。不在配置的时间范围时,则以“默认范围”为准。
  • 场景三:弹性伸缩规则与资源计划叠加使用 如果数据量并非非常平稳,有可能出现超出预期的波动,因此并不能保证固定Task节点范围一定可以满足业务场景,此时需要在资源计划的基础上根据实时负载对Task节点数量进行调整。 例如:某项实时处理业务数据量在周一、周二和周六7:00~13:00出现规律性变化,但是数据量变化并非非常平稳。假设在周一、周二和周六7:00~13:00期间,需要Task节点的数量范围是5~8个,其他时间需要Task节点数量是2~4个。因此可以在资源计划的基础上,设置基于负载的弹性伸缩规则,以实现当数据量超出预期后,Task节点数量可以在资源计划规定的范围内根据负载情况进行浮动,但不会超出该规定范围。资源计划触发时,会以变化最小的方式使节点数量满足计划规定范围,即如果需要扩容则扩容到计划节点数量范围的下限,如果需要缩容则缩容到计划节点数量范围的上限。 进入弹性伸缩配置界面后,配置弹性伸缩规则。 弹性伸缩规则可调控节点数量,也会对实际价格有影响,请谨慎操作。 节点数量范围的默认范围: 输入Task实例弹性伸缩的数量范围,此约束应用于所有扩容缩容规则。 例如本场景中,配置为2~4个。 伸缩规则: 需要配置扩容或者缩容,否则弹性伸缩将不会启用。 规则类型选择“扩容”或者“缩容”。 单击“添加规则”,进入“添加规则”页面。 图3 添加规则 配置“规则名称”、“如果”、“持续”、“添加”、“冷却时间”。 单击“确定”。 您可以在弹性伸缩页面,扩容或者缩容区域查看配置的规则。 配置资源计划。 单击节点默认范围下方的“配置指定时间段的节点数量范围”或者“添加资源计划”。 配置“生效日期”、“时间范围”和“节点数量范围”。 例如此处“生效日期”设置为周一、周二和周六,“时间范围”设置为“07:00-13:00”,“节点数量范围”设置为“5~8”。 单击“配置指定时间段的节点数量范围”或者“添加资源计划”按钮配置多条资源计划。 生效日期默认是每日生效,也可以选择周一至周日任意一天或几天生效。 如果没有配置指定时间段的节点数量范围,则节点数量范围以“默认范围”为准。 如果配置了指定时间段的节点数量范围,则在这个时间范围内,以配置的“节点数量范围”为准。不在配置的时间范围时,则以“默认范围”为准。
  • 场景一:单独配置弹性伸缩规则 单独配置弹性伸缩规则场景:需要根据Yarn资源使用情况动态调整节点数,在Yarn可用内存低于20%时扩容5个节点,可用内存高于70%时缩容5个节点。Task节点组最高不超过10个节点,最低不少于1个节点。 进入弹性伸缩配置界面后,配置弹性伸缩规则。 配置节点默认范围 输入Task实例弹性伸缩的数量范围,此约束应用于所有扩容缩容规则,取值范围为0~500。 例如本业务场景中,配置为1~10。 配置弹性伸缩规则 需要配置扩容或者缩容规则,否则弹性伸缩将不会启用。 规则类型选择“扩容”或者“缩容”。 单击“添加规则”,进入规则编辑页面。 图2 添加规则 配置“规则名称”、“如果”、“持续”、“添加”、“冷却时间”,具体弹性伸缩指标含义可以参考MRS集群Task节点弹性伸缩概述。 单击“确定”。 您可以在弹性伸缩页面,扩容或者缩容区域查看、编辑或删除配置的规则。您可以继续添加并配置多条规则。 单击“确定”,完成弹性伸缩规则设置。 如果是为已有集群配置弹性伸缩的场景,需勾选“我同意授权MRS服务根据以上策略自动进行节点扩容/缩容操作。”。
  • 为已有MRS集群新增弹性伸缩策略 集群创建成功后,可以通过节点组维度或资源池维度对集群内的Task节点组配置相关规则。 由于节点组维度策略和资源池维度策略互斥,用户根据实际需要选择其中一个配置即可。 指定资源池维度策略在MRS 3.1.5及其之后版本支持。 对比项 节点组维度 资源池维度 弹性伸缩对象 Task节点组内的所有节点 弹性伸缩策略指定资源池内的Task节点 扩容节点资源池归属 default资源池 弹性伸缩策略指定资源池 缩容对象 Task节点组内随机缩容 弹性伸缩策略指定资源池内随机缩容 前提条件 弹性伸缩仅用于Task节点组,当集群内没有Task节点组时,需先添加Task节点组后再继续配置。 资源池维度时必须先添加资源池,具体请参考添加MRS租户资源池。 操作步骤 登录MRS管理控制台。 选择“现有集群”,选中一个运行中的集群并单击集群名称。进入集群详情页面。 选择“弹性伸缩”页签,进入配置弹性伸缩界面。 用户根据实际需要选择资源池维度或者节点组维度进行策略配置。 不同节点组之间的弹性伸缩策略互斥,即只能存在一个节点组有开启的弹性伸缩策略。 弹性伸缩规则可调控节点数量,也会对实际价格有影响,请谨慎操作。 单击“新增弹性伸缩”按钮,即可添加弹性伸缩策略。 您可以参考以下场景进行配置: 场景一:单独配置弹性伸缩规则 场景二:单独使用资源计划 场景三:弹性伸缩规则与资源计划叠加使用
  • 创建MRS集群时配置弹性伸缩 创建集群时,弹性伸缩功能可以通过在高级配置参数中进行配置。 仅分析集群、流式集群和混合集群支持创建集群时配置弹性伸缩策略。 登录MRS管理控制台。 在购买包含有Task类型节点组件的集群时,参考自定义购买MRS集群配置集群软件配置和硬件配置信息后,在“高级配置”页签的弹性伸缩栏,打开对应Task节点类型后的开关按钮,即可进行弹性伸缩规则及资源计划的配置或修改。 图1 创建集群时配置弹性伸缩 您可以参考以下场景进行配置: 场景一:单独配置弹性伸缩规则 场景二:单独使用资源计划 场景三:弹性伸缩规则与资源计划叠加使用
  • 设置弹性伸缩-HPA策略 登录ServiceStage控制台。 选择以下任意方式进入组件“伸缩”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“伸缩”。 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“伸缩”。 使用使用导入CCE工作负载创建组件方法创建的组件,如果未启用组件: 在弹出的对话框单击“确认”。 在“启用组件”页面,单击“启用”,等待组件完成重启。 在“伸缩”页面,单击“弹性伸缩 - HPA”右侧的,开启伸缩策略配置,进入“伸缩策略配置”页签。 CCE集群未安装metrics-server插件,请执行4。 CCE集群已安装metrics-server插件,请执行6。 单击“立即前往配置”,在云容器引擎控制台完成metrics-server插件安装。 为CCE集群安装metrics-server插件,请参考安装Metrics Server。 等待插件安装完成后,返回“伸缩策略配置”页面,刷新页面。 设置伸缩策略参数。 策略名称 输入策略名称。伸缩策略设置完成后,策略名称不支持修改。 长度为4到63个字符,可以包含英文小写字母、数字或中划线(-),必须以英文小写字母开头、以英文小写字母或数字结尾。 实例范围 根据实际业务需要,输入最小实例数和最大实例数。其中,最小实例数取值范围为1到299之间的整数;最大实例数取值范围为1到1500之间的整数,且必须大于最小实例数取值。 策略成功触发后,工作负载实例将在此实例范围内伸缩。 伸缩配置 系统默认:采用K8s社区推荐的默认行为进行负载伸缩。 自定义:可以自定义稳定窗口、步长、优先级等策略实现更灵活的配置,未配置的参数将采用K8s社区推荐的默认值。 触发条件 支持通过“界面配置”、“YAML配置”两种方式设置触发条件参数。 以“CPU利用率”、“内存利用率”为指标设置触发条件,需要已设置组件的“CPU配额”、“内存配额”。如果没有设置,请单击“去修改申请配额”,参考5设置组件“资源”参数后升级组件。 “界面配置”方式 根据实际业务需要,设置“CPU利用率”、“内存利用率”指标的“期望值”和“阈值”(缩容阈值、扩容阈值)。 策略成功触发后,通过向上取整(当前CPU或内存利用率指标值 / 期望值 × 当前运行实例数)来计算需要伸缩的实例数。 当前CPU或内存利用率的指标值小于缩容阈值时,触发缩容。 当前CPU或内存利用率的指标值大于扩容阈值时,触发扩容。 “YAML配置”方式 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50 - type: Resource resource: name: memory target: type: Utilization averageUtilization: 50 - type: Pods pods: metric: name: packets-per-second target: type: AverageValue averageValue: 1k - type: Object object: metric: name: requests-per-second describedObject: apiVersion: networking.k8s.io/v1beta1 kind: Ingress name: main-route target: type: Value value: 10k 如以上示例所示,使用YAML格式除了使用CPU(cpu)、内存(memory)的利用率(Utilization)作为指标外,还可以自定义指标参数配置,并支持更多指标,如Pods、Object、External等。 使用“YAML配置”方式配置自定义指标参数,CCE集群需要已安装prometheus插件。 为CCE集群安装prometheus插件,请参考prometheus。 单击“确定”,完成策略设置。
  • MRS集群节点弹性伸缩指标说明 节点组维度策略 在添加规则时,可以参考表1配置相应的指标。 表1 弹性伸缩指标列表 集群类型 指标名称 数值类型 说明 流式集群 StormSlotAvailable 整型 Storm组件的可用slot数。 取值范围为[0~2147483646]。 StormSlotAvailablePercentage 百分比 Storm组件可用slot百分比。是可用slot数与总slot数的比值。 取值范围为[0~100]。 StormSlotUsed 整型 Storm组件的已用slot数。 取值范围为[0~2147483646]。 StormSlotUsedPercentage 百分比 Storm组件已用slot百分比。是已用slot数与总slot数的比值。 取值范围为[0~100]。 StormSupervisorMemAverageUsage 整型 Storm组件Supervisor的内存平均使用量。 取值范围为[0~2147483646]。 StormSupervisorMemAverageUsagePercentage 百分比 Storm组件Supervisor进程使用的内存占系统总内存的平均百分比。 取值范围[0 ~ 100]。 StormSupervisorCPUAverageUsagePercentage 百分比 Storm组件Supervisor进程使用的CPU占系统总CPU的平均百分比。 取值范围[0 ~ 6000]。 分析集群 YARNAppPending 整型 YARN组件挂起的任务数。 取值范围为[0~2147483646]。 YARNAppPendingRatio 比率 YARN组件挂起的任务数比例。是YARN挂起的任务数与YARN运行中的任务数比值。 取值范围为[0~2147483646]。 YARNAppRunning 整型 YARN组件运行中的任务数。 取值范围为[0~2147483646]。 YARNContainerAllocated 整型 YARN组件中已分配的container个数。 取值范围为[0~2147483646]。 YARNContainerPending 整型 YARN组件挂起的container个数。 取值范围为[0~2147483646]。 YARNContainerPendingRatio 比率 YARN组件挂起的container比率。是挂起的container数与运行中的container数的比值。 取值范围为[0~2147483646]。 YARNCPUAllocated 整型 YARN组件已分配的虚拟CPU核心数。 取值范围为[0~2147483646]。 YARNCPUAvailable 整型 YARN组件可用的虚拟CPU核心数。 取值范围为[0~2147483646]。 YARNCPUAvailablePercentage 百分比 YARN组件可用虚拟CPU核心数百分比。是可用虚拟CPU核心数与总虚拟CPU核心数比值。 取值范围为[0~100]。 YARNCPUPending 整型 YARN组件挂起的虚拟CPU核心数。 取值范围为[0~2147483646]。 YARNMemoryAllocated 整型 YARN组件已分配内存大小。单位为MB。 取值范围为[0~2147483646]。 YARNMemoryAvailable 整型 YARN组件可用内存大小。单位为MB。 取值范围为[0~2147483646]。 YARNMemoryAvailablePercentage 百分比 YARN组件可用内存百分比。是YARN组件可用内存大小与YARN组件总内存大小的比值。 取值范围为[0~100]。 YARNMemoryPending 整型 YARN组件挂起的内存大小。 取值范围为[0~2147483646]。 表1中指标数值类型为百分比或比率时,有效数值可精确到百分位。其中百分比类型指标数值为去除百分号(%)后的小数值,如16.80即代表16.80%。 混合集群的支持分析集群和流式集群的所有指标。 资源池维度策略 在添加规则时,可以参考表2配置相应的指标。 MRS 3.1.5及其之后的版本支持配置资源池维度策略。 表2 规则配置项说明 集群类型 指标名称 数值类型 说明 分析集群/自定义集群 ResourcePoolMemoryAvailable 整型 资源池YARN组件可用内存大小。单位为MB。 取值范围为[0~2147483646]。 ResourcePoolMemoryAvailablePercentage 百分比 资源池YARN组件可用内存百分比。是YARN组件可用内存大小与YARN组件总内存大小的比值。 取值范围为[0~100]。 ResourcePoolCPUAvailable 整型 资源池YARN组件可用的虚拟CPU核心数。 取值范围为[0~2147483646]。 ResourcePoolCPUAvailablePercentage 百分比 资源池YARN组件可用虚拟CPU核心数百分比。是可用虚拟CPU核心数与总虚拟CPU核心数比值。 取值范围为[0~100]。 在添加资源计划时,可以参考表3配置相应的参数。 表3 资源计划配置项说明 配置项 示例 说明 生效日期 周一 资源计划的生效日期。默认是每日生效,也可以选择周一至周日任意一天或几天生效。 时间范围 08:00-10:00 资源计划的起始时间和结束时间,精确到分钟,取值范围[00:00, 23:59]。例如资源计划开始于早上8:00,结束于10:00,则配置为8:00-10:00。结束时间必须晚于开始时间至少30分钟。 节点数量范围 4-5 资源计划内的节点数量上下限,取值范围[0,500],在资源计划时间内,集群Task节点数量小于最小节点数时,弹性伸缩会将集群Task节点一次性扩容到最小节点数。在资源计划时间内,集群Task节点数量大于最大节点数时,弹性伸缩会将集群Task节点一次性缩容到最大节点数。最小节点数必须小于或等于最大节点数。 当启用资源计划时,弹性伸缩配置中的“默认节点数量范围”将在资源计划外的时间段内强制生效。例如“默认节点数量范围”配置为1-2,配置资源计划:08:00-10:00之间节点数量范围为4-5,则在一天中的非资源计划时间段(0:00-8:00以及10:00-23:59)内,Task节点会被强制限制在1个到2个中间,若节点数量大于2则触发自动缩容,若节点数量小于1则触发自动扩容。 当不启用资源计划时,节点数量范围的“默认范围”会在全部时间范围生效,如果节点数量不在“节点数量范围”的默认范围,主动增减Task节点数量到默认范围内。 资源计划间时间段不可交叉,时间段交叉意为某个时间点存在两个生效的资源计划,例如配置资源计划1在08:00-10:00生效,资源计划2在09:00-11:00生效,则两个资源计划存在时间段交叉,交叉时间段09:00-10:00。 资源计划不能跨天配置,例如要配置23:00至次日01:00的资源计划,请配置时间段为23:00-00:00和00:00-01:00的两个资源计划。 自动化脚本 在添加自动化脚本时,可以参考表4配置相应参数。 表4 自动化脚本配置说明 配置项 示例 说明 名称 test 自动化脚本的名称。 只能由数字、英文字符、空格、中划线和下划线组成,且不能以空格开头。 可输入的字符串长度为1~64个字符。 说明: 同一集群内,不允许配置相同的名称。不同集群之间,可以配置相同的名称。 脚本路径 obs://mrs-samples/test.sh 脚本的路径。路径可以是OBS文件系统的路径或虚拟机本地的路径。 OBS文件系统的路径,必须以obs://开头,以.sh结尾。例如:obs://mrs-samples/xxx.sh 虚拟机本地的路径,脚本所在的路径必须以‘/’开头,以.sh结尾。例如,安装Zepelin的示例脚本路径如下:/opt/bootstrap/zepelin/zepelin_install.sh 执行节点 Mater节点 选择自动化脚本所执行的节点类型。 说明: 如果选择Master节点,您可以通过开关选择是否只在Active Master节点执行此脚本。 如果选择开启此功能,表示只在Active Master节点上执行。如果选择关闭,表示在所有Master节点执行。默认关闭。 参数 - 自动化脚本参数,支持通过传入以下预定义变量获得弹性伸缩相关信息: ${mrs_scale_node_num} :弹性伸缩节点数量,总是正数 ${mrs_scale_type} :弹性伸缩类型,扩容为“scale_out”,缩容为“scale_in” ${mrs_scale_node_hostnames} :弹性伸缩节点的主机名,多个主机名之间以“,”隔开 ${mrs_scale_node_ips} :弹性伸缩节点的IP,多个IP之间以“,”隔开 ${mrs_scale_rule_name}:触发弹性伸缩的规则名,如果是资源计划则为“resource_plan” 执行时机 扩容前 选择自动化脚本执行的时间。支持“扩容前”、“扩容后”、“缩容前”、“缩容后”四种类型。 说明: 假设执行节点类型中包含Task节点: 执行时机为扩容前的脚本不会在将要扩容出的Task节点上执行。 执行时机为扩容后的脚本会在扩容出的Task节点上执行。 执行时机为缩容前的脚本会在即将被删除的Task节点上执行。 执行时机为缩容后的脚本不会在已经被删除的Task节点上执行。 失败操作 继续 该脚本执行失败后,是否继续执行后续脚本和扩缩容操作。 说明: 建议您在调试阶段设置为“继续”,无论此脚本是否执行成功,则集群都能继续扩缩容操作。 若脚本执行失败,请到集群虚拟机的“/var/log/Bootstrap”路径下查看失败日志。 由于缩容成功不可回滚,缩容后执行的脚本失败操作只能选择“继续”。 自动化脚本只在弹性伸缩时触发,手动调整集群节点时不会运行。
  • 安装插件 登录CCE控制台。 选择CCE集群,单击进入CCE集群总览页面。 在导航栏左侧单击“插件中心”,进入插件中心首页。 选择“CCE 突发弹性引擎 (对接 CCI)”插件,单击“安装”。 配置插件参数。 表1 插件参数说明 插件参数 说明 选择版本 插件的版本。插件版本和CCE集群存在配套关系,更多信息可以参考CCE突发弹性引擎(对接CCI)插件版本记录。 规格配置 用于配置插件负载的实例数及资源配额。 选择“系统预置规格”时,您可选择“单实例”或“高可用”规格。 选择“自定义规格”时,您可根据需求修改插件各个组件的副本数以及CPU/内存配置。 说明: CCE 突发弹性引擎 (对接 CCI) 插件在1.5.2及以上版本,将占用更多节点资源,请在升级CCE突发弹性引擎(对接 CCI)插件前预留空间配额。 单实例:需要预留一个节点,节点下至少需要有7个Pod空间配额。若开启网络互通,则需要有8个Pod空间配额。 高可用:需要预留两个节点,节点下至少需要有7个Pod空间配额,共计14个Pod空间配额。若开启网络互通,则需要有8个Pod空间配额,共计16个Pod空间配额。 弹性到CCI的业务量不同时,插件的资源占用也不相同。业务申请的POD、Secret、Congfigmap、PV、PVC会占用虚机资源。建议用户评估自己的业务使用量,按以下规格申请对应的虚机大小:1000pod+1000CM(300KB)推荐2U4G规格节点,2000pod+2000CM推荐4U8G规格节点,4000pod+4000CM推荐8U16G规格节点。 网络互通 开启后,支持CCE集群中的Pod与CCI集群中的Pod通过Kubernetes Service互通,并在插件安装时部署组件proxy。详细功能介绍请参考网络。
  • 插件卸载 登录CCE控制台。 选择CCE集群,单击进入CCE集群总览页面。 在导航栏左侧单击“插件中心”,进入插件中心首页。 选择“CCE 突发弹性引擎 (对接 CCI)”插件,单击“卸载”。 表2 特殊场景说明 特殊场景描述 场景现象 场景说明 CCE集群无节点,卸载插件。 插件卸载失败。 bursting插件卸载时会在集群中启动Job用于清理资源,卸载插件时请保证集群中至少有一个可以调度的节点。 用户直接删除集群,未卸载插件。 用户在CCI侧的命名空间中有资源残留,如果命名空间有计费资源,会造成额外计费。 由于直接删除集群,没有执行插件的资源清理Job,造成资源残留。用户可以手动清除残留命名空间及其下的计费资源来避免额外计费。 关于CCE突发弹性引擎(对接CCI)更多内容详情请参见:CCE突发弹性引擎(对接CCI)。
  • 工作负载下发 登录CCE控制台。 选择CCE集群,单击进入CCE集群总览页面。 在导航栏左侧单击“工作负载”,进入工作负载首页。 单击“创建工作负载”,具体操作步骤详情请参见创建工作负载。 填写基本信息。“CCI弹性承载”选择“强制调度策略”。关于调度策略更多信息,请参考调度负载到CCI。 CCE集群创建工作负载时,需要弹性到CCI,健康检查不支持配置TCP启动探针。 进行容器配置。 配置完成后,单击“创建工作负载”。 在工作负载页面,选择工作负载名称,单击进入工作负载管理界面。 工作负载所在节点为CCI集群,说明负载成功已调度到CCI。
  • HPA工作原理 HPA(Horizontal Pod Autoscaler)是用来控制Pod水平伸缩的控制器,HPA周期性检查Pod的度量数据,计算满足HPA资源所配置的目标数值所需的副本数量,进而调整目标资源(如Deployment)的replicas字段。 想要做到自动弹性伸缩,先决条件就是能感知到各种运行数据,例如集群节点、Pod、容器的CPU、内存使用率等等。而这些数据的监控能力Kubernetes也没有自己实现,而是通过其他项目来扩展Kubernetes的能力,Kubernetes提供Prometheus和Metrics Server插件来实现该能力: Prometheus是一套开源的系统监控报警框架,能够采集丰富的Metrics(度量数据),目前已经基本是Kubernetes的标准监控方案。 Metrics Server是Kubernetes集群范围资源使用数据的聚合器。Metrics Server从kubelet公开的Summary API中采集度量数据,能够收集包括了Pod、Node、容器、Service等主要Kubernetes核心资源的度量数据,且对外提供一套标准的API。 使用HPA(Horizontal Pod Autoscaler)配合Metrics Server可以实现基于CPU和内存的自动弹性伸缩,再配合Prometheus还可以实现自定义监控指标的自动弹性伸缩。 HPA主要流程如图1所示。 图1 HPA流程图
  • 请求示例 创建一个伸缩组,伸缩组名称为GroupNameTest,伸缩配置ID为47683a91-93ee-462a-a7d7-484c006f4440,虚拟私有云ID为a8327883-6b07-4497-9c61-68d03ee193a,网卡ID为3cd35bca-5a10-416f-8994-f79169559870,最大实例数为10,期望实例数为0,最小实例数为0,健康检查方式为云服务器健康检查,设置具体企业项目,伸缩组扩缩容时目标AZ选择的优先级策略为PICK_FIRST(选择优先)。
  • 返回值 正常 200 异常 返回值 说明 400 Bad Request 服务器未能处理请求。 401 Unauthorized 被请求的页面需要用户名和密码。 403 Forbidden 对被请求的页面访问禁止。 404 Not Found 服务器无法找到被请求的页面。 405 Method Not Allowed 请求中指定的方法不被允许。 406 Not Acceptable 服务器生成的响应无法被客户端所接受。 407 Proxy Authentication Required 用户必须首先使用代理服务器进行验证,这样请求才会被处理。 408 Request Timeout 请求超出了服务器的等待时间。 409 Conflict 由于冲突,请求无法被完成。 500 Internal Server Error 请求未完成。服务异常。 501 Not Implemented 请求未完成。服务器不支持所请求的功能。 502 Bad Gateway 请求未完成。服务器从上游服务器收到一个无效的响应。 503 Service Unavailable 请求未完成。系统暂时异常。 504 Gateway Timeout 网关超时。
  • 请求参数 表2 请求参数 参数 是否必选 参数类型 描述 scaling_group_name 是 String 伸缩组名称(1-64个字符),只能包含中文、字母、数字、下划线或中划线。 scaling_configuration_id 是 String 伸缩配置ID,通过查询弹性伸缩配置列表接口获取,请参考查询弹性伸缩配置列表。 desire_instance_number 否 Integer 期望实例数量,默认值为最小实例数。 最小实例数≤期望实例数≤最大实例数。 min_instance_number 否 Integer 最小实例数量,默认值为0。 max_instance_number 否 Integer 最大实例数量,默认值为1。取值范围为0-300的整数。 cool_down_time 否 Integer 冷却时间,取值范围0-86400,默认为300,单位是秒。 在每次伸缩活动完成之后,系统开始计算冷却时间。伸缩组在冷却时间内,会拒绝告警策略的触发,其他类型的伸缩策略(如定时策略和周期策略)及手动触发不受限制。 说明: 伸缩组在进行扩容活动过程中,允许缩容策略的触发,扩容活动结束后执行缩容活动,不受冷却时间影响。 伸缩组在进行缩容活动过程中,允许扩容策略的触发,缩容活动结束后执行扩容活动,不受冷却时间影响。 lb_listener_id 否 String 弹性负载均衡监听器ID,最多支持绑定6个负载均衡监听器,多个负载均衡监听器ID以逗号分隔。获取监听器ID的方法请参考查询负载均衡器列表。 该字段与lbaas_listeners互斥。 lbaas_listeners 否 Array of lbaas_listeners objects 弹性负载均衡器信息,最多支持绑定6个负载均衡。列表数据结构请参考表3。获取负载均衡器的信息请参考查询后端云服务器组。 该字段与lb_listener_id互斥。 available_zones 否 Array of strings 可用区信息。弹性伸缩活动中自动添加的云服务器会被创建在指定的可用区中。如果没有指定可用区,会由系统自动指定可用区。详情请参考地区和终端节点。 networks 是 Array of networks objects 网络信息,最多支持选择5个子网,传入的第一个子网默认作为云服务器的主网卡。获取子网信息请参考查询子网列表。数据结构信息请参考表4。 security_groups 否 Array of security_groups objects 安全组信息,仅支持选择1个安全组。获取安全组信息请参考查询安全组列表。数据结构信息请参考表7。 当伸缩配置和伸缩组同时指定安全组时,将以伸缩配置中的安全组为准;当伸缩配置和伸缩组都没有指定安全组时,增加的弹性云服务器将使用默认安全组。为了使用灵活性更高,推荐在伸缩配置中指定安全组。 vpc_id 是 String 虚拟私有云(VPC)信息,获取VPC信息具体操作请参考查询VPC列表。 health_periodic_audit_method 否 String 伸缩组实例健康检查方式:ELB_AUDIT和NOVA_AUDIT。当伸缩组设置负载均衡时,默认为ELB_AUDIT;否则默认为NOVA_AUDIT。 ELB_AUDIT:负载均衡健康检查方式,在有监听器的伸缩组中有效。 NOVA_AUDIT:云服务器健康检查方式,是弹性伸缩自带的健康检查方式。 health_periodic_audit_time 否 Integer 伸缩组实例的健康检查周期,可设置为1、5、15、60、180(分钟),若不设置该参数,默认为5。 若设置为0,可以实现10秒级健康检查。 health_periodic_audit_grace_period 否 Integer 伸缩组实例健康状况检查宽限期,取值范围0-86400,单位是秒,默认为600。 当实例加入伸缩组并且进入已启用状态后,健康状况检查宽限期才会启动,伸缩组会等健康状况检查宽限期结束后才检查实例的运行状况。 当伸缩组实例健康检查方式为ELB_AUDIT时,该参数生效。 instance_terminate_policy 否 String 伸缩组实例移除策略: OLD_CONFIG_OLD_INSTANCE(默认):从“较早创建的配置”创建的实例中选择较早创建的实例进行优先移除。 OLD_CONFIG_NEW_INSTANCE:从“较早创建的配置”创建的实例中选择较晚创建的实例进行优先移除。 OLD_INSTANCE:较早创建的实例被优先移除。 NEW_INSTANCE:较晚创建的实例将被优先移除。 notifications 否 Array of strings 通知方式: EMAIL为发送邮件通知。 该通知方式已经被废除,建议给弹性伸缩组配置通知功能。请参考通知。 delete_publicip 否 Boolean 配置删除云服务器时(即进行实例缩容时,将云服务器从伸缩组中移出)是否删除云服务器绑定的弹性IP。取值为true或false,默认为false。 true:删除云服务器时,会同时删除绑定在云服务器上的弹性IP。当弹性IP的计费方式为包年包月时,不会被删除。 false:删除云服务器时,仅解绑定在云服务器上的弹性IP,不删除弹性IP。 delete_volume 否 Boolean 配置删除云服务器时(即进行实例缩容时,将云服务器从伸缩组中移出)是否删除云服务器绑定的数据盘。取值为true或false,默认为false。 true:删除云服务器时,会同时删除绑定在云服务器上的数据盘。当数据盘的计费方式为包年包月时,不会被删除。 false:删除云服务器时,仅解绑定在云服务器上的数据盘,不删除数据盘。 enterprise_project_id 否 String 企业项目ID,用于指定伸缩组归属的企业项目。 取值为0或无该值,表示属于default企业项目。 取值为UUID,表示属于该UUID对应的企业项目,如何获取企业项目ID,请参考查询企业项目列表。 当伸缩组配置企业项目时,由该伸缩组创建的弹性云服务器将归属于该企业项目。否则将使用默认企业项目。 说明: 关于企业项目特性的详细信息,请参见企业项目管理。 multi_az_priority_policy 否 String 伸缩组扩缩容时目标AZ选择的优先级策略: EQUILIBRIUM_DISTRIBUTE(默认):均衡分布,云服务器扩缩容时优先保证available_zones列表中各AZ下虚拟机数量均衡,当无法在目标AZ下完成虚拟机扩容时,按照PICK_FIRST原则选择其他可用AZ。 PICK_FIRST:选择优先,虚拟机扩缩容时目标AZ的选择按照available_zones列表的顺序进行优先级排序。 description 否 String 伸缩组描述(1-256个字符)。 iam_agency_name 否 String 委托(1-64个字符)。 iam_agency_name为空或者无值则不传递该字段。 iam_agency_name不为空则向下传递。 tags 否 Array of tags objects 创建特定标签并将其添加到伸缩组。每个伸缩组最多添加10个标签。 详情请参考表8。 表3 lbaas_listeners字段数据结构说明 参数 是否必选 参数类型 描述 pool_id 是 String 后端云服务器组ID protocol_port 是 Integer 后端协议号,指后端云服务器监听的端口,取值范围[1, 65535]。 weight 是 Integer 权重,指后端云服务器经分发得到的请求数量的比例,取值范围[0, 100]。 protocol_version 否 String 绑定到负载均衡云服务器组的IP地址版本,枚举值支持ipv4和ipv6。 说明: 伸缩组实例不支持多网卡双栈,仅支持首网卡双栈,其他网卡地址会被忽略。首网卡是指从弹性云服务器查询到的第一张支持所选IP地址版本的网卡,可能是主网卡,也可能是扩展网卡。 只有选择支持IPv6的弹性云服务器,才可以使用IPv4/IPv6双栈网络,请务必选择支持的区域和规格。 当pool_id、protocol_port、protocol_version均一致时,会进行去重。 表4 networks字段数据结构说明 参数 是否必选 参数类型 描述 id 是 String 子网的网络ID。 ipv6_enable 否 Boolean 是否启用IPv6。 true:标识此网卡已启用ipv6。 false:标识此网卡未启用ipv6。默认取值为false。 ipv6_bandwidth 否 ipv6_bandwidth object 绑定的IPv6共享带宽。默认为空,表示未绑定IPv6的共享带宽。 allowed_address_pairs 否 Array of allowed_address_pairs objects 是否开启源/目的检查开关。 表5 ipv6_bandwidth字段数据结构说明 参数 是否必选 参数类型 描述 id 是 String IPv6共享带宽的ID 表6 allowed_address_pairs字段数据结构说明 参数 是否必选 参数类型 描述 ip_address 否 String 是否开启源/目的检查开关。 默认是开启,不允许置空。 关闭:1.1.1.1/0 开启:除“1.1.1.1/0”以外的其余值均按开启处理 表7 security_groups字段数据结构说明 参数 是否必选 参数类型 描述 id 是 String 安全组ID 表8 tags字段数据结构说明 参数 是否必选 参数类型 描述 key 是 String 键。 最大长度36个unicode字符。key不能为空。 同一资源的key值不能重复。 只能包含大写字母(A~Z)、小写字母(a~z)、数字(0-9)、下划线(_)、中划线(-)以及中文字符。 value 否 String 值。 每个值最大长度43个unicode字符,可以为空字符串。 value值只能包含大写字母(A~Z)、小写字母(a~z)、数字(0-9)、下划线(_)、中划线(-)、小数点(.)以及中文字符。
  • 功能介绍 伸缩组是具有相同应用场景的实例的集合,是启停伸缩策略和进行伸缩活动的基本单位。伸缩组内定义了最大实例数、期望实例数、最小实例数、虚拟私有云、子网、负载均衡等信息。 默认最多可以创建10个伸缩组。 如果伸缩组配置了负载均衡,在添加或移除实例时,会自动为实例绑定或解绑负载均衡监听器。 如果伸缩组使用负载均衡健康检查方式,伸缩组中的实例需要启用负载均衡器的监听端口才能通过健康检查。端口启用可在安全组中进行配置,可参考添加安全组规则进行操作。 如果您将多个负载均衡器添加到伸缩组,则只有在所有负载均衡器均检测到云服务器状态为正常的情况下,才会认为该弹性云服务器正常。否则只要有一个负载均衡器检测到云服务器状态异常,伸缩组会将该弹性云服务器移出伸缩组。 如果您将负载均衡器的多个端口绑定到伸缩组,则只有在所有端口均检测到云服务器状态为正常的情况下,才会认为该弹性云服务器正常。否则只要有一个端口检测到云服务器状态异常,伸缩组会将该弹性云服务器移出伸缩组。 当实例绑定负载均衡器的多个端口时,推荐伸缩策略与云服务器实例告警指标关联,避免伸缩策略与单一业务或网络指标关联,否则当不同告警指标分别指向扩容和缩容时,会导致扩缩容同时触发。 弹性伸缩活动中,若实例与负载均衡器的多个端口依次绑定或解绑,未全部成功时,则认为实例伸缩失败。扩容触发实例释放并创建新实例,缩容失败不释放实例。