调用CreateCluster创建一个标准Kubernetes专有版集群实例,并新建指定数量的节点。

说明 创建集群时,请求参数需要正确组合,否则会导致集群创建失败。在容器服务控制台创建集群界面,提供了生成集群创建OpenAPI参数功能,可以为您提供准确的参数组合。请参见生成 OpenAPI参数

调试

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

请求头

该接口使用公共请求头,无特殊请求头。请参见公共请求参数文档。

请求语法

POST /clusters HTTPS|HTTP

请求参数

名称 类型 是否必选 示例值 描述
region_id String cn-beijing

集群所在地域ID。

name String test-cluster

集群名称, 集群名称可以使用大小写英文字母、中文、数字、中划线。

key_pair String key_pair-xxxxxx

key_pair名称,和login_password二选一。

snat_entry Boolean true

是否为网络配置SNAT:

  • 当已有VPC能访问公网环境时,设置为 false。
  • 当已有VPC不能访问公网环境时:
    • 设置为true,表示配置SNAT,此时可以访问公网环境。
    • 设置为false,表示不配置SNAT,此时不能访问公网环境。
login_password String Yourpasswd1234

SSH登录密码。密码规则为8~30 个字符,且至少同时包含三项(大小写字母、数字和特殊符号),和key_pair 二选一。

master_system_disk_category String cloud_ssd

Master节点系统盘类型,取值范围是:

  • cloud_efficiency:高效云盘。
  • cloud_ssd:SSD云盘。
master_system_disk_size Integer 120

Master节点系统盘大小,单位为GiB。

num_of_nodes Integer 3

Worker节点数。范围是[0,100]。

worker_system_disk_category String cloud_efficiency

Worker节点系统盘类型。

worker_instance_types List<String> ["ecs.i1.2xlarge"]

Worker节点ECS规格类型代码。更多详细信息,参见实例规格族

master_instance_types List<String> ["ecs.n4.xlarge","ecs.n4.xlarge","ecs.n4.xlarge"]

Master节点ECS规格类型代码。更多详细信息,参见实例规格族

master_vswitch_ids List<String> ["vsw-2ze4jvvvade1yk899****","vsw-2ze4jvvvade1yk899****","vsw-2ze4jvvvade1yk899****"]

Master节点交换机ID列表,交换机个数取值范围为1~3。为确保集群的高可用性,推荐您选择3个交换机,且分布在不同的可用区。

worker_system_disk_size Integer 120

Worker节点系统盘大小,单位为GiB。

worker_vswitch_ids List<String> ["vsw-2ze4jvvvade1yk899****"]

Worker节点的虚拟交换机ID列表。

cluster_type String Kubernetes

集群类型,包括:托管版集群(ManagedKubernetes)、专有版集群(DedicatedKubernetes)、ServerLess集群(ServerlessKubenetes)以及边缘集群。

vpcid String vpc-2ze8b1o12tx3ocbzx****

vpcId不能为空。

说明 vpcId和vswitchid只能同时都设置对应的值。

tags Array [{"key":"tier","value":"backend"}]

给集群打tag标签:

  • key:标签名称。
  • value:标签值。
endpoint_public_access Boolean true

是否开启公网API Server:

  • true:默认为True,表示开放公网API Server。
  • false:若设置为false, 则不会创建公网的API Server,仅创建私网的API Server。
kubernetes_version String 1.16.6-aliyun.1

Kubernetes集群版本,默认最新版。

timeout_mins Integer 60

集群资源栈创建超时时间,以分钟为单位,默认值 60。

disable_rollback Boolean true

失败是否回滚:

  • true:表示失败不回滚。
  • false:表示失败回滚。

默认为true,如果选择失败回滚,则会释放创建过程中所生产的资源,不推荐使用false。

ssh_flags Boolean true

是否开放公网SSH登录:

  • true:表示开放。
  • false:表示不开放。
cloud_monitor_flags Boolean true

是否安装云监控插件:

  • true:表示安装。
  • false:表示不安装。
deletion_protection Boolean true

是否开启集群删除保护,防止通过控制台或API误删除集群。

node_cidr_mask String 26

节点网络的网络前缀。

proxy_mode String ipvs

kube-proxy代理模式,支持iptables和IPVS两种模式,默认为iptables 。

os_type String Linux

运行pod的主机的操作系统类型,例如:linux,Windows等。

platform String CentOS

运行pod的主机的平台架构,例如:x86。

node_port_range String 30000-32767

节点服务端口。取值范围为[30000,65535]。

master_instance_charge_type String PrePaid

Master节点付费类型,可选值为:

  • PrePaid:预付费
  • PostPaid:按量付费

默认为按量付费。

worker_instance_charge_type String PrePaid

Worker节点付费类型,可选值为:

  • PrePaid:预付费。
  • PostPaid:按量付费。

默认为按量付费。

master_period Integer 1

包年包月时长,当master_instance_charge_type取值为PrePaid时才生效且为必选值,取值范围: PeriodUnit=Month时,Period取值:{ “1”, “2”, “3”,“6”,“12”}。

worker_period Integer 1

包年包月时长,当worker_instance_charge_type取值为PrePaid时才生效且为必选值,取值范围:PeriodUnit=Month时,Period取值:{ “1”, “2”, “3”, “6”, “12”}。

cpu_policy String none

CPU策略。集群版本为1.12.6及以上版本支持static 和 none两种策略。默认为none。

worker_period_unit String Month

当指定为PrePaid的时候需要指定周期。Month:以月为计时单位。

master_auto_renew Boolean true

Master节点是否自动续费,当master_instance_charge_type取值为PrePaid时才生效,可选值为:

  • true:自动续费。
  • false:不自动续费。
master_auto_renew_period Integer 6

自动续费周期,当选择预付费和自动续费时才生效,且为必选值。PeriodUnit=Month时,取值为{“1”, “2”, “3”, “6”, “12”}。

worker_auto_renew Boolean true

是否开启Worker节点自动续费,可选值为:

  • true:自动续费。
  • false:不自动续费。
worker_auto_renew_period Integer 6

自动续费周期,当选择预付费和自动续费时才生效,且为必选值: PeriodUnit=Month时,取值{“1”, “2”, “3”, “6”, “12”}。

master_period_unit String Month

当指定为PrePaid的时候需要指定周期。Month:以月为计时单位。

master_count Integer 3

Master实例个数,可选值3或者5。默认值为3。

runtime Json {"name":"docker","version":"19.03.5"}

容器运行时,一般为docker,包括2个信息:name和version。

worker_data_disk Boolean true

是否挂载数据盘,可选择为:

  • true:表示worker节点挂载数据盘。
  • false:表示worker节点不挂载数据盘。
security_group_id String sg-2ze6ess9kho6fdn9****

指定集群ECS实例所属于的安全组ID。

container_cidr String 172.20.0.0/16

容器网段,不能和VPC网段冲突。当选择系统自动创建VPC时,默认使用172.16.0.0/16网段。当创建flannel网络类型的集群时,改字段为必填。

service_cidr String 172.21.0.0/20

Service网络的网段,不能和VPC网段及Pod网络网段冲突。当选择系统自动创建VPC时,默认使用172.19.0.0/20网段。

addons Array [{"name":"flannel"},{"name":"flexvolume"},{"name":"alicloud-disk-controller"},{"name":"logtail-ds","config":"{"IngressDashboardEnabled":"true"}"},{"name":"nginx-ingress-controller","config":"{"IngressSlbNetworkType":"internet"}"}]

Kubernetes集群的addon插件的组合。

  • addons的参数:
    • name:必填,addon插件的名称。
    • version:可选,取值为空时默认取最新版本。
    • config:可选,取值为空时表示无需配置。
  • 网络插件:包含Flannel和Terway网络插件,二选一。
    • 当选择flannel类型网络时:"container_cidr"为必传参数,且addons值必须包含flannel,例如:[{"name":"flannel"}]。
    • 当选择terway类型网络时:"pod_vswitch_ids"为必传参数,且addons值必须包含terway-eni,例如: [{"name": "terway-eni"}]。
  • 日志服务:可选,如果不开启日志服务时,将无法使用集群审计功能。
  • Ingress:默认开启安装Ingress组件nginx-ingress-controller。
worker_data_disks Array [{"category":"cloud","size":"40","encrypted":"false"}]

Worker数据盘类型、大小等配置的组合。该参数只有在挂载Worker节点数据盘时有效,包含以下参数:

  • category:数据盘类型。取值范围:
    • cloud:普通云盘。
    • cloud_efficiency:高效云盘。
    • cloud_ssd:SSD云盘。
  • size:数据盘大小,单位为GiB。
  • encrypted:是否对数据盘加密,true|false。
taints Array []

用于给节点做污点标记,通常用于Pods的调度策略,与之相对应的概念为。容忍(tolerance),若Pods上有相对应的tolerance标记,则可以容忍节点上的污点,并调度到该节点。

pod_vswitch_ids List<String> []

Pod的虚拟交换机列表,在ENI多网卡模式下,需要传额外的vswitchid给addon。当创建terway网络类型的集群时,改字段为必填。

返回数据

名称 类型 示例值 描述
cluster_id String cb95aa626a47740afbf6aa099b650****

集群实例ID。

request_id String 687C5BAA-D103-4993-884B-C35E4314A1E1

请求ID。

task_id String T-5a54309c80282e39ea00002f

任务ID。系统自动分配,用户查询任务状态。

示例

请求示例

POST /clusters HTTP/1.1
公共请求头
{
    "cluster_type":"Kubernetes",
    "name":"webService",
    "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,
    "node_cidr_mask":"26",
    "proxy_mode":"ipvs",
    "tags":[],
    "addons":[{"name":"flannel"},{"name":"arms-prometheus"},{"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",
    "key_pair":"sian-sshkey",
    "cpu_policy":"none",
    "master_count":3,
    "master_vswitch_ids":["vsw-2zete8s4qocqg0mf6xd76","vsw-2zete8s4qocqg0mf6xd76","vsw-2zete8s4qocqg0mf6xd76"],
    "master_instance_types":["ecs.n4.large","ecs.n4.large","ecs.n4.large"],
    "master_system_disk_category":"cloud_ssd",
    "master_system_disk_size":120,
    "runtime":{"name":"docker","version":"18.09.2"},
    "worker_instance_types":["ecs.i1.xlarge"],
    "num_of_nodes":1,
    "worker_system_disk_category":"cloud_efficiency",
    "worker_system_disk_size":120,
    "vpcid":"vpc-2zecuu62b9zw7a7qnn2tv",
    "worker_vswitch_ids":["vsw-2zete8s4qocqg0mf6xd76"],
    "container_cidr":"172.20.0.0/16",
    "service_cidr":"172.21.0.0/20"
}

请求示例补充说明

如果是terway网络类型的集群,"pod_vswitch_ids"为必填参数,请求入参示例如下:
{
	"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-2zete8s4qocqg0mf6xd76"],
	"key_pair":"sian-sshkey",
	"cpu_policy":"none",
	"master_count":3,
	"master_vswitch_ids":["vsw-2zed90q9inwtuyfzdjd7g","vsw-2zed90q9inwtuyfzdjd7g","vsw-2zed90q9inwtuyfzdjd7g"],
	"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-2zed90q9inwtuyfzdjd7g"],
	"is_enterprise_security_group":true,
	"service_cidr":"172.21.0.0/20"
}

正常返回示例

XML 格式

<cluster_id>cb95aa626a47740afbf6aa099b650****</cluster_id>
<request_id>687C5BAA-D103-4993-884B-C35E4314A1E1</request_id>
<task_id>T-5a54309c80282e39ea00002f</task_id>

JSON 格式

{
    "cluster_id": "cb95aa626a47740afbf6aa099b650****",
    "request_id": "687C5BAA-D103-4993-884B-C35E4314A1E1",
    "task_id": "T-5a54309c80282e39ea00002f"
}

错误码

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