全部产品
Search
文档中心

弹性伸缩:ApplyScalingGroup - 基于配置文件管理伸缩组

更新时间:Nov 11, 2024

如果您需要通过配置文件方式快速创建、管理伸缩组,则可以通过调用API ApplyScalingGroup来创建和管理伸缩组。

接口说明

ApplyScalingGroup 目前支持 Kubernetes Deployment 资源定义格式快速创建 ECI 伸缩组。同时支持 ECI 对 Kubernetes YAML 拓展 annotation,详情参考《支持 annotation 列表》。

YAML 配置与伸缩组映射关系:通过 YAML 定义中的 namespace、kind、name 三元组映射伸缩组 name。一个 region 下同一个 YAML 配置只能映射同一个伸缩组。示例:如果使用默认 namespace 下 name 为 nginx 的 Deployment YAML 配置,则映射同 region 下名称为 k8s_default_Deployment_nginx 伸缩组。

基于 YAML 配置管理伸缩组逻辑:

  • 当 YAML 配置映射伸缩组存在时,会基于 YAML 配置更新伸缩组;
  • 当 YAML 配置映射伸缩组不存在时,会基于 YAML 配置创建对应伸缩组。

注意事项

  1. 当 YAML 配置未指定专有网络、vSwitch、安全组 annotation 时,系统会自动创建默认 VPC,在该 VPC 下创建默认交换机,以及 ESS 默认安全组 ess-default-sg。其中安全组策略默认开放 TCP 协议的 22、3389 端口以及 ICMP(IPv4)协议,如果用户有其他端口协议需求,可以另行调整安全组策略。
  2. 当使用公网镜像时,需配置开启公网访问能力,设置 k8s.aliyun.com/eci-with-eip pod annotation 开启 eip。
  3. ApplyScalingGroup 应用 YAML 配置后,伸缩组、伸缩配置会立即生效,如果指定 replicas > 0 时,会自动创建资源。

支持的 annotation 列表

annotation 参考自ECI Pod Annotation

参数示例值说明
k8s.aliyun.com/ess-scaling-group-min-size1伸缩组最小值。默认值 0。
k8s.aliyun.com/ess-scaling-group-max-size20伸缩组最大值。默认为 max(replicas, 30)。
k8s.aliyun.com/eci-ntp-server100.100..NTP Server。
k8s.aliyun.com/eci-use-specs2-4Gi2 核 4G 规格配置。更多信息,请参见多规格创建 Pod
k8s.aliyun.com/eci-vswitchvsw-bp1xpiowfm5vo8o3c****指定交换机 ID,支持指定多个交换机实现多可用区功能。
k8s.aliyun.com/eci-security-groupsg-bp1dktddjsg5nktv****指定安全组 ID。要求如下:
  • 支持指定一个或多个安全组,最多可以指定 5 个安全组。
  • 指定的安全组必须属于同一 VPC。
  • 指定的安全组的类型必须相同。
k8s.aliyun.com/eci-sls-enable"false"配置为 false 表示关闭日志采集功能。

通过 SLS CRD 方式采集日志时,如果某些 Pod 不需要采集日志,可配置该 Annotation 来关闭日志采集功能,避免系统自动创建 Logtail 而造成资源浪费。

k8s.aliyun.com/eci-spot-strategySpotAsPriceGo抢占式实例的出价策略。可根据需要配置为:
  • SpotWithPriceLimit:自定义设置抢占实例价格上限。此时必须设置 k8s.aliyun.com/eci-spot-price-limit。
  • SpotAsPriceGo:系统自动出价,跟随当前市场实际价格。
k8s.aliyun.com/eci-spot-price-limit"0.5"抢占式实例的每小时价格上限,最多支持精确到小数点后三位。

仅当 k8s.aliyun.com/eci-spot-strategy 设置为 SpotWithPriceLimit 时有效。

k8s.aliyun.com/eci-with-eip"true"配置为 true 表示自动创建并绑定 EIP。
k8s.aliyun.com/eci-data-cache-bucketdefault指定 DataCache 的 Bucket。使用 DataCache 创建 Pod 时必须配置。
k8s.aliyun.com/eci-data-cache-plPL1基于 DataCache 创建的云盘的性能等级。

默认使用 ESSD 云盘,性能等级默认为 PL1。

k8s.aliyun.com/eci-data-cache-provisionedIops"40000"ESSD AutoPL 云盘预配置的读写 IOPS。取值范围:0~min{50000, 1000 * 容量-基准性能}。基准性能=min{1800+50 * 容量, 50000}。更多信息,请参见ESSD AutoPL 云盘

如果添加了该 Annotation,则基于 DataCache 创建的云盘类型为 ESSD AutoPL 云盘。

k8s.aliyun.com/eci-data-cache-burstingEnabled"true"ESSD AutoPL 云盘是否开启 Burst(性能突发)。更多信息,请参见ESSD AutoPL 云盘

如果添加了该 Annotation,则基于 DataCache 创建的云盘类型为 ESSD AutoPL 云盘。

k8s.aliyun.com/eci-custom-tags"env:test,name:alice"绑定的标签(Tag)字符串,最多可以绑定 3 个标签。标签键和标签值之间用半角冒号隔开,多个标签之间用半角逗号隔开。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
ess:ApplyScalingGroupcreate
  • 全部资源
    *

请求参数

名称类型必填描述示例值
Contentstring

配置文件内容。

apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx annotations: k8s.aliyun.com/eip-bandwidth: 10 k8s.aliyun.com/eci-with-eip: true spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
RegionIdstring

所属地域的 ID。

cn-hangzhou
Formatstring

可选,默认值 YAML,当前仅支持 YAML 格式。

YAML

返回参数

名称类型描述示例值
object

Schema of Response

RequestIdstring

请求 ID。

CC107349-57B7-4405-B1BF-9BF5AF7F****
ScalingGroupIdstring

生效伸缩组的 ID。

asg-bp1igpak5ft1flyp****

示例

正常返回示例

JSON格式

{
  "RequestId": "CC107349-57B7-4405-B1BF-9BF5AF7F****",
  "ScalingGroupId": "asg-bp1igpak5ft1flyp****"
}

错误码

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
暂无变更历史