全部產品
Search
文件中心

Container Service for Kubernetes:建立ACK專有叢集

更新時間:Oct 21, 2025

ACK專有叢集中,您需要建立至少3個Master節點以保證高可用性,以及若干Worker節點,以對叢集基礎設施進行更細粒度的控制,但需要自行規劃、維護、升級叢集。本文介紹如何通過控制台、API、Terraform、SDK以及CLI等方式建立ACK專有叢集

重要

Container Service for Kubernetes已於2024年08月21日起停止ACK專有叢集的建立。推薦您在生產環境中使用具有更高可靠性、安全性和調度效率的ACK託管叢集Pro版

準備工作

建立叢集前,請確保您已經開通Container ServiceACK、為您的阿里雲帳號或RAM帳號授予了ACK系統服務角色(ACK需要這些許可權來調用相關服務或執行叢集操作),並且開通了相關雲產品(例如VPC、負載平衡、NAT Gateway等)。具體操作,請參見快速建立ACK託管叢集

說明

建立叢集過程中涉及負載平衡CLB等按量資源的購買,請確保您的賬戶餘額充足,避免因為欠費導致停機。

建立叢集

ACK支援通過控制台、API、SDK、Terraform以及CLI方式建立叢集。

控制台

步驟一:登入Container Service管理主控台

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 在頁面左側頂部,選擇目標資源所在的資源群組和地區。image

  3. 叢集列表頁面,單擊建立叢集

步驟二:配置叢集

單擊ACK 專有叢集頁簽,完成叢集基礎資訊配置、網路設定和進階選項配置。

基礎資訊配置

配置項

描述

叢集名稱

自訂叢集名稱。

地區

叢集資源(ECS執行個體、雲端硬碟等)所處地區。地區與使用者和資源部署地區的距離越近,網路時延越低。

Kubernetes 版本

叢集的Kubernetes版本,推薦使用最新版本。請參見ACK版本支援概覽瞭解ACK的版本支援情況。

僅支援建立最近的三個Kubernetes次要版本的叢集。
網路設定

配置項

描述

IPv6雙棧

僅支援1.22及以上版本,僅支援Terway,不支援與eRDMA功能同時使用

叢集同時支援IPv4和IPv6協議,但Worker節點與控制面間的通訊仍使用IPv4地址。需確保:

  • 叢集VPC支援IPv6雙棧。

  • 使用Terway共用ENI模式時,節點的執行個體規格需支援IPv6且支援的IPv4/IPv6地址數量相同。

專用網路

叢集的Virtual Private Cloud。為保障高可用,建議選擇2個及以上不同可用性區域。

  • 自動建立:ACK在已選擇的可用性區域下建立對應vSwitch。

  • 使用已有:選擇vSwitch,指定叢集的可用性區域,可建立或使用已有vSwitch。

雲資源及計費說明:imageVPC

為專用網路配置 SNAT

使用共用VPC時請勿勾選

節點需訪問公網(拉取公網鏡像或訪問外部服務)時勾選此項,ACK將自動設定NAT Gateway和SNAT規則,確保叢集內資源可以訪問公網。

  • VPC中沒有NAT Gateway:ACK自動建立NAT Gateway,新購EIP,並為叢集使用的vSwitch配置SNAT規則。

  • VPC已有NAT Gateway:ACK判斷是否需要額外新購EIP以及配置SNAT規則。當無可用EIP時,將自動新購EIP;當不存在VPC層級的SNAT規則時,將為叢集使用的vSwitch配置SNAT規則。

若不勾選,也可在建立叢集後自行配置NAT Gateway和SNAT規則,請參見公網 NAT Gateway

雲資源及計費說明:imageNAT GatewayimageEIP

交換器

在列表中根據可用性區域選擇已有vSwitch交換器,或單擊建立虛擬交換器建立新的vSwitch。叢集控制面與預設節點池將使用此處指定的vSwitch。推薦選擇多個不同可用性區域的vSwitch,更好地保障叢集高可用。

安全性群組

使用已有VPC時,支援使用選擇已有安全性群組

安全性群組應用於叢集控制面、預設節點池和未指定自訂安全性群組的節點池。

相較於普通安全性群組,企業級安全性群組可以容納更多私網IP地址數量,但不支援組內互連功能,詳細對比請參見安全性群組分類

  • 自動建立:出方向預設全部允許,入方向基於推薦配置允許存取。後續如需修改,請確保在入方向已允許存取100.64.0.0/10網段。

    該網段用於訪問阿里雲其他服務,以執行鏡像拉取、查詢ECS基礎資訊等操作。
  • 使用已有:ACK預設不會為安全性群組配置額外的訪問規則。需自行管理安全性群組規則,以避免訪問異常,請參見配置叢集安全性群組

API server 訪問

ACK自動建立一個隨用隨付的私網CLB執行個體作為API Server的內網串連端點。請勿刪除該CLB執行個體,刪除後API Server將無法訪問且無法恢複。

若需使用已有CLB執行個體,請提交工單申請。選擇使用已有專用網路後,可選擇負載平衡來源使用已有

可選開啟使用 EIP 暴露 API Server

  • 開放:為 API Server 私網 CLB 執行個體綁定EIP,支援從公網訪問API Server,串連並管理叢集。

    這並不代表叢集內資源可以訪問公網。如需讓叢集內資源訪問公網,需勾選為專用網路配置 SNAT
  • 不開放:僅能在VPC內使用KubeConfig串連並操作叢集。

如需後續啟用,請參見實現從公網訪問API Server
自2024年12月01日起,建立CLB執行個體將新增收取執行個體費,請參見傳統型負載平衡CLB計費項目調整公告

雲資源及計費說明:imageCLBimageEIP

網路外掛程式

網路外掛程式是叢集中Pod之間網路通訊的基礎。

關於兩者的詳細對比,請參見容器網路外掛程式Terway與Flannel對比
  • Flannel:社區開源的輕量級網路外掛程式,在ACK中採用了與阿里雲VPC深度整合的VPC專用網路模式,通過直接管理VPC路由表實現Pod間通訊。

    • 適用情境:配置簡單,資源消耗少,適用於節點規模較小(受VPC路由表配額限制)、需要簡化網路設定、無需對容器網路進行自訂控制的情境。

  • Terway:阿里雲自研的高效能網路外掛程式,基於彈性網卡ENI實現Pod間通訊。

    • 適用情境:提供基於eBPF的網路加速、NetworkPolicy和Pod層級的vSwitch及安全性群組等能力,適用於對節點規模、網路效能和安全等有較高需求的高效能運算、遊戲、微服務等情境。

    • Pod數量限制:每個Pod佔用ENI的一個輔助IP地址,單個ENI可分配的IP有限(取決於執行個體規格)。因此,節點上可啟動並執行Pod數會受到節點的ENI和輔助IP的配額限制。

      使用共用VPC時,僅支援Terway。

    Terway還提供以下能力。

    詳細能力介紹請參見使用Terway網路外掛程式
    • DataPathV2

      僅支援在建立叢集時配置

      開啟DataPathv2加速模式,Terway將使用eBPF技術最佳化流量轉寄路徑,為網路密集型應用提供更低的延遲和更高的輸送量。

      僅支援Alibaba Cloud Linux 3(所有版本)、ContainerOS、Ubuntu,且Linux核心版本需為5.10及以上。詳細介紹請參見網路加速

    • NetworkPolicy 支援

      公測中,請在配額平台申請

      支援Kubernetes原生的NetworkPolicy,以實現Pod間的“防火牆”,自訂精細的存取控制規則,以提升叢集安全性。

    • Trunk ENI 支援

      允許為Pod配置獨立的IP、vSwitch和安全性群組,適用於需要固定IP或需要對特定Pod進行獨立網路原則管理的特殊業務情境,請參見為Pod配置固定IP及獨立虛擬交換器、安全性群組

容器網段

僅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地址(fc00::/7範圍內),地址前置長度在/112~/120之間。推薦與服務網段的可用地址數量保持一致。

叢集進階配置

展開進階選項(選填),配置叢集服務轉寄模式。

配置項

描述

服務轉寄模式

選擇kube-proxy代理模式,即叢集Service如何將請求分發至後端Pod。

  • iptables:基於Linux防火牆規則實現流量轉寄,使用穩定但效能有限。Service數量增加時,防火牆規則也會成倍增長,導致請求處理變慢,適用於存在少量Service的叢集。

  • IPVS:高效能的流量分發方案,採用雜湊表方式快速定位目標Pod,處理大量Service請求時延時更低。適用於大規模生產叢集或對網路效能要求較高的情境。

展開進階選項(選填),配置叢集刪除保護、資源群組等資訊。

展開查看進階選項

配置項

描述

叢集刪除保護

推薦開啟,防止通過控制台或OpenAPI誤刪除叢集。

資源群組

將叢集歸屬於選擇的資源群組,便於許可權管理和成本分攤。

一個資源只能歸屬於一個資源群組。

標籤

為叢集綁定索引值對標籤,作為雲資源的標識。

時區

叢集使用的時區。預設為瀏覽器配置的時區。

叢集本地區名

叢集內Service使用的頂級網域名稱(標準尾碼)。預設為cluster.local,也支援自訂網域名。自訂本地區名時,請參見配置叢集本地區名(ClusterDomain)有哪些注意事項?

例如,名為my-service的Service位於default命名空間中,其DNS網域名稱為my-service.default.svc.cluster.local

自訂認證 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雲端硬碟自訂效能和加密能力

  • 支援自訂效能層級。雲端硬碟容量越大,可選擇的效能層級越高(460 GiB容量以上可選PL2,1260 GiB以上可選PL3),詳情請參見ESSD雲端硬碟

  • 系統硬碟中僅ESS雲端硬碟支援加密。選擇密鑰時,阿里雲預設使用服務密鑰(Default Service CMK)進行加密;您也可以選擇在KMS服務中預先建立的自訂密鑰(BYOK)進行加密。

支援選擇配置更多系統硬碟類型,配置與系統硬碟不同的磁碟類型,提高擴容成功率。建立節點時,ACK將根據指定的磁碟類型順序,選擇第一個匹配的類型。

雲資源及計費說明:imageECSBlock Storage

部署集

通過ECS控制台建立部署集後,為節點池指定部署集,使得節點池彈出的節點可分散部署在不同的物理伺服器上,提升高可用性。

部署集預設支援的節點上限為20 * 可用性區域數量(可用性區域數量由vSwitch決定),節點池內最大節點數將受到限制,需確保部署集內配額充足。

後續如需啟用,請參見節點池部署集最佳實務
進階選項

配置項

描述

執行個體中繼資料訪問模式

僅支援1.28及以上版本的叢集

配置 ECS 執行個體的中繼資料訪問模式,在ECS執行個體內部通過訪問中繼資料服務(Metadata Service)擷取ECS執行個體中繼資料,包括執行個體ID、VPC資訊、網卡資訊等執行個體屬性資訊,詳情請參見執行個體中繼資料

  • 普通模式和加固模式:支援使用普通模式和加固模式兩種方式訪問執行個體中繼資料服務。

  • 僅加固模式:僅支援使用加固模式訪問執行個體中繼資料服務,請參見使用僅加固模式訪問ECS執行個體中繼資料

步驟四:配置節點池

單擊下一步:節點池配置,完成節點池基礎選項配置和進階選項配置。

節點池基礎配置

配置項

描述

節點池名稱

自訂節點池名稱。

容器運行時

如何選型,請參見containerd、安全沙箱、Docker運行時的對比

  • containerd(推薦):社區標準,支援1.20及以上版本。

  • 安全沙箱:提供基於輕量級虛擬化技術的強隔離環境,支援1.31及以下版本。

  • Docker(停止支援):僅支援1.22及以下版本,目前已不支援建立。

執行個體和鏡像配置

配置項

描述

付費類型

節點池擴容節點時預設採用的付費類型。

  • 隨用隨付:可按需啟用和釋放。

  • 訂用帳戶:需配置購買時間長度以及自動續約

  • 搶佔式執行個體:目前僅支援具有保護期的搶佔式執行個體。需同時配置單台執行個體上限價格

    當指定執行個體規格的即時價格低於單台執行個體的最高出價時,執行個體將成功建立。保護期(1小時)過後,系統將每5分鐘檢查一次執行個體規格的即時價格與庫存。若市場價格高於出價或庫存不足,搶佔式執行個體將被釋放。使用建議,請參見搶佔式執行個體節點池最佳實務

為保證節點池統一,不支援將隨用隨付訂用帳戶節點池修改為搶佔式執行個體節點池,反之亦然。

執行個體相關的配置項

節點池擴容時,會從選定的ECS執行個體規格類型系列中分配,選擇更多可用性區域下的更多執行個體規格可提升節點擴容成功率,避免規格不可用或庫存不足。具體擴容的執行個體規格由擴縮容策略決定。

  • 具體規格:根據vCPU、記憶體、規格類型系列、架構等維度指定具體的執行個體規格。

  • 泛化配置:根據屬性(vCPU、記憶體等)選擇待使用或需排除的執行個體規格列表,進一步提升擴容成功率。請參見使用指定執行個體屬性配置節點池

可參考控制台的彈性強度建議來配置,或在節點池建立後查看節點池彈性強度

關於ACK不支援的執行個體規格及節點配置建議,請參見ECS執行個體規格配置建議

雲資源及計費說明:imageECS執行個體imageGPU執行個體

作業系統

雲市場鏡像處於灰階發布中。
後續如需升級或更換作業系統,請參見更換作業系統

安全強化

建立節點時,ACK會應用選擇的安全基準策略。

  • 不開啟:不對ECS執行個體進行安全強化。

  • 等保加固:阿里雲為Alibaba Cloud Linux等保2.0三級版鏡像提供了符合等保合規要求的基準檢查標準和掃描工具。在確保原生鏡像相容性和效能的同時,進行了等保合規適配,滿足《GB/T22239-2019資訊安全技術網路安全等級保護基本要求》,詳情請參見ACK等保加固使用說明

    但在此模式下,Root使用者無法通過SSH遠程登入。您可以通過ECS控制台通過VNC串連執行個體,並建立一個支援SSH登入的普通使用者。

  • 阿里雲 OS 加固:僅支援Alibaba Cloud Linux 2或Alibaba Cloud Linux 3。

登入方式

  • 設定密鑰:阿里雲SSH金鑰組是一種安全便捷的登入認證方式,由公開金鑰和私密金鑰組成,僅支援Linux執行個體。

    請同時配置登入名稱rootecs-user)和所需的金鑰組

  • 設定密碼:配置登入名稱rootecs-user)和密碼。

儲存配置

配置項

描述

系統硬碟

根據業務需求選擇雲端硬碟類型,包括ESSD AutoPL、ESSD雲端硬碟、ESSD Entry以及上一代雲端硬碟(SSD雲端硬碟和高效雲端硬碟),配置容量和IOPS等。

可用系統硬碟類型取決於所選的執行個體規格類型系列。未展示的雲端硬碟類型即為不支援使用。

ESSD雲端硬碟自訂效能和加密能力

  • 支援自訂效能層級。雲端硬碟容量越大,可選擇的效能層級越高(460 GiB容量以上可選PL2,1260 GiB以上可選PL3),詳情請參見ESSD雲端硬碟

  • 系統硬碟中僅ESS雲端硬碟支援加密。選擇密鑰時,阿里雲預設使用服務密鑰(Default Service CMK)進行加密;您也可以選擇在KMS服務中預先建立的自訂密鑰(BYOK)進行加密。

支援選擇配置更多系統硬碟類型,配置與系統硬碟不同的磁碟類型,提高擴容成功率。建立節點時,ACK將根據指定的磁碟類型順序,選擇第一個匹配的類型。

雲資源及計費說明:imageECSBlock Storage

資料盤

根據業務需求選擇雲端硬碟類型,包括ESSD AutoPL、ESSD雲端硬碟、ESSD Entry以及上一代雲端硬碟(SSD雲端硬碟和高效雲端硬碟),配置容量和IOPS等。

可用資料盤類型取決於所選的執行個體規格類型系列。未展示的雲端硬碟類型即為不支援使用。

ESSD AutoPL支援

  • 預配置效能:在儲存容量大小不變的情況下,可根據實際業務需求靈活配置雲端硬碟的預配置效能,從而實現雲端硬碟容量與效能的解耦。

  • 效能突發:當業務面臨突發的資料讀寫壓力時,雲端硬碟會臨時提升效能以應對峰值需求,直至業務恢複平穩。

ESSD雲端硬碟支援

支援自訂效能層級。雲端硬碟容量越大,可選擇的效能層級越高(460 GiB容量以上可選PL2,1260 GiB以上可選PL3),詳情請參見ESSD雲端硬碟

  • 掛載資料盤時,所有雲端硬碟類型均支援加密。選擇密鑰時,阿里雲預設使用服務密鑰(Default Service CMK)進行加密;您也可以選擇在KMS服務中預先建立的自訂密鑰(BYOK)進行加密。

  • 節點建立過程中,將自動格式化最後一塊資料盤,並將/var/lib/container掛載到該資料盤,將/var/lib/kubelet/var/lib/containerd掛載到/var/lib/container

    如需自訂掛載目錄,請調整資料盤的初始化配置,最多可選擇一塊資料盤作為容器運行時佔用目錄,詳情請參見ACK節點池中資料盤可以自訂目錄掛載嗎?
  • 在需要容器鏡像加速、大模型快速載入等情境下,還可以使用快照建立資料盤,提升系統的響應速度和處理能力。

您可以選擇配置更多資料盤類型,配置與資料盤不同的磁碟類型,提高擴容成功率。建立節點時,ACK將根據指定的磁碟類型順序,選擇第一個匹配的類型。

一台ECS執行個體最多可掛載64塊資料盤,不同執行個體規格支援掛載的最多雲端硬碟數量不同。對於執行個體規格支援掛載的雲端硬碟數量上限,可以通過DescribeInstanceTypes介面查詢(DiskQuantity)。

雲資源及計費說明:imageECSBlock Storage

執行個體數量配置

配置項

描述

期望節點數

節點池應該維持的總節點數量。建議至少配置2個節點,以確保叢集組件正常運行。您可以通過調整期望節點數,達到擴容或縮容節點池的目的,請參見擴縮容節點池

如無需建立節點,可填寫為0,後續再手動增加。
節點池進階配置

展開進階選項(選填),配置節點擴縮容策略。

配置項

描述

擴縮容策略

配置節點池在節點擴縮容時如何選擇執行個體。

  • 優先順序策略:按叢集配置的vSwitch優先順序(vSwitch順序由上到下優先順序遞減)擴縮容。優先順序較高的vSwitch所在可用性區域無法建立執行個體時,自動使用下一優先順序vSwitch。

  • 成本最佳化策略:按vCPU單價從低到高擴縮容。

    節點池使用搶佔式執行個體時,則搶佔式執行個體優先。支援同時配置按量執行個體所佔比例(%),當搶佔式執行個體規格因庫存等原因無法建立時,自動使用隨用隨付執行個體來補充。

  • 均衡分布策略:在且僅在多可用性區域情境下將ECS執行個體均勻分配至多可用性區域。如果由於庫存不足等原因造成可用性區域分布不平衡,可再次進行均衡操作。

使用按量執行個體補充搶佔式容量

需同時選擇付費類型為搶佔式執行個體。

開啟後,如果因價格或庫存等原因無法建立足夠的搶佔式執行個體,ACK將自動嘗試建立按量執行個體作為補充。

雲資源及計費說明:imageECS執行個體

開啟搶佔式執行個體補償

需同時選擇付費類型為搶佔式執行個體。

開啟後,當收到搶佔式執行個體將被回收的系統訊息時(即搶佔式執行個體被回收前5分鐘),ACK將嘗試擴容新執行個體進行補償。

  • 補償成功:ACK對舊節點執行排水並從叢集中移除。

  • 補償失敗:ACK不會對舊節點執行排水,到期執行個體仍然會在5分鐘後被回收釋放。當庫存恢複或滿足價格條件時,ACK將自動購買執行個體以保證期望節點數,詳情請參見搶佔式執行個體節點池最佳實務

搶佔式執行個體的主動釋放可能導致業務異常,為提高補償成功率,建議同時開啟使用按量執行個體補充搶佔式容量

雲資源及計費說明:imageECS執行個體

展開進階選項(選填),配置ECS標籤、汙點等資訊。

置項

描述

ECS 標籤

為ACK自動建立的ECS執行個體添加標籤,作為雲資源標識。每台ECS最多可綁定20個標籤。如需提高上限,請到配額平台提交申請。由於ACK和ESS會佔用部分標籤,您最多可為執行個體指定17個自訂標籤。

展開查看標籤佔用說明

  • ACK預設佔用兩個ECS標籤。

    • ack.aliyun.com:<您的叢集ID>

    • ack.alibabacloud.com/nodepool-id:<您的節點池ID>

  • ESS預設佔用1個ECS標籤:acs:autoscaling:scalingGroupId:<您的節點池伸縮組ID>

  • 開啟節點自動調整後,Auto Scaling將預設佔用兩個ECS標籤,因此節點池會額外佔用兩個ECS標籤:k8s.io/cluster-autoscaler:truek8s.aliyun.com:true

  • 開啟節點自動調整後,組件通過ECS標籤記錄節點的標籤和汙點,以預檢測彈出節點的調度行為。

    • 節點的每個標籤會被轉為k8s.io/cluster-autoscaler/node-template/label/<標籤鍵>:<標籤值>

    • 節點的每個汙點會被轉為k8s.io/cluster-autoscaler/node-template/taint/<汙點鍵>/<汙點值>:<汙點效果>

汙點 (Taints)

為節點添加索引值對汙點。有效汙點鍵包含首碼(可選)和名稱。如果有首碼,用正斜線(/)分隔。

展開查看詳細說明

  • :名稱長度為1~63個字元,必須以字母、數字或字元[a-z0-9A-Z]開頭和結尾,中間可包含字母、數字、短劃線(-)、底線(_)、英文半形句號(.)。

    如果指定首碼,必須為DNS子域,即一系列由英文半形句號(.)分隔的DNS標籤,不超過253個字元,並以正斜線(/)結尾。

  • :汙點值可以為空白,不超過63個字元,必須以字母、數字或字元[a-z0-9A-Z]開頭和結尾,可包含字母、數字、短劃線(-)、底線(_)、英文半形句號(.)。

  • Effect

    • NoSchedule:不接受任何新的、不容忍此汙點的Pod被調度到該節點,但已在啟動並執行Pod不受影響。

    • NoExecute:不僅不接受任何新的、不容忍此汙點的Pod被調度到該節點,還會驅逐節點上任何已在啟動並執行、不容忍此汙點的Pod。

    • PreferNoSchedule:ACK會盡量避免將Pod調度到存在其不能容忍汙點的節點上,但不會強制執行。

節點標籤(Labels)

為節點添加索引值對標籤。有效Key包含首碼(可選)和名稱。如有首碼,首碼和名稱之間用正斜線(/)分隔。

展開查看詳細說明

  • Key:名稱長度為1~63個字元,必須以字母數字字元[a-z0-9A-Z]開頭和結尾,中間可包含字母、數字、短劃線(-)、底線(_)、英文半形句號(.)。

    如果指定首碼,必須為DNS子域,即一系列由英文半形句號(.)分隔的DNS標籤,不超過253個字元,以正斜線(/)結尾。

    以下首碼由Kubernetes核心組件保留,不支援指定

    • kubernetes.io/

    • k8s.io/

    • kubernetes.io/k8s.io/結尾的首碼。例如test.kubernetes.io/

      以下除外:

      • kubelet.kubernetes.io/

      • node.kubernetes.io

      • kubelet.kubernetes.io/結尾的首碼。

      • node.kubernetes.io結尾的首碼。

  • Value:可以為空白,不超過63個字元,必須以字母數字字元[a-z0-9A-Z]開頭和結尾,可包含字母、數字、短劃線(-)、底線(_)和英文半形句號(.)。

設定為不可調度

新添加的節點註冊到叢集時預設會被設定為不可調度。需在節點列表手動調整節點調度狀態

本配置僅對1.34以下版本叢集生效,詳情請參見Kubernetes 1.34版本說明

CPU Policy

指定kubelet節點的CPU管理原則

  • None:預設策略。

  • Static:允許為節點上具有某些資源特徵的Pod賦予增強CPU親和性和獨佔性。

推薦使用自訂節點池kubelet配置

自訂節點名稱

節點名稱由首碼、節點IP地址及尾碼三部分組成。開啟後,節點名稱、ECS執行個體名稱、ECS執行個體Hostname也將發生變化。

例如,節點IP地址為192.XX.YY.55,指定首碼為aliyun.com,尾碼為test。

  • Linux節點:節點名稱、ECS執行個體、ECS執行個體Hostname均為aliyun.com192.XX.YY.55test。

  • Windows節點:其Hostname固定為IP地址,使用-代替IP地址中的.,且不包含首碼和尾碼。

    因此,對應的ECS執行個體Hostname為192-XX-YY-55,節點名稱、ECS執行個體名稱均為aliyun.com192.XX.YY.55test。

執行個體中繼資料訪問模式

僅支援1.28及以上版本的叢集

配置 ECS 執行個體的中繼資料訪問模式,在ECS執行個體內部通過訪問中繼資料服務(Metadata Service)擷取ECS執行個體中繼資料,包括執行個體ID、VPC資訊、網卡資訊等執行個體屬性資訊,詳情請參見執行個體中繼資料

  • 普通模式和加固模式:支援使用普通模式和加固模式兩種方式訪問執行個體中繼資料服務。

  • 僅加固模式:僅支援使用加固模式訪問執行個體中繼資料服務,請參見使用僅加固模式訪問ECS執行個體中繼資料

執行個體預自訂資料

節點加入叢集前,將運行指定的執行個體預自訂User-Data指令碼

例如,指定執行個體預自訂資料為echo "hello world",則節點實際運行指令碼如下。

#!/bin/bash
echo "hello world"
[節點初始化指令碼]
節點初始化時此配置的生效邏輯,請參見節點初始化流程介紹

執行個體自訂資料

節點加入叢集後,將運行指定的執行個體自訂User-Data指令碼

例如,指定執行個體自訂資料為echo "hello world",則節點實際運行指令碼如下。

#!/bin/bash
[節點初始化指令碼]
echo "hello world"
節點初始化時此配置的生效邏輯,請參見節點初始化流程介紹
建立叢集或擴容節點成功不代表執行個體自訂指令碼執行成功。可登入節點執行grep cloud-init /var/log/messages查看執行日誌。

CloudMonitor外掛程式

可在CloudMonitor控制台查看並監控節點和應用運行狀態。

本配置僅對節點池中新增的節點生效,不對節點池存量節點生效。

已有節點如需啟用,請通過CloudMonitor控制台安裝。

雲資源及計費說明:imageCloudMonitor

公網 IP

ACK將為節點分配IPv4公網IP地址。

本配置僅對節點池中新增的節點生效,不對節點池存量節點生效。已有節點如需訪問公網,需配置並綁定EIP,請參見EIP 綁定雲資源

雲資源及計費說明:imageECS公網

自訂安全性群組

為節點池指定普通安全性群組或企業級安全性群組。ACK預設不會為安全性群組配置額外的訪問規則。需自行管理安全性群組規則,避免訪問異常,請參見配置叢集安全性群組

每台ECS執行個體支援加入的安全性群組存在上限,請確保安全性群組配額充足。

RDS 白名單

將節點IP添加至RDS執行個體的白名單。

步驟五:配置組件

單擊下一步:組件配置,完成組件配置。

配置項

描述

Ingress

Ingress管理著叢集外部存取叢集內部服務的方式。如需將叢集內應用或API暴露給公網訪問時,則需安裝。

目前提供三種執行個體作為叢集 Ingress 入口網關。

ALB Ingress

將流量交由阿里雲應用型負載平衡ALB處理,具備豐富的路由策略,與WAF等雲產品深度整合,支援Auto Scaling,適用於大規模、高流量生產業務或有企業級可靠性需求的情境。

可建立ALB執行個體,也可使用(僅使用已有VPC時)當前VPC下未被其他叢集關聯的ALB執行個體。

如需後續啟用,請參見建立並使用ALB Ingress對外暴露服務

雲資源及計費說明:imageALB計費概述

Nginx Ingress

相容社區版Nginx Ingress Controller並進行了最佳化。

可建立CLB執行個體,也可使用當前VPC下未被其他叢集關聯的CLB執行個體。

如需後續啟用,請參見建立並使用Nginx Ingress對外暴露服務

雲資源及計費說明:imageCLB

MSE Ingress

基於MSE雲原生網關實現,提供服務治理、認證鑒權、灰階發布等進階能力,適用於需要對微服務流量進行精細化管控的情境。

可建立MSE雲原生網關執行個體,也可使用(僅使用已有VPC時)當前VPC下未被其他叢集關聯的執行個體。

如需後續啟用,請參見通過MSE Ingress訪問Container Service

雲資源及計費說明:image普通執行個體計費概述

關於三者的詳細對比,請參見Ingress管理

服務發現

安裝NodeLocal DNSCache,在節點上緩衝DNS解析結果,以提升網域名稱解析效能和穩定性,加速叢集內部的服務間調用。

儲存外掛程式

基於CSI儲存外掛程式實現資料的持久化儲存,可使用阿里雲雲端硬碟、NAS、OSS、CPFS等儲存卷資源。

選擇預設建立NAS和CNFS後,ACK會預設建立通用型NAS檔案系統並使用容器網路檔案系統CNFS進行管理。

雲資源及計費說明:imageNAS

容器監控

您可以使用阿里雲Prometheus查看叢集預先配置的監控大盤和監控效能指標。更多資訊,請參見阿里雲Prometheus監控

Log Service

使用已有SLS Project或建立一個SLS Project,用於收集叢集應用日誌。

同時將啟用叢集API Server審計功能,收集對Kubernetes API的請求以及請求結果。

如需後續啟用,請參見採集ACK叢集容器日誌使用叢集API Server審計功能

雲資源及計費說明:imageSLS

叢集巡檢

啟用智能營運的叢集巡檢功能,定期掃描叢集內配額、資源水位、組件版本等,確保叢集配置符合最佳實務,並提前暴露潛在風險。

步驟六:確認配置和計費資訊

單擊下一步:確認配置

確認配置頁面,確認叢集的配置資訊,包括功能配置、資源計費、雲產品依賴檢查等,並閱讀服務合約。

您可以在建立頁面下方查看叢集涉及的費用總覽,也可以查看ACK和各產品的計費文檔,請參見計費概述雲產品資源費用

說明

一個包含多節點的叢集建立時間約為十分鐘。

您還可以在確認配置頁面的右上方單擊同等代碼,產生當前叢集配置對應的Terraform或SDK樣本參數。

API

調試入口

CreateCluster調試入口

請求樣本

建立一個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專有叢集時,該參數必須配置為Kubernetes

"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等)的配額限制。如需提升配額,請參見文檔擷取提升方式。