全部產品
Search
文件中心

Container Service for Kubernetes:通過OpenAPI建立ACK Edge叢集

更新時間:Jan 24, 2025

調用CreateCluster建立一個新的ACK Edge叢集

調試

您可以在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",
  "runtime" : {
    "name" : "String",
    "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.30.1-aliyun.1

叢集版本,與Kubernetes社區基準版本保持一致。建議選擇最新版本,若不指定,預設使用最新版本。

目前您可以在ACK控制台建立三種最新版本的叢集。您可以通過API建立其他Kubernetes版本叢集。關於ACK支援的Kubernetes版本,請參見Kubernetes版本概覽及機制

runtime

Array of runtime

{"name": "containerd", "version": "1.6.20"}

容器運行時,支援containerddocker兩種運行時。

包括以下資訊:

  • name:容器運行時名稱。

  • version:容器運行時版本。

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

ACK Edge叢集標識,預設取值:Edge。

logging_type

String

SLS

叢集開啟Log Service,只針對ACK Serverless叢集生效,且取值必須是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網路類型的叢集時,該欄位為必填。

  • 當建立Terway網路類型的叢集時,該欄位不需要填寫。

cloud_monitor_flags

Boolean

true

【該欄位已廢棄】

叢集是否安裝CloudMonitor外掛程式。取值:

  • true:安裝CloudMonitor外掛程式。

  • false:不安裝CloudMonitor外掛程式。

預設值:false

endpoint_public_access

Boolean

true

是否開啟公網API Server。取值:

  • true:表示開放公網API Server。

  • false:表示不會建立公網的API Server,僅建立私網的API Server。

預設值:true

重要

ACK Edge叢集情境,邊緣節點通過公網和雲端管控互動;因此,ACK Edge叢集需要開啟公網訪問。

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": ""}] 。

儲存群組件:可選,支援csi類型:

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

日誌組件:可選。

說明

如果不開啟Log Service,則無法使用叢集審計功能。

  • 使用已有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\"}"}]。

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網路類型叢集生效。

預設值:25

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版介紹

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。

建立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":"25",
    "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"
    ],
    "runtime":{                       // 容器運行時。
        "name":"containerd",              // 運行時名稱。
        "version":"1.6.20"          // 運行時版本。
    },
    "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"
}

錯誤碼

訪問錯誤中心查看更多錯誤碼。