调用CreateCluster创建一个新的Kubernetes边缘托管版集群实例。

调试

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

请求语法

POST /clusters HTTP/1.1
Content-Type:application/json
{
  "name" : "String",
  "cluster_type" : "String",
  "disable_rollback" : Boolean,
  "timeout_mins" : Long,
  "kubernetes_version" : "String",
  "region_id" : "String",
  "key_pair" : "String",
  "login_password" : "String",
  "num_of_nodes" : Long,
  "profile" : "String",
 "logging_type" : "String",
  "snat_entry" : Boolean,
  "vswitch_ids" : [ "String" ],
  "worker_system_disk_category" : "String",
  "worker_system_disk_size" : Long,
  "container_cidr" : "String",
  "cloud_monitor_flags" : Boolean,
  "endpoint_public_access" : Boolean,
  "service_cidr" : "String",
  "addons" : [ {
    "name" : "String",
    "config" : "String",
    "disabled" : Boolean
  } ],
  "tags" : [ {
    "key" : "String",
    "value" : "String"
  } ],
  "vpcid" : "String",
  "worker_data_disks" : [ {
    "category" : "String",
    "size" : Long,
    "encrypted" : "String",
    "auto_snapshot_policy_id" : "String"
  } ],
  "deletion_protection" : Boolean,
  "node_cidr_mask" : "String",
  "worker_instance_types" : [ "String" ],
  "worker_instance_charge_type" : "String",
  "security_group_id" : "String",
  "is_enterprise_security_group" : Boolean,
  "rds_instances" : [ "String" ]
}

请求参数

表 1. 请求Body参数
名称 类型 是否必选 示例值 描述
name String demo-edge-cluster

集群名称。

命名规则:由数字、汉字、英文字符或短划线(-)组成,长度范围1~63个字符,且不能以短划线(-)开头。

cluster_type String ManagedKubernetes 集群类型。取值ManagedKubernetes创建边缘托管版集群。
disable_rollback Boolean true

集群创建失败是否回滚。取值:

  • true:当集群创建失败时,进行回滚操作。
  • false:当集群创建失败时,不进行回滚操作。

默认值:false

timeout_mins Long 60 集群资源栈创建超时时间,以分钟为单位,默认值60分钟。
kubernetes_version String 1.16.9-aliyun.1

集群版本,与Kubernetes社区基线版本保持一致。建议选择最新版本,若不指定,默认使用最新版本。

目前您可以在ACK控制台创建两种最新版本的集群。您可以通过API创建其他Kubernetes版本集群。关于ACK支持的Kubernetes版本,请参见Kubernetes版本发布概览

region_id String cn-beijing 集群所在地域ID。
key_pair String demo-key 密钥对名称,和login_password二选一。
login_password String HelloWorld123 SSH登录密码,和key_pair二选一。密码规则为8~30个字符,且至少同时包含三项(大小写字母、数字和特殊符号)。
num_of_nodes Long 1 Worker节点数。范围是[0,100]。
profile String Edge 边缘集群标识,默认取值:Edge。
logging_type String SLS

集群开启日志服务,只针对ASK集群生效,且取值必须是SLS

snat_entry Boolean true

是否为网络配置SNAT:

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

如果您的应用需要访问公网,建议配置为true

默认值:false

vswitch_ids Array of String vsw-2ze48rkq464rsdts1**** 交换机ID。List长度范围为[1,3]。
worker_system_disk_category String cloud_efficiency

Worker节点系统盘类型,取值:

  • cloud_efficiency:高效云盘。
  • cloud_ssd:SSD云盘。

默认值:cloud_ssd

worker_system_disk_size Long 100

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

取值范围:[40,500]。

该参数的取值必须大于或者等于max{40, ImageSize}。

默认值:120

container_cidr String 172.20.0.0

Pod网络地址段,不能和VPC网段冲突。当选择系统自动创建VPC时,默认使用172.16.0.0/16网段。

说明 当创建Flannel网络类型的集群时,该字段为必填。
cloud_monitor_flags Boolean true

集群是否安装云监控插件。取值:

  • true:安装云监控插件。
  • false:不安装云监控插件。

默认值:false

endpoint_public_access Boolean true

是否开启公网API Server。取值:

  • true:表示开放公网API Server。
  • false:表示不会创建公网的API Server,仅创建私网的API Server。

默认值:true

注意 在边缘集群场景,边缘节点通过公网和云端管控交互;因此,边缘集群需要开启公网访问。
service_cidr String 172.21.0.0

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

addons Array of addon [{"name":"flannel","config":""},{"name":"logtail-ds-docker","config":""},{"name":"alibaba-log-controller","config":"{"IngressDashboardEnabled":"false"}"}]

Kubernetes集群安装的组件列表。组件的结构包括:

  • name:必填,组件名称。
  • config:可选,取值为空时表示无需配置。
  • disabled:可选,是否禁止默认安装。

网络组件:必选,包含Flannel和Terway两种网络类型,创建集群时二选一:

  • Flannel网络:[{"name":"flannel","config":""}]。
  • Terway网络:[{"name": "terway-eniip","config": ""}] 。

存储组件:必选,支持csiflexvolume两种类型:

  • csi:[{"name":"csi-plugin","config": ""},{"name": "csi-provisioner","config": ""}]。
  • flexvolume:[{"name": "flexvolume","config": ""}] 。

日志组件:可选。

说明 如果不开启日志服务时,将无法使用集群审计功能。
  • 使用已有SLS Project:[{"name": "logtail-ds","config": "{\"IngressDashboardEnabled\":\"true\",\"sls_project_name\":\"your_sls_project_name\"}"}] 。
  • 创建新的SLS Project:[{"name": "logtail-ds","config": "{\"IngressDashboardEnabled\":\"true\"}"}] 。

Ingress组件:可选,ACK专有版集群默认安装Ingress组件nginx-ingress-controller。

  • 安装Ingress并且开启公网:[{"name":"nginx-ingress-controller","config":"{\"IngressSlbNetworkType\":\"internet\"}"}] 。
  • 不安装Ingress:[{"name": "nginx-ingress-controller","config": "","disabled": true}] 。

事件中心:可选,默认开启。事件中心提供对Kubernetes事件的存储、查询、告警等能力。Kubernetes事件中心关联的Logstore在90天内免费。关于免费策略的更多信息,请参见创建并使用Kubernetes事件中心

开启事件中心:[{"name":"ack-node-problem-detector","config":"{\"sls_project_name\":\"

your_sls_project_name\"}"}]。

tags Array of tag [{"key": "env", "value": "prod"}] 给集群打tag标签:
  • key:标签名称。
  • value:标签值。
vpcid String vpc-2zeik9h3ahvv2zz95**** 集群使用的专有网络,创建集群时必须为集群提供。
说明 vpc_idvswitch_ids只能同时为空或者同时都设置对应的值。
worker_data_disks Array of data_disk Worker节点数据盘类型、大小等配置的组合。
deletion_protection Boolean true

集群删除保护,防止通过控制台或API误删除集群。取值:

  • true:启用集群删除保护,将不能通过控制台或API删除集群。
  • false:不启用集群删除保护,则能通过控制台或API删除集群。

默认值:false

node_cidr_mask String 25

节点IP数量,通过指定网络的CIDR来确定IP的数量,只对于Flannel网络类型集群生效。

默认值:26

worker_instance_types Array of String ecs.n4.large

Worker节点实例规格,至少要指定一个实例规格。更多信息,请参见实例规格族

说明 实例规格优先级随着在数据中的位置增大依次降低。当无法根据优先级较高的实例规格创建出实例时,会自动选择下一优先级的实例规格来创建实例。
worker_instance_charge_type String PrePaid

Worker节点付费类型,取值:

  • PrePaid:包年包月。
  • PostPaid:按量付费。

默认值:按量付费。

security_group_id String sg-bp1bdue0qc1g7k**** 使用已有安全组创建集群时需要指定安全组ID,和is_enterprise_security_group二选一,集群节点自动加入到此安全组。
is_enterprise_security_group Boolean true

自动创建企业级安全组,当security_group_id为空的时生效。

说明 使用普通安全组时,集群内节点与Terway Pod数量之和不能超过2000。所以创建Terway网络类型集群时,建议使用企业安全组。
  • true:创建并使用企业级安全组。
  • false:不使用企业级安全组。

默认值:true

rds_instances rds_instances rm-2zev748xi27xc**** RDS实例名称。
cluster_spec String ack.pro.small 托管版集群类型,面向托管集群。取值:
  • ack.pro.small:专业托管集群,即:ACK@Edge Pro版集群。
  • ack.standard:标准托管集群,即ACK@Edge标准版集群。

默认值:ack.standard。取值可以为空,为空时则创建边缘标准版集群。

更多信息,请参见ACK@Edge Pro版集群介绍

响应体语法

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。

创建ACK边缘托管版集群示例

请求示例

POST /clusters 
<公共请求头>
{
    "name":"ACK边缘托管版",
    "cluster_type":"ManagedKubernetes",
    "disable_rollback":true,
    "timeout_mins":60,
    "kubernetes_version":"1.14.8-aliyunedge.1",
    "region_id":"cn-zhangjiakou",
    "snat_entry":true,
    "cloud_monitor_flags":true,
    "endpoint_public_access":true,
    "deletion_protection":true,
    "node_cidr_mask":"26",
    "tags":[
        {
            "key":"tag-k",
            "value":"tag-v"
        }
    ],
    "addons":[
        {
            "name":"logtail-ds-docker"
        },
        {
            "name":"alibaba-log-controller",
            "config":"{\"IngressDashboardEnabled\":\"false\"}"
        },
        {
            "name":"flannel"
        },
        {
            "name":"alicloud-monitor-controller"
        }
    ],
    "profile":"Edge",            // 边缘集群标识。
    "logging_type" : "SLS",
    "worker_instance_types":[
        "ecs.hfc6.large"
    ],
    "num_of_nodes":1,
    "worker_system_disk_category":"cloud_ssd",
    "worker_system_disk_size":40,
    "worker_data_disks":[
        {
            "category":"cloud_efficiency",
            "size":"40",
            "encrypted":"false",
            "auto_snapshot_policy_id":"",
        }
    ],
    "worker_instance_charge_type":"PostPaid",
    "vpcid":"vpc-8vb435kr467tnfj42****",
    "container_cidr":"172.20.0.0/16",
    "service_cidr":"172.21.0.0/20",
    "vswitch_ids":[
        "vsw-8vbhdhn461i65p32g****"
    ],
    "login_password":"Hello1234",
    "key_pair": "sin-name",
    "security_group_id":"sg-8vb7grbyvlb10j0i****",
    "is_enterprise_security_group":true,
    "rds_instances": ["rm-xx","rm-xx"]
}

正常返回示例

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"
}

错误码

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