在ACK專有叢集中,您需要建立至少3個Master節點以保證高可用性,以及若干Worker節點,以對叢集基礎設施進行更細粒度的控制,但需要自行規劃、維護、升級叢集。本文介紹如何通過控制台、API、Terraform、SDK以及CLI等方式建立ACK專有叢集。
Container Service for Kubernetes已於2024年08月21日起停止ACK專有叢集的建立。推薦您在生產環境中使用具有更高可靠性、安全性和調度效率的ACK託管叢集Pro版。
如需建立ACK託管叢集Pro版,請參見建立ACK託管叢集。
如需將ACK專有叢集遷移至ACK託管叢集Pro版,請參見熱遷移ACK專有叢集至ACK託管叢集Pro版。
準備工作
建立叢集前,請確保您已經開通Container ServiceACK、為您的阿里雲帳號或RAM帳號授予了ACK系統服務角色(ACK需要這些許可權來調用相關服務或執行叢集操作),並且開通了相關雲產品(例如VPC、負載平衡、NAT Gateway等)。具體操作,請參見快速建立ACK託管叢集。
建立叢集過程中涉及負載平衡CLB等按量資源的購買,請確保您的賬戶餘額充足,避免因為欠費導致停機。
建立叢集
ACK支援通過控制台、API、SDK、Terraform以及CLI方式建立叢集。
控制台
步驟一:登入Container Service管理主控台
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在頁面左側頂部,選擇目標資源所在的資源群組和地區。

在叢集列表頁面,單擊建立叢集。
步驟二:配置叢集
單擊ACK 專有叢集頁簽,完成叢集基礎資訊配置、網路設定和進階選項配置。
基礎資訊配置
配置項 | 描述 |
叢集名稱 | 自訂叢集名稱。 |
地區 | 叢集資源(ECS執行個體、雲端硬碟等)所處地區。地區與使用者和資源部署地區的距離越近,網路時延越低。 |
Kubernetes 版本 | 叢集的Kubernetes版本,推薦使用最新版本。請參見ACK版本支援概覽瞭解ACK的版本支援情況。 僅支援建立最近的三個Kubernetes次要版本的叢集。 |
網路設定
配置項 | 描述 |
IPv6雙棧 | |
專用網路 | 叢集的Virtual Private Cloud。為保障高可用,建議選擇2個及以上不同可用性區域。
雲資源及計費說明: |
為專用網路配置 SNAT | 使用共用VPC時請勿勾選 節點需訪問公網(拉取公網鏡像或訪問外部服務)時勾選此項,ACK將自動設定NAT Gateway和SNAT規則,確保叢集內資源可以訪問公網。
若不勾選,也可在建立叢集後自行配置NAT Gateway和SNAT規則,請參見公網 NAT Gateway。 雲資源及計費說明: |
交換器 | 在列表中根據可用性區域選擇已有vSwitch交換器,或單擊建立虛擬交換器建立新的vSwitch。叢集控制面與預設節點池將使用此處指定的vSwitch。推薦選擇多個不同可用性區域的vSwitch,更好地保障叢集高可用。 |
安全性群組 | |
API server 訪問 | ACK自動建立一個隨用隨付的私網CLB執行個體作為API Server的內網串連端點。請勿刪除該CLB執行個體,刪除後API Server將無法訪問且無法恢複。 若需使用已有CLB執行個體,請提交工單申請。選擇使用已有的專用網路後,可選擇負載平衡來源為使用已有。 可選開啟使用 EIP 暴露 API Server。
如需後續啟用,請參見實現從公網訪問API Server。 自2024年12月01日起,建立CLB執行個體將新增收取執行個體費,請參見傳統型負載平衡CLB計費項目調整公告。 |
網路外掛程式 | 網路外掛程式是叢集中Pod之間網路通訊的基礎。 關於兩者的詳細對比,請參見容器網路外掛程式Terway與Flannel對比。
|
容器網段 | 僅Flannel需要配置 為Pod分配IP地址的位址集區。此網段不能與VPC及VPC內已有ACK叢集使用的網段重疊,且不能與服務網段重疊。 |
節點 Pod 數量 | 僅Flannel需要配置 定義單個節點上可容納的最大Pod數量。 |
Pod 交換器 | 僅在選擇使用Terway外掛程式時需要配置。 為Pod分配IP的虛擬交換器。每個Pod虛擬交換器分別對應一個Worker節點的虛擬交換器,Pod虛擬交換器和Worker節點的虛擬交換器的可用性區域需保持一致。 重要 Pod虛擬交換器的網段掩碼建議不超過19,最大不超過25,否則叢集網路可分配的Pod IP地址非常有限,會影響叢集的正常使用。 |
服務網段 | 即Service CIDR,為叢集內部Service分配IP地址的位址集區。此網段不能與VPC及VPC內已有叢集使用的網段重複,且不能與容器網段重複。 |
IPv6 服務網段 | 需同時開啟IPv6雙棧 為Service網段配置IPv6位址區段。需使用ULA地址( |
叢集進階配置
展開進階選項(選填),配置叢集服務轉寄模式。
配置項 | 描述 |
服務轉寄模式 | 選擇kube-proxy代理模式,即叢集Service如何將請求分發至後端Pod。
|
展開進階選項(選填),配置叢集刪除保護、資源群組等資訊。
展開查看進階選項
配置項 | 描述 |
叢集刪除保護 | 推薦開啟,防止通過控制台或OpenAPI誤刪除叢集。 |
資源群組 | 將叢集歸屬於選擇的資源群組,便於許可權管理和成本分攤。 一個資源只能歸屬於一個資源群組。 |
標籤 | 為叢集綁定索引值對標籤,作為雲資源的標識。 |
時區 | 叢集使用的時區。預設為瀏覽器配置的時區。 |
叢集本地區名 | 叢集內Service使用的頂級網域名稱(標準尾碼)。預設為 例如,名為my-service的Service位於default命名空間中,其DNS網域名稱為 |
自訂認證 SAN | API Server認證中SAN(Subject Alternative Name)欄位預設包括叢集本地區名、內網IP、公網EIP等欄位。如需通過Proxy 伺服器、自訂網域名或特殊網路環境訪問叢集,需將這些訪問地址添加到SAN欄位中。 如需後續啟用,請參見自訂叢集API Server認證SAN。 |
服務賬戶令牌卷投影 | 傳統模式下Pod的身份憑證永久有效且多個Pod共用,存在安全風險。啟用後,每個Pod將獲得專屬的臨時身份憑證,且支援配置自動到期和許可權限制。 如需後續啟用,請參見使用ServiceAccount Token卷投影。 |
節點服務連接埠範圍 | 建立NodePort類型的Service時,可用的連接埠範圍。 |
叢集 CA | 啟用後,可以將CA認證添加到叢集中,加強服務端和用戶端之間資訊互動的安全性。 |
步驟三:配置Master節點
單擊下一步:Master 配置,完成Master節點配置。
配置項 | 描述 |
Master執行個體數量 | 指定可用性區域內部署Master節點的數量。 |
付費類型 | 支援隨用隨付和訂用帳戶兩種付費類型。選擇訂用帳戶時,需設定購買時間長度和是否啟用自動續約。 |
執行個體規格 | 選擇Master節點的執行個體規格類型系列。您可以參見選擇Master節點規格擷取配置建議。 |
系統硬碟 | 根據業務需求選擇雲端硬碟類型,包括ESSD AutoPL、ESSD雲端硬碟、ESSD Entry以及上一代雲端硬碟(SSD雲端硬碟和高效雲端硬碟),配置容量和IOPS等。 可用系統硬碟類型取決於所選的執行個體規格類型系列。未展示的雲端硬碟類型即為不支援使用。 ESSD雲端硬碟自訂效能和加密能力
支援選擇配置更多系統硬碟類型,配置與系統硬碟不同的磁碟類型,提高擴容成功率。建立節點時,ACK將根據指定的磁碟類型順序,選擇第一個匹配的類型。 雲資源及計費說明: |
部署集 | 通過ECS控制台建立部署集後,為節點池指定部署集,使得節點池彈出的節點可分散部署在不同的物理伺服器上,提升高可用性。 部署集預設支援的節點上限為 後續如需啟用,請參見節點池部署集最佳實務。 |
進階選項
配置項 | 描述 |
執行個體中繼資料訪問模式 | 僅支援1.28及以上版本的叢集 配置 ECS 執行個體的中繼資料訪問模式,在ECS執行個體內部通過訪問中繼資料服務(Metadata Service)擷取ECS執行個體中繼資料,包括執行個體ID、VPC資訊、網卡資訊等執行個體屬性資訊,詳情請參見執行個體中繼資料。
|
步驟四:配置節點池
單擊下一步:節點池配置,完成節點池基礎選項配置和進階選項配置。
節點池基礎配置
配置項 | 描述 |
節點池名稱 | 自訂節點池名稱。 |
容器運行時 | 如何選型,請參見containerd、安全沙箱、Docker運行時的對比。
|
執行個體和鏡像配置
配置項 | 描述 | |
付費類型 | 節點池擴容節點時預設採用的付費類型。
為保證節點池統一,不支援將隨用隨付、訂用帳戶節點池修改為搶佔式執行個體節點池,反之亦然。 | |
執行個體相關的配置項 | 節點池擴容時,會從選定的ECS執行個體規格類型系列中分配,選擇更多可用性區域下的更多執行個體規格可提升節點擴容成功率,避免規格不可用或庫存不足。具體擴容的執行個體規格由擴縮容策略決定。
可參考控制台的彈性強度建議來配置,或在節點池建立後查看節點池彈性強度。 關於ACK不支援的執行個體規格及節點配置建議,請參見ECS執行個體規格配置建議。 | |
作業系統 | 雲市場鏡像處於灰階發布中。
後續如需升級或更換作業系統,請參見更換作業系統。 | |
安全強化 | 建立節點時,ACK會應用選擇的安全基準策略。
| |
登入方式 |
| |
儲存配置
配置項 | 描述 | |
系統硬碟 | 根據業務需求選擇雲端硬碟類型,包括ESSD AutoPL、ESSD雲端硬碟、ESSD Entry以及上一代雲端硬碟(SSD雲端硬碟和高效雲端硬碟),配置容量和IOPS等。 可用系統硬碟類型取決於所選的執行個體規格類型系列。未展示的雲端硬碟類型即為不支援使用。 ESSD雲端硬碟自訂效能和加密能力
支援選擇配置更多系統硬碟類型,配置與系統硬碟不同的磁碟類型,提高擴容成功率。建立節點時,ACK將根據指定的磁碟類型順序,選擇第一個匹配的類型。 雲資源及計費說明: | |
資料盤 | 根據業務需求選擇雲端硬碟類型,包括ESSD AutoPL、ESSD雲端硬碟、ESSD Entry以及上一代雲端硬碟(SSD雲端硬碟和高效雲端硬碟),配置容量和IOPS等。 可用資料盤類型取決於所選的執行個體規格類型系列。未展示的雲端硬碟類型即為不支援使用。 ESSD AutoPL支援
ESSD雲端硬碟支援 支援自訂效能層級。雲端硬碟容量越大,可選擇的效能層級越高(460 GiB容量以上可選PL2,1260 GiB以上可選PL3),詳情請參見ESSD雲端硬碟。
您可以選擇配置更多資料盤類型,配置與資料盤不同的磁碟類型,提高擴容成功率。建立節點時,ACK將根據指定的磁碟類型順序,選擇第一個匹配的類型。 一台ECS執行個體最多可掛載64塊資料盤,不同執行個體規格支援掛載的最多雲端硬碟數量不同。對於執行個體規格支援掛載的雲端硬碟數量上限,可以通過DescribeInstanceTypes介面查詢(DiskQuantity)。 雲資源及計費說明: | |
執行個體數量配置
配置項 | 描述 |
期望節點數 | 節點池應該維持的總節點數量。建議至少配置2個節點,以確保叢集組件正常運行。您可以通過調整期望節點數,達到擴容或縮容節點池的目的,請參見擴縮容節點池。 如無需建立節點,可填寫為0,後續再手動增加。 |
節點池進階配置
展開進階選項(選填),配置節點擴縮容策略。
配置項 | 描述 |
擴縮容策略 | 配置節點池在節點擴縮容時如何選擇執行個體。
|
使用按量執行個體補充搶佔式容量 | 需同時選擇付費類型為搶佔式執行個體。 開啟後,如果因價格或庫存等原因無法建立足夠的搶佔式執行個體,ACK將自動嘗試建立按量執行個體作為補充。 雲資源及計費說明: |
開啟搶佔式執行個體補償 | 需同時選擇付費類型為搶佔式執行個體。 開啟後,當收到搶佔式執行個體將被回收的系統訊息時(即搶佔式執行個體被回收前5分鐘),ACK將嘗試擴容新執行個體進行補償。
搶佔式執行個體的主動釋放可能導致業務異常,為提高補償成功率,建議同時開啟使用按量執行個體補充搶佔式容量。 雲資源及計費說明: |
展開進階選項(選填),配置ECS標籤、汙點等資訊。
置項 | 描述 |
ECS 標籤 | 為ACK自動建立的ECS執行個體添加標籤,作為雲資源標識。每台ECS最多可綁定20個標籤。如需提高上限,請到配額平台提交申請。由於ACK和ESS會佔用部分標籤,您最多可為執行個體指定17個自訂標籤。 展開查看標籤佔用說明
|
汙點 (Taints) | 為節點添加索引值對汙點。有效汙點鍵包含首碼(可選)和名稱。如果有首碼,用正斜線(/)分隔。 展開查看詳細說明
|
節點標籤(Labels) | 為節點添加索引值對標籤。有效Key包含首碼(可選)和名稱。如有首碼,首碼和名稱之間用正斜線(/)分隔。 展開查看詳細說明
|
設定為不可調度 | 新添加的節點註冊到叢集時預設會被設定為不可調度。需在節點列表手動調整節點調度狀態。 本配置僅對1.34以下版本叢集生效,詳情請參見Kubernetes 1.34版本說明。 |
CPU Policy | 指定kubelet節點的CPU管理原則。 推薦使用自訂節點池kubelet配置。 |
自訂節點名稱 | 節點名稱由首碼、節點IP地址及尾碼三部分組成。開啟後,節點名稱、ECS執行個體名稱、ECS執行個體Hostname也將發生變化。 例如,節點IP地址為192.XX.YY.55,指定首碼為aliyun.com,尾碼為test。
|
執行個體中繼資料訪問模式 | 僅支援1.28及以上版本的叢集 配置 ECS 執行個體的中繼資料訪問模式,在ECS執行個體內部通過訪問中繼資料服務(Metadata Service)擷取ECS執行個體中繼資料,包括執行個體ID、VPC資訊、網卡資訊等執行個體屬性資訊,詳情請參見執行個體中繼資料。
|
執行個體預自訂資料 | 節點加入叢集前,將運行指定的執行個體預自訂User-Data指令碼。 例如,指定執行個體預自訂資料為 節點初始化時此配置的生效邏輯,請參見節點初始化流程介紹。 |
執行個體自訂資料 | 節點加入叢集後,將運行指定的執行個體自訂User-Data指令碼。 例如,指定執行個體自訂資料為 節點初始化時此配置的生效邏輯,請參見節點初始化流程介紹。 建立叢集或擴容節點成功不代表執行個體自訂指令碼執行成功。可登入節點執行 |
CloudMonitor外掛程式 | 可在CloudMonitor控制台查看並監控節點和應用運行狀態。 本配置僅對節點池中新增的節點生效,不對節點池存量節點生效。 已有節點如需啟用,請通過CloudMonitor控制台安裝。 雲資源及計費說明: |
公網 IP | |
自訂安全性群組 | 為節點池指定普通安全性群組或企業級安全性群組。ACK預設不會為安全性群組配置額外的訪問規則。需自行管理安全性群組規則,避免訪問異常,請參見配置叢集安全性群組。 每台ECS執行個體支援加入的安全性群組存在上限,請確保安全性群組配額充足。 |
RDS 白名單 | 將節點IP添加至RDS執行個體的白名單。 |
步驟五:配置組件
單擊下一步:組件配置,完成組件配置。
配置項 | 描述 | ||||||
Ingress | Ingress管理著叢集外部存取叢集內部服務的方式。如需將叢集內應用或API暴露給公網訪問時,則需安裝。 目前提供三種執行個體作為叢集 Ingress 入口網關。
關於三者的詳細對比,請參見Ingress管理。 | ||||||
服務發現 | 安裝NodeLocal DNSCache,在節點上緩衝DNS解析結果,以提升網域名稱解析效能和穩定性,加速叢集內部的服務間調用。 | ||||||
儲存外掛程式 | 基於CSI儲存外掛程式實現資料的持久化儲存,可使用阿里雲雲端硬碟、NAS、OSS、CPFS等儲存卷資源。 選擇預設建立NAS和CNFS後,ACK會預設建立通用型NAS檔案系統並使用容器網路檔案系統CNFS進行管理。 雲資源及計費說明: | ||||||
容器監控 | 您可以使用阿里雲Prometheus查看叢集預先配置的監控大盤和監控效能指標。更多資訊,請參見阿里雲Prometheus監控。 | ||||||
Log Service | 使用已有SLS Project或建立一個SLS Project,用於收集叢集應用日誌。 同時將啟用叢集API Server審計功能,收集對Kubernetes API的請求以及請求結果。 如需後續啟用,請參見採集ACK叢集容器日誌、使用叢集API Server審計功能。
雲資源及計費說明: | ||||||
叢集巡檢 | 啟用智能營運的叢集巡檢功能,定期掃描叢集內配額、資源水位、組件版本等,確保叢集配置符合最佳實務,並提前暴露潛在風險。 |
API
調試入口
請求樣本
建立一個ACK專有叢集的請求樣本如下,完整的參數說明請參見CreateCluster - 建立叢集。
POST /clusters
<公用要求標頭>
{
"cluster_type": "Kubernetes", //指定叢集的類型為ACK專有叢集。#required
"name": "ACK專有叢集",
"region_id": "cn-hongkong", //叢集所屬地區為香港地區。#required
"kubernetes_version": "1.32.1-aliyun.1", //建立的叢集版本,建議選擇最新版本。
"snat_entry": true, // 為專用網路配置SNAT規則,以開啟叢集公網訪問。
"endpoint_public_access": false, //叢集不開啟API server公網訪問。
"cloud_monitor_flags": false, //叢集不安裝CloudMonitor組件。
"deletion_protection": false, //未開啟叢集刪除保護。
"proxy_mode": "ipvs", //選擇高效能的kube-proxy代理模式IPVS。
"timezone": "Asia/Shanghai",
"tags": [],
"addons": [ //安裝的叢集組件。
{
"name": "terway-eniip", //叢集的網路類型為Terway方式。叢集建立後不可修改。
"config": "{\"IPVlan\":\"false\",\"NetworkPolicy\":\"false\",\"ENITrunking\":\"false\"}"
},
{
"name": "csi-plugin"
},
{
"name": "csi-provisioner"
},
{
"name": "storage-operator",
"config": "{\"CnfsOssEnable\":\"false\",\"CnfsNasEnable\":\"false\"}"
},
{
"name": "nginx-ingress-controller",
"disabled": true
}
],
"node_port_range": "30000-32767",
"pod_vswitch_ids": [ //Terway網路類型的叢集,需要指定Pod所在的虛擬交換,因為Pod獨佔一個機器IP。
"vsw-j6cwz95vspl56gl******",
"vsw-j6c1tgut51ude2v******"
],
"login_password": "******",
"charge_type": "PostPaid",
"master_instance_charge_type": "PostPaid",
"cpu_policy": "none",
"service_account_issuer": "https://kubernetes.default.svc",
"api_audiences": "https://kubernetes.default.svc",
"master_count": 3, //設定Master節點數量為3。
"master_vswitch_ids": [ //設定Master節點的交換器列表。
"vsw-j6cwz95vspl56gl******",
"vsw-j6c1tgut51ude2v******",
"vsw-j6c1tgut51ude2v******"
],
"master_instance_types": [ //設定Master節點的執行個體規格。
"ecs.u1-c1m2.xlarge",
"ecs.c7.xlarge",
"ecs.c7.xlarge"
],
"master_system_disk_category": "cloud_essd", //Master節點系統硬碟選擇ESSD雲端硬碟。
"master_system_disk_size": 120, //設定系統硬碟大小為120 GiB。
"master_system_disk_performance_level": "PL1", //系統硬碟單盤IOPS效能上限為5萬。
"vpcid": "vpc-j6c6njo385se80n******", //叢集的專用網路ID須在網路規劃時確定,建立後不可修改。#required
"worker_vswitch_ids": [
"vsw-j6cwz95vspl56gl******",
"vsw-j6c1tgut51ude2v******"
],
"is_enterprise_security_group": true,
"ip_stack": "ipv4",
"service_cidr": "172.16.xx.xx/16",
"nodepools": [
{
"nodepool_info": {
"name": "default-nodepool"
},
"scaling_group": {
"system_disk_category": "cloud_essd",
"system_disk_size": 120,
"system_disk_performance_level": "PL0",
"system_disk_encrypted": false,
"data_disks": [
{
"category": "cloud_auto",
"size": 200,
"encrypted": "false",
"bursting_enabled": false
}
],
"tags": [],
"soc_enabled": false,
"security_hardening_os": false,
"vswitch_ids": [
"vsw-j6cwz95vspl56gl******",
"vsw-j6c1tgut51ude2v******"
],
"instance_types": [
"ecs.g6.xlarge"
],
"instance_patterns": [],
"login_password": "******",
"instance_charge_type": "PostPaid",
"security_group_ids": [],
"platform": "AliyunLinux",
"image_id": "aliyun_3_x64_20G_alibase_20241218.vhd",
"image_type": "AliyunLinux3",
"desired_size": 3, //建立一個期望節點數為3的節點池。
"multi_az_policy": "BALANCE"
},
"kubernetes_config": {
"cpu_policy": "none",
"cms_enabled": false,
"unschedulable": false,
"runtime": "containerd", //設定容器運行時為containerd 1.6.36。叢集建立後不可修改。
"runtime_version": "1.6.36"
}
}
]
}重點參數說明
在調用CreateCluster介面建立ACK專有叢集時,您需要重點關注如下參數的差異化配置:
參數 | 描述 | 配置樣本 |
cluster_type | 叢集類型。建立ACK專有叢集時,該參數必須配置為 | "cluster_type": "Kubernetes" |
Terraform
具體操作,請參見通過Terraform建立ACK專有叢集。
SDK
具體操作,請參見Java SDK調用樣本。
CLI
具體操作,請參見通過CLI建立ACK叢集。
相關操作
查看叢集基本資料
在叢集列表頁面的操作列,單擊詳情,然後單擊基本資料和串連資訊頁簽,查看叢集的基本資料和串連資訊。其中:
API Server 公網端點:Kubernetes的API Server對公網提供服務的地址和連接埠,可以通過此服務在使用者終端使用kubectl等工具管理叢集。
綁定公網IP和解除綁定公網IP功能:
綁定公網IP:您可以選擇在已有EIP列表中綁定EIP或者建立EIP。
綁定公網IP操作會導致API Server短暫重啟,請避免在此期間操作叢集。
解除綁定公網IP:解除綁定公網IP後您將無法通過公網訪問API Server。
解除綁定公網IP操作會導致API Server短暫重啟,請避免在此期間操作叢集。
API Server 內網端點:Kubernetes的API Server對叢集內部提供服務的地址和連接埠,此IP為負載平衡的地址。
查看叢集日誌資訊
您可以單擊操作列的更多>營運管理>查看日誌,進入日誌中心頁面查看叢集的日誌資訊。
查看叢集節點資訊
您可以擷取叢集KubeConfig並通過kubectl工具串連叢集,執行
kubectl get node查看叢集的節點資訊。
配額與限制
如叢集規模較大或帳號資源較多,請遵循使用ACK叢集時涉及的配額與限制。詳細資料,請參見配額與限制。
使用限制:包括ACK配置限制(例如帳號餘額等)和單叢集容量限制(單叢集內不同Kubernetes資源的最大容量)。
配額限制與提升方式:ACK叢集配額限制和ACK依賴雲產品(例如ECS、VPC等)的配額限制。如需提升配額,請參見文檔擷取提升方式。