创建一个新的 Managed Kubernetes 集群实例,并创建指定数量的节点。

请求信息

请求行 RequestLine

POST /clusters HTTP/1.1 

特有请求头 RequestHead

无,请参考公共参数

请求体 RequestBody

{
"disable_rollback": "失败是否回滚",
"name": "集群名称",
"timeout_mins": "集群创建超时时间",
"cluster_type": "集群类型,ManagedKubernetes",
"region_id": "地域",
"vpcid": "VPC ID",
"vswitch_ids": "一台或多台虚拟交换机 ID,N 的取值范围为 [1, 5]",
"container_cidr": "容器POD CIDR",
"service_cidr": "服务CIDR",
"cloud_monitor_flags":"是否安装云监控插件",
"login_password": "节点SSH登录密码,和key_pair二选一",
"key_pair":"keypair名称,和login_password 二选一",
"worker_instance_charge_type":"Worker节点付费类型PrePaid|PostPaid",
"worker_period_unit":"包年包月单位,Month,Year,只有在PrePaid下生效",
"worker_period":"包年包月时长,只有在PrePaid下生效",
"worker_auto_renew":"Worker节点自动续费true|false",
"worker_auto_renew_period":"Worker节点续费周期",
"worker_instance_types": "Worker实例规格多实例规格参数 ",
"worker_system_disk_category": "Worker系统盘类型",
"worker_system_disk_size": "Worker节点系统盘大小",
"worker_data_disk":"是否挂载数据盘 true|false",
"worker_data_disk_category":"数据盘类型",
"worker_data_disk_size":"数据盘大小",
"num_of_nodes": "Worker节点数",
"snat_entry": 是否配置SNATEntry,
"endpoint_public_access":"是否公网暴露集群endpoint",
"proxy_mode": "网络模式, 可选值iptables|ipvs",
"addons": "选装addon, 数组格式对象", 
"terway": "日志插件, logtail-ds",
"tags": "给集群打tag标签, 数组格式对象",
"security_group_id": "安全组ID",
"taint": "给节点添加taint, 数组格式对象"
}
表 1. 请求体解释
名称 类型 必须 描述
cluster_type string 集群类型
key_pair string keypair名称。与login_password二选一
login_password string SSH登录密码。密码规则为8 - 30 个字符,且同时包含三项(大、小写字母,数字和特殊符号)。和key_pair 二选一
name string 集群名称,集群名称可以使用大小写英文字母、中文、数字、中划线
num_of_nodes int Worker节点数。范围是[0,300]
region_id string 集群所在地域ID
snat_entry bool 是否为网络配置SNAT。如果是自动创建VPC必须设置为true。如果使用已有VPC则根据是否具备出网能力来设置
vswitch_ids list 交换机ID。List长度范围为 [1, 3]
worker_system_disk_category string Worker节点系统盘类型
worker_system_disk_size int Worker节点系统盘大小
addons list Kubernetes集群的addon插件的组合。
  • addons的参数:
    • name:必填,addon插件的名称
    • version:可选,取值为空时默认取最新版本
    • config:可选,取值为空时表示无需配置
  • 网络插件:包含Flannel和Terway网络插件,二选一
  • 日志服务:可选,如果不开启日志服务时,将无法使用集群审计功能
  • Ingress:默认开启安装Ingress组件。
container_cidr string 容器网段,不能和VPC网段冲突。当选择系统自动创建VPC时,默认使用172.16.0.0/16网段
cloud_monitor_flags bool 是否安装云监控插件
disable_rollback bool 失败是否回滚:
  • true:表示失败不回滚
  • false:表示失败回滚
如果选择失败回滚,则会释放创建过程中所生产的资源,不推荐使用false
proxy_mode string kube-proxy代理模式,支持iptables和IPVS两种模式。 默认为iptables。
endpoint_public_access bool 是否开启公网API Server:
  • true:默认为True,表示开放公网API Server
  • false:若设置为false, 则不会创建公网的API Server,仅创建私网的API Server
security_group_id string 指定集群ECS实例所属于的安全组ID。
service_cidr string 服务网段,不能和VPC网段以及容器网段冲突。当选择系统自动创建VPC时,默认使用172.19.0.0/20网段
tags list 给集群打tag标签:
  • key:标签名称
  • value:标签值
taint list 用于给节点做污点标记,通常用于 Pods 的调度策略。与之相对应的概念为:容忍(tolerance),若 Pods 上有相对应的 tolerance 标记,则可以容忍节点上的污点,并调度到该节点。
timeout_mins int 集群资源栈创建超时时间,以分钟为单位,默认值 60分钟
vpcid string VPC ID,可空。如果不设置,系统会自动创建VPC,系统创建的VPC网段为192.168.0.0/16。 VpcId 和 vswitchid 只能同时为空或者同时都设置相应的值
worker_auto_renew bool 是否开启Worker节点自动续费,可选值为:
  • true:自动续费
  • false:不自动续费
worker_auto_renew_period int 自动续费周期,当worker_instance_charge_type取值为PrePaid时才生效且为必选值:
  • PeriodUnit=Week时,取值:{“1”,“2”,“3”}
  • PeriodUnit=Month时,取值{“1”,“2”,“3”,“6”,“12”}
worker_data_disk string 是否挂载数据盘,可选择:
  • true:表示worker节点挂载数据盘
  • false:表示worker节点不挂载数据盘
worker_data_disk_category int 数据盘类型
worker_data_disk_size string 数据盘大小
worker_instance_charge_type string Worker节点付费类型,可选值为:
  • PrePaid:预付费
  • PostPaid:按量付费
worker_period int 包年包月时长,当worker_instance_charge_type取值为PrePaid时才生效且为必选值,取值范围:
  • PeriodUnit=Week时,Period取值:{“1”,“2”,“3”,“4”}
  • PeriodUnit=Month时,Period取值:{ “1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“12”,“24”,“36”,”48”,”60”}
worker_period_unit string 当指定为PrePaid的时候需要指定周期。可选择为:
  • Week:以周为计时单位
  • Month:以月为计时单位

返回信息

返回行 ResponseLine

HTTP/1.1 202 Accepted

特有返回头 ResponseHead

无,请参考公共参数

返回体 ResponseBody

{
"cluster_id":"string",
"request_id":"string",
"task_id":"string"
}

示例

请求示例

POST /clusters HTTP/1.1
<公共请求头>
{
"name":"test",
"cluster_type":"my-test-Kubernetes-cluster",
"disable_rollback":true,
"timeout_mins":60,
"kubernetes_version":"1.12.6-aliyun.1",
"region_id":"cn-beijing",
"snat_entry":true,
"cloud_monitor_flags":false,
"endpoint_public_access":false,
"node_cidr_mask":"25",
"proxy_mode":"ipvs",
"tags":[],
"addons": [{"name": "flannel"},{"name": "aliyun-log-controller","config": "{\"sls_project_name\":\"k8s-log-c64f6eab6a1764d3dbee3dc2b9e41****\"}"},{"name": "nginx-ingress-controller", "config": "{\"IngressSlbNetworkType\":\"internet\"}"}],
"worker_instance_types":["ecs.hfc5.xlarge"],
"num_of_nodes":3,
"worker_system_disk_category":"cloud_efficiency",
"worker_system_disk_size":120,
"worker_instance_charge_type":"PostPaid",
"vpcid":"vpc-2zegvl5etah5requ09nec",
"container_cidr":"172.20.0.0/16",
"service_cidr":"172.21.0.0/20",
"vswitch_ids":["vsw-2ze48rkq464rsdts1****"],
"login_password":"test@19****",
"taint":[{"key": "special", "value": "true", "effect": "NoSchedule"}]
}

返回示例

HTTP/1.1 202 Accepted
<公共响应头>
{
    "cluster_id": "cb95aa626a47740afbf6aa099b65****",
    "request_id": "687C5BAA-D103-4993-884B-C35E4314A1E1",
    "task_id": "T-5a54309c80282e39ea00002f"
}