调用CreateCluster创建一个专有版安全沙箱Kubernetes集群。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求语法
POST /clusters HTTP/1.1
Content-Type:application/json
{
"addons" : [ {
"name" : "String",
"config" : "String",
"disabled" : Boolean
} ],
"cloud_monitor_flags" : Boolean,
"cluster_type" : "String",
"container_cidr" : "String",
"cpu_policy" : "String",
"deletion_protection" : Boolean,
"disable_rollback" : Boolean,
"endpoint_public_access" : Boolean,
"is_enterprise_security_group" : Boolean,
"key_pair" : "String",
"kubernetes_version" : "String",
"login_password" : "String",
"master_auto_renew" : Boolean,
"master_auto_renew_period" : Long,
"master_count" : Long,
"master_vswitch_ids" : [ "String" ],
"master_instance_types" : [ "String" ],
"master_system_disk_category" : "String",
"master_system_disk_size" : Long,
"master_system_disk_snapshot_policy_id" : "String",
"master_instance_charge_type" : "String",
"master_period_unit" : "String",
"master_period" : Long,
"name" : "String",
"node_cidr_mask" : "String",
"node_port_range" : "String",
"num_of_nodes" : Long,
"pod_vswitch_ids" : [ "String" ],
"proxy_mode" : "String",
"region_id" : "String",
"runtime" : {
"name" : "String",
"version" : "String"
},
"service_cidr" : "String",
"security_group_id" : "String",
"snat_entry" : Boolean,
"ssh_flags" : Boolean,
"tags" : [ {
"key" : "String",
"value" : "String"
} ],
"taints" : [ {
"key" : "String",
"value" : "String",
"effect" : "String"
} ],
"timeout_mins" : Long,
"user_data" : "String",
"vpcid" : "String",
"vswitch_ids" : [ "String" ],
"worker_auto_renew" : Boolean,
"worker_auto_renew_period" : Long,
"worker_data_disks" : [ {
"category" : "String",
"size" : Long,
"encrypted" : "String",
"auto_snapshot_policy_id" : "String"
} ],
"worker_vswitch_ids" : [ "String" ],
"worker_instance_types" : [ "String" ],
"worker_system_disk_category" : "String",
"worker_system_disk_size" : Long,
"worker_instance_charge_type" : "String",
"worker_period_unit" : "String",
"worker_period" : Long,
"zone_id" : "String"
}
请求参数
表 1. 请求Body参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
addons | Array | 是 | [{"name": "terway-eniip","config": ""}, {"name": "logtail-ds","config": "{\"IngressDashboardEnabled\":\"true\",\"sls_project_name\":\"your_sls_project_name\"}"}, {"name":"nginx-ingress-controller","config":"{\"IngressSlbNetworkType\":\"internet\"}"}] | Kubernetes集群的安装的组件列表:
|
cloud_monitor_flags | Boolean | 否 | true | 集群是否安装云监控插件。取值:
默认值: |
cluster_type | String | 是 | Kubernetes | 集群类型。创建专有版安全沙箱集群时,只能选择 |
container_cidr | String | 否 | 172.20.0.0/16 | Pod网络地址段,不能和VPC网段冲突。当选择系统自动创建VPC时,默认使用172.16.0.0/16网段。当创建Flannel网络类型的集群时,该字段为必填。 |
cpu_policy | String | 否 | none | 节点CPU管理策略。当集群版本在1.12.6及以上时支持以下两种策略:
默认值: |
deletion_protection | Boolean | 否 | true | 集群是否开启集群删除保护,防止通过控制台或API误删除集群。取值:
默认值: |
disable_rollback | Boolean | 否 | true | 集群创建失败是否回滚。取值:
默认值: |
endpoint_public_access | Boolean | 否 | true | 是否开启公网API Server。取值:
默认值: |
is_enterprise_security_group | Boolean | 否 | true | 自动创建企业级安全组,当
默认值: |
key_pair | String | 是 | security-key | 密钥对名称,和 |
kubernetes_version | String | 否 | 1.16.9-aliyun.1 | 集群版本,与Kubernetes社区基线版本保持一致。建议选择最新版本,若不指定,默认使用最新版本。目前您可以在ACK控制台创建两种最新版本的集群。您可以通过API创建其他Kubernetes版本集群。关于ACK支持的Kubernetes版本,请参见Kubernetes版本发布概览。 |
login_password | String | 是 | Hello@1234 | SSH登录密码,和 |
master_auto_renew | Boolean | 否 | true | Master节点是否开启自动续费,当
默认值: |
master_auto_renew_period | Long | 否 | 1 | Master节点自动续费周期,当选择包年包月付费类型时才生效,且为必选项。 取值范围:{1, 2, 3, 6, 12}。 默认值:1。 |
master_count | Long | 否 | 3 | Master节点数量,取值3或5。 默认值:3。 |
master_instance_charge_type | String | 否 | PrePaid | Master节点付费类型,取值:
默认为 |
master_instance_types | Array of String | 否 | ["ecs.n4.xlarge"] | Master节点实例类型。指定的实例规格数量需要和 |
master_period | Long | 否 | 1 | Master节点包年包月时长,当 取值范围:{1, 2, 3, 6, 12, 24, 36, 48, 60}。 默认值:1。 |
master_period_unit | String | 否 | Month | Master节点付费周期,当付费类型为 取值: |
master_system_disk_category | String | 否 | cloud_ssd | Master节点系统盘类型,取值:
默认值: |
master_system_disk_size | Long | 否 | 120 | Master节点系统盘类型,取值范围[40,500],单位:GiB。 默认值:120。 |
master_system_disk_performance_level | String | 否 | PL1 | 集群Master节点系统盘磁盘性能等级, 仅对ESSD磁盘生效。磁盘性能等级和磁盘大小有关。更多信息,请参见ESSD云盘。 |
master_vswitch_ids | Array of String | 否 | ["vsw-2ze3ds0mdip0hdz8i****"] | Master节点虚拟交换机ID。 |
name | String | 是 | cluster-demo | 集群名称。 命名规则:由数字、汉字、英文字符或短划线(-)组成,长度范围1~63个字符,且不能以短划线(-)开头。 |
node_cidr_mask | String | 否 | 25 | 节点IP数量,通过指定网络的CIDR来确定IP的数量,只对于Flannel网络类型集群生效。 默认值:25。 |
node_port_range | String | 否 | 30000~32767 | 节点服务端口。取值范围为[30000,65535]。 |
num_of_nodes | Long | 是 | 3 | Worker节点数。范围是[0,100]。 |
pod_vswitch_ids | Array of String | 否 | ["vsw-2ze97jwri7cei0mpw****"] | Pod的虚拟交换机列表。 说明 Terway网络类型必须要指定 您需要为每一个节点虚拟交换机指定至少一个相同可用区的Pod虚拟交换机,并且不能跟节点 |
proxy_mode | String | 否 | ipvs | kube-proxy代理模式,支持 默认值: |
region_id | String | 是 | cn-beijing | 集群所在的地域ID。 |
runtime | 是 | {"name": "Sandboxed-Container.runv", "version": "2.2.0"} | 集群内容器运行时。支持
runtime包括以下2个信息:
重要 在创建安全沙箱集群的场景下,只能选择 容器运行时版本,默认为最新版。关于安全沙箱运行时的变更详情,请参见安全沙箱运行时发布记录。 | |
security_group_id | String | 否 | sg-bp1bdue0qc1g7k**** | 使用已有安全组创建集群时需要指定安全组ID,集群节点自动加入到此安全组,和 |
service_cidr | String | 是 | 172.21.0.0/20 | Service网络地址段,不能和VPC网段及Pod网络网段冲突。当选择系统自动创建VPC时,默认使用172.19.0.0/20网段。 |
snat_entry | Boolean | 否 | true | 是否为网络配置SNAT:
如果您的应用需要访问公网,建议配置为 默认值: |
ssh_flags | Boolean | 否 | true | 是否开放公网SSH登录。取值:
默认值: |
tags | Array | 否 | 集群标签。 | |
Key | String | 否 | env | 标签key-value的键。 |
value | String | 否 | prod | 标签key-value的值。 |
tains | Array | 否 | 节点污点信息。污点和容忍度(Toleration)相互配合,可以用来避免Pod被分配到不合适的节点上。更多信息,请参见taint-and-toleration。 | |
effect | String | 否 | NoSchedule | 调度策略。取值:
|
Key | String | 否 | disk_type | 污点key-value的键。 |
value | String | 否 | sshd | 污点key-value的值。 |
timeout_mins | Long | 否 | 60 | 集群创建超时时间。单位:分钟。 默认值:60。 |
user_data | String | 否 | IyEvdXNyL2Jpbi9iYXNoCmVjaG8gIkhlbGxvIEFD**** | 节点自定义数据。更多信息,请参见ECS实例自定义数据概述。 |
vpcid | String | 是 | vpc-2zeik9h3ahvv2zz95**** | 集群使用的VPC实例ID。 |
vswitch_ids | Array of String | 是 | ["vsw-2ze48rkq464rsdts1****"] | 虚拟交换实例ID。 |
worker_auto_renew | Boolean | 否 | true | Worker节点是否开启自动续费,当
默认值: |
worker_auto_renew_period | Long | 否 | 1 | Worker节点自动续费周期,当选择包年包月付费类型时才生效,且为必选值。取值范围:{1,2,3,6,12}。 |
worker_data_disks | Array | 是 | Worker节点数据盘类型、大小等配置的组合。 | |
auto_snapshot_policy_id | String | 否 | sp-bp14j6w7ss6ozz**** | 自动快照策略ID。 |
category | String | 否 | cloud_ssd | Worker节点数据盘类型,取值:
默认值: |
encrypted | String | 否 | false | 是否对数据盘加密。取值:
默认值: |
size | String | 是 | 200 | 数据盘大小,内存单位为GiB。取值:
说明 安全沙箱节点要求至少有一块不小于200 GiB的数据盘。 |
worker_instance_charge_type | String | 是 | PrePaid | Worker节点付费类型,取值:
默认:按量付费。 |
worker_instance_types | Array of String | 是 | ["ecs.ebmg5s.24xlarge"] | Worker节点实例类型。 重要 安全沙箱集群只支持神龙裸金属实例。 |
worker_period | Long | 否 | 1 | Worker节点包年包月时长,当 默认值:1。 |
worker_period_unit | String | 否 | Month | Worker节点付费周期,当付费类型为 |
worker_system_disk_category | String | 否 | cloud_efficiency | Worker节点系统盘类型,取值:
默认值: |
worker_system_disk_size | Long | 否 | 200 | Worker节点系统盘大小,单位为GiB。 取值范围:[40,500]。 该参数的取值必须大于或者等于max{40, ImageSize}。 默认值: |
worker_vswitch_ids | Array of String | 否 | ["vsw-2ze3ds0mdip0hdz8i****"] | 集群节点使用的虚拟交换机列表,一个节点对应一个值。 |
zone_id | String | 否 | cn-beijing-b | 集群所属地域的可用区ID。 |
resource_group_id | String | 否 | rg-acfm3mkrure**** | 集群所属资源组ID,实现不同资源的隔离。 |
响应体语法
HTTP/1.1 200
Content-Type:application/json
{
"cluster_id" : "String",
"request_id" : "String",
"task_id" : "String"
}
响应参数
表 2. 响应Body参数
名称 | 类型 | 示例值 | 描述 |
cluster_id | String | cb95aa626a47740afbf6aa099b650**** | 集群ID。 |
request_id | String | 687C5BAA-D103-4993-884B-C35E4314A1E1 | 请求ID。 |
task_id | String | T-5a54309c80282e39ea00002f | 任务ID。 |
示例1 使用Flannel网络插件创建ACK专有版安全沙箱集群
请求示例
POST /clusters
公共请求头
{
"cluster_type": "Kubernetes",
"name": "webService",
"region_id": "cn-hangzhou",
"disable_rollback": true,
"timeout_mins": 60,
"kubernetes_version": "1.18.8-aliyun.1",
"snat_entry": true,
"endpoint_public_access": false,
"cloud_monitor_flags": true,
"deletion_protection": false,
"node_cidr_mask": "26",
"proxy_mode": "ipvs",
"timezone": "Asia/Shanghai",
"tags": [],
"addons": [{
"name": "flannel"
}, {
"name": "arms-prometheus"
}, {
"name": "csi-plugin"
}, {
"name": "csi-provisioner"
}, {
"name": "logtail-ds",
"config": "{\"IngressDashboardEnabled\":\"true\"}"
}, {
"name": "ack-node-problem-detector",
"config": "{\"sls_project_name\":\"\"}"
}, {
"name": "nginx-ingress-controller",
"config": "{\"IngressSlbNetworkType\":\"internet\"}"
}],
"node_port_range": "30000-32767",
"login_password": "Hello1234!",
"cpu_policy": "none",
"master_count": 3,
"master_vswitch_ids": ["vsw-bp1hl2o4i9z7sbmy*****", "vsw-bp1hl2o4i9z7sbmy*****", "vsw-bp1hl2o4i9z7sbmy*****"],
"master_instance_types": ["ecs.c6e.large", "ecs.c6e.large", "ecs.c6e.large"],
"master_system_disk_category": "cloud_essd",
"master_system_disk_size": 120,
"runtime": {
"name": "Sandboxed-Container.runv",
"version": "2.1.0"
},
"worker_instance_types": ["ecs.ebmc5s.24xlarge"],
"num_of_nodes": 1,
"worker_system_disk_category": "cloud_essd",
"worker_system_disk_size": 120,
"worker_data_disks": [{
"category": "cloud_efficiency",
"size": "200",
"encrypted": "false",
"auto_snapshot_policy_id": ""
}],
"vpcid": "vpc-bp1gxh70jnkl12vq*****",
"worker_vswitch_ids": ["vsw-bp1hl2o4i9z7sbmy*****"],
"is_enterprise_security_group": true,
"container_cidr": "172.23.0.0/16",
"service_cidr": "172.21.0.0/20"
}
正常返回示例
XML
格式
<cluster_id>cb95aa626a47740afbf6aa099b650****</cluster_id>
<task_id>T-5a54309c80282e39ea00002f</task_id>
<request_id>687C5BAA-D103-4993-884B-C35E4314A1E1</request_id>
JSON
格式
{
"cluster_id": "cb95aa626a47740afbf6aa099b650****",
"task_id": "T-5a54309c80282e39ea00002f",
"request_id": "687C5BAA-D103-4993-884B-C35E4314A1E1"
}
示例2 使用Terway网络插件创建专有版安全沙箱集群示例
如果您创建是Terway网络类型的集群,pod_vswitch_ids
为必填参数。
请求示例
POST /clusters HTTP/1.1
公共请求头
{
"cluster_type":"Kubernetes",
"name":"webService-terway",
"region_id":"cn-beijing",
"disable_rollback":true,
"timeout_mins":60,
"kubernetes_version":"1.14.8-aliyun.1",
"snat_entry":true,
"endpoint_public_access":true,
"ssh_flags":true,"cloud_monitor_flags":true,
"deletion_protection":false,
"proxy_mode":"ipvs",
"tags":[],
"addons":[{"name":"terway-eni"},{"name":"flexvolume"},{"name":"alicloud-disk-controller"},{"name":"logtail-ds","config":"{\"IngressDashboardEnabled\":\"false\"}"},{"name":"ack-node-problem-detector","config":"{\"sls_project_name\":\"\"}"},{"name":"nginx-ingress-controller","config":"{\"IngressSlbNetworkType\":\"internet\"}"}],
"os_type":"Linux",
"platform":"CentOS",
"node_port_range":"30000-32767",
"pod_vswitch_ids":["vsw-2zete8s4qocqg0mf6****"],
"key_pair":"sian-sshkey",
"cpu_policy":"none",
"master_count":3,
"master_vswitch_ids":["vsw-2zed90q9inwtuyfzd****","vsw-2zed90q9inwtuyfzd****","vsw-2zed90q9inwtuyfzd****"],
"master_instance_types":["ecs.i1.4xlarge","ecs.i1.4xlarge","ecs.i1.4xlarge"],
"master_system_disk_category":"cloud_ssd",
"master_system_disk_size":120,
"runtime":{"name":"docker","version":"18.09.2"},
"worker_instance_types":["ecs.i1.4xlarge"],
"num_of_nodes":1,
"worker_system_disk_category":"cloud_efficiency",
"worker_system_disk_size":120,
"vpcid":"vpc-2zecuu62b9zw7a7qnn2tv",
"worker_vswitch_ids":["vsw-2zed90q9inwtuyfzd****"],
"is_enterprise_security_group":true,
"service_cidr":"172.21.0.0/20"
}
正常返回示例
XML
格式
<cluster_id>cb95aa626a47740afbf6aa099b650****</cluster_id>
<task_id>T-5a54309c80282e39ea00002f</task_id>
<request_id>687C5BAA-D103-4993-884B-C35E4314A1E1</request_id>
JSON
格式
{
"cluster_id": "cb95aa626a47740afbf6aa099b650****",
"task_id": "T-5a54309c80282e39ea00002f",
"request_id": "687C5BAA-D103-4993-884B-C35E4314A1E1"
}
错误码
访问错误中心查看更多错误码。