ApplyScalingGroup

如果您需要通过配置文件方式快速创建和管理ECI类型的伸缩组,则可以通过调用API ApplyScalingGroup来实现该功能。

接口说明

ApplyScalingGroup目前支持以Kubernetes Deployment资源定义格式快速创建ECI伸缩组。同时支持ECI实例对Kubernetes YAML拓展annotation,更多信息,请参见本文的《支持的annotation列表》。

YAML配置与伸缩组的映射关系:通过YAML中定义的namespacekindname三元组映射伸缩组name,一个地域(region)下同一个YAMLl配置只能映射同一个伸缩组。例如:

如果使用默认命名空间(namespace)下namenginx的Deployment YAML配置,则映射同地域(region)下名称为k8s_default_Deployment_nginx的伸缩组。

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

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

注意事项

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

支持的annotation列表

更多annotation信息,请参考ECI Pod Annotation

参数

示例值

说明

k8s.aliyun.com/ess-scaling-group-min-size

1

伸缩组最小值。默认值:0。

k8s.aliyun.com/ess-scaling-group-max-size

20

伸缩组最大值。默认值:max(replicas, 30)。

k8s.aliyun.com/eci-ntp-server

100.100.*.*

NTP Server。

k8s.aliyun.com/eci-use-specs

2-4Gi

2核4 G规格配置。更多信息,请参见多规格创建Pod

k8s.aliyun.com/eci-vswitch

vsw-bp1xpiowfm5vo8o3c****

指定交换机ID,支持指定多个交换机实现多可用区功能。

k8s.aliyun.com/eci-security-group

sg-bp1dktddjsg5nktv****

指定安全组ID。要求如下:支持指定一个或多个安全组,最多可以指定5个安全组;指定的安全组必须属于同一VPC;指定的安全组的类型必须相同。

k8s.aliyun.com/eci-sls-enable

"false"

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

k8s.aliyun.com/eci-spot-strategy

SpotAsPriceGo

抢占式实例的出价策略,可根据需要进行配置。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-bucket

default

指定DataCache的Bucket。使用DataCache创建Pod时必须配置。

k8s.aliyun.com/eci-data-cache-pl

PL1

基于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代码示例。

请求参数

名称

类型

是否必选

示例值

描述

Action String ApplyScalingGroup

系统规定参数。取值:ApplyScalingGroup

ClientToken String 123e4567-e89b-12d3-a456-42665544****

保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。只支持ASCII字符,且不能超过64个字符。更多信息,请参见如何保证幂等性

Content String 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

配置文件内容。

RegionId String cn-hangzhou

所属地域的ID。

Format String YAML

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

返回数据

名称

类型

示例值

描述

RequestId String CC107349-57B7-4405-B1BF-9BF5AF7F****

请求ID。

ScalingGroupId String asg-bp1igpak5ft1flyp****

生效的伸缩组ID。

示例

请求示例

http(s)://ess.aliyuncs.com/?Action=ApplyScalingGroup
&ClientToken=123e4567-e89b-12d3-a456-42665544****
&Content=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
&RegionId=cn-hangzhou
&Format=YAML
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<ApplyScalingGroupResponse>
    <RequestId>CC107349-57B7-4405-B1BF-9BF5AF7F****</RequestId>
    <ScalingGroupId>asg-bp1igpak5ft1flyp****</ScalingGroupId>
</ApplyScalingGroupResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

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

错误码

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