使用阿里云OpenAPI创建ACK Serverless集群

调用CreateCluster创建一个新的ACK Serverless集群实例。

请求语法

POST /clusters HTTP/1.1
Content-Type:application/json
{
  "cluster_type" : "String",
  "profile": "String",
  "cluster_spec" : "String",
  "name" : "String",
  "kubernetes_version" : "String",
  "private_zone" : Boolean,
  "region_id" : "String",
  "endpoint_public_access" : Boolean,
  "service_discovery_types" : [ "String" ],
  "zoneid" : "String",
  "logging_type" : "String",
  "tags" : [ {
    "key" : "String",
    "value" : "String"
  } ],
  "deletion_protection" : Boolean,
  "service_cidr" : "String",
  "timezone" : "String",
  "addons" : [ {
    "name" : "String",
    "config" : "String",
    "disabled" : Boolean
  } ],
  "snat_entry" : Boolean,
  "vpcid" : "String",
  "vswitch_ids" : [ "String" ],
  "security_group_id" : "String"
}

请求参数

表 1. 请求Body参数

名称

类型

是否必选

示例值

描述

cluster_type

String

ManagedKubernetes

集群类型。可选值为ManagedKubernetes,同时profile配置为Serverless,表示创建ACK Serverless集群

profile

String

Serverless

集群标识。参数cluster_type取值为ManagedKubernetes,同时该参数配置为Serverless,表示创建ACK Serverless集群

cluster_spec

String

ack.pro.small

ACK Serverless集群类型。取值:

  • ack.pro.smallACK Serverless集群Pro版

  • ack.standardACK Serverless集群基础版

默认值:ack.standard。取值可以为空,为空时则创建ACK Serverless集群基础版

更多信息,请参见ACK Serverless Pro版集群概述

name

String

cluster-demo

集群名称。

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

kubernetes_version

String

1.30.1-aliyun.1

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

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

private_zone

Boolean

false

是否开启ACK Serverless集群的PrivateZone用于服务发现。取值:

  • true:开启PrivateZone用于服务发现。

  • false:不开启PrivateZone用于服务发现。

更多信息,请参见ACK Serverless集群基于云解析PrivateZone的服务发现

region_id

String

cn-beijing

集群所在地域ID。

endpoint_public_access

Boolean

true

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

  • true:表示开放公网API Server。

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

默认值:true

service_discovery_types

Array of String

PrivateZone

集群内服务发现类型,用于指定服务发现方式。

  • CoreDNS:使用Kubernetes原生标准服务发现组件CoreDNS,需要在集群部署一组容器用于DNS解析。默认采用两个0.25 Core 512 MiB规格的ECI实例。

  • PrivateZone:使用阿里云PrivateZone产品提供服务发现能力,需要开启PrivateZone服务。

默认值:不开启。

zoneid

String

cn-beiji****

集群所属地域的可用区ID。

重要

如果不指定vpcidvswitch_ids的情况下,必须指定zoneid

logging_type

String

SLS

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

tags

Array of tag

[{"key": "env", "value": "prod"}]

给集群打tag标签。包含以下信息:

  • key:标签名称。

  • value:标签值。

deletion_protection

Boolean

true

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

  • true:集群开启集群删除保护。

  • false:集群不开启集群删除保护。

默认值:false

service_cidr

String

172.21.0.0/20

Service网络地址段,可选范围:10.0.0.0/16-24,172.16-31.0.0/16-24,192.168.0.0/16-24

不能与VPC网段10.1.0.0/21及VPC内已有Kubernetes集群使用的网段重复,创建成功后无法修改。

默认使用172.19.0.0/20网段。

timezone

String

Asia/Shanghai

集群使用的时区。更多信息,请参见支持时区

addons

Array of addon

[{"name":"logtail-ds","config":"{\"sls_project_name\":\"your_sls_project_name\"}"}]

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

  • name:必填,组件名称。

  • config:可选,取值为空时表示无需配置。

  • disabled:可选,是否禁止默认安装。

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

  • Flannel网络:[{"name":"flannel","config":""}]。

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

存储组件:可选,仅支持csi类型:

csi:[{"name":"csi-plugin","config": ""},{"name": "csi-provisioner","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天内免费。关于免费策略的更多信息,请参见创建并使用K8s事件中心

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

your_sls_project_name\"}"}]。

snat_entry

Boolean

true

创建ACK Serverless集群时,是否在VPC中创建NAT网关并配置SNAT规则。取值:

  • true:将为您创建NAT网关并自动配置SNAT规则,集群VPC将具备公网访问能力。

  • false:不为您创建NAT网关及SNAT规则。集群VPC将不具备公网访问能力。

默认值:false

vpcid

String

vpc-2zeik9h3ahvv2zz95****

集群使用的专有网络,创建集群时必须为集群提供。

说明

vpcidvswitch_ids只能同时设置对应的值。

vswitch_ids

Array of String

["vsw-2ze97jwri7cei0mpw****"]

交换机ID。List长度范围为[1,3]。

security_group_id

String

sg-bp1bdue0qc1g7k****

使用已有安全组创建集群时需要指定安全组ID,和is_enterprise_security_group二选一,集群节点会自动加入到此安全组。

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 使用自动创建VPC方式创建ACK Serverless集群基础版

请求示例

POST /clusters HTTP/1.1
<公共请求头>
{
    "cluster_type":"ManagedKubernetes",
    "profile":"Serverless",
    "cluster_spec":"ack.standard",  
    "name":"test-ask",
    "region_id":"cn-hangzhou",
    "endpoint_public_access":false,
    "logging_type" : "SLS",
    "private_zone":false,
    "snat_entry":true,
    "tags":[
        {
            "key":"k-aa",
            "value":"v-aa"
        }
    ],
    "deletion_protection":false,
    "addons":[
        {
            "name":"logtail-ds"
        }
    ],
    "zoneid":"cn-hangzhou-i"
}

返回示例

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

示例2 使用已有VPC方式创建ACK Serverless集群Pro版

请求示例

POST /clusters HTTP/1.1
<公共请求头>
{
    "cluster_type":"ManagedKubernetes",
    "profile":"Serverless",
    "cluster_spec":"ack.pro.small", 
    "name":"ask-cluster",
    "region_id":"cn-shenzhen",
    "endpoint_public_access":true,
    "logging_type": "SLS",
    "private_zone":true,
    "tags":[
        {
            "key":"tier",
            "value":"frontend"
        }
    ],
    "deletion_protection":true,
    "addons":[
        {
            "name":"logtail-ds"
        }
    ],
    "vpcid":"vpc-wz984yvbd6lck22z3****",
    "vswitch_ids":[
        "vsw-wz9uwxhawmtzg7u9h****"
    ],
    "security_group_id":"sg-wz9b86l4s7nthi1k****"
}

返回示例

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

错误码

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

开发者资源

  • SDK

    阿里云为您提供多种语言的SDK,帮助您快速通过API集成阿里云的产品和服务,推荐您使用SDK调用API,以免除您手动签名验证,详情请参见SDK参考文档链接。

  • OpenAPI Explorer

    快速检索,可视化调试API,在线命令行工具,同步动态生成可执行的SDK代码示例。

  • 阿里云CLI

    阿里云资产管理和配置工具,可通过命令方式同时管理多个阿里云产品和服务,简单快捷,是您上云好帮手。