本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

虛擬節點概述

更新時間:2025-03-19 19:29

當您需要在短時間內快速建立大量Pod時,雲端ECS節點擴容速度可能無法滿足要求,而預留額外的ECS節點又會產生資源浪費。藉助虛擬節點,您無需提前預留和維護固定資源集區,可以直接將Pod調度到虛擬節點上以Elastic Container Instance來運行,在保障彈性的同時節約資源成本。

為什麼要使用虛擬節點

虛擬節點是什麼

在ACK叢集中,節點是運行工作負載的基本單位,提供實際的計算和儲存資源。通常,您的ACK叢集會有至少一組ECS節點池,建立Pod時,kubelet會將Pod調度到ECS節點上運行。這種架構能很好地應對流量穩定的業務。如果您的業務有不易提前預測的瞬時波峰,儘管ACK支援Auto Scaling,但ECS節點池擴容時,ECS執行個體的建立和啟動本身會有一定的額外耗時。藉助虛擬節點,您可以直接調度Pod到阿里雲Elastic Container Instance(Elastic Container Instance)上運行,降低節點營運操作負擔,同時避免產生閑置節點資源,降低成本。

虛擬節點通過ack-virtual-node組件將計算資源進行封裝,無需管理底層基礎設施即可直接部署工作負載,ack-virtual-node會自動將應用Pod調度到ECI上運行。ECI是Serverless容器運行服務,一個ECI執行個體相當於一個Pod。使用ECI部署容器應用時,您只需要提供打包好的Docker鏡像,即可運行容器,並僅為容器實際運行消耗的資源付費。

功能優勢

虛擬節點有如下使用優勢。

  • 免營運:無需關心底層資源集區的建立,減少營運負擔。同時,虛擬節點為託管資源,省去Kubernetes節點的常規營運操作,例如系統升級、安全補丁修複等。

  • 超大容量:最多可彈出50,000個Pod,無需提前規劃容量。

    重要

    在Pod大量關聯Service的情況下,建議保持在20,000個以內。

  • 秒級彈性:在極短時間內建立出數千Pod,無需擔心突發業務流量因Pod建立時延受到影響。

  • 安全隔離:Pod基於ECI建立,每個容器執行個體底層通過輕量級虛擬化安全沙箱技術完全強隔離,容器執行個體間互不影響。

  • 節省成本:應用按需建立,隨用隨付,不運行不計費,省去資源閑置費用,同時Serverless帶來更低的營運成本。

使用情境

基於虛擬節點本身的特性和優勢,其典型使用情境如下所示。

  • 線上業務

    對於線上教育、電商等時常出現突發流量的線上業務,支援秒級擴容,避免流量激增擴容不及時可能導致的系統故障,以及平時大量閑置資源造成的浪費。

  • 資料處理

    處理Spark、Presto等大批量線上資料並發任務時,可以不再因為成本原因受限於底層資源, 從而導致資料處理任務的並發度受限。支援在短時間內快速彈出數千Pod,滿足巨量資料的線上處理訴求。

  • AI任務

    針對模型訓練、模型推理等無需持續運行且需要大量計算資源的AI任務,無需預留資源,按需使用,按秒計費,降低AI推理成本。同時,支援秒級彈性,可以快速響應突發的任務需求。

  • CI/CD測試環境

    針對CI/CD過程中的批量測試工作,例如CI打包、壓力測試、模擬測試等,可以藉助虛擬節點隨時建立和釋放容器執行個體。支援按需使用,按秒計費,實現低成本的大規模資源供應。

  • Job和CronJob

    這些任務無需持續運行,任務完成後,Job會自動終止,對應的Pod也會被刪除。虛擬節點支援在任務完成後自動停止計費並釋放計算資源,避免資源閑置浪費。

使用限制

您可以在1.28及以上版本的ACK Edge叢集中使用虛擬節點,使用前,請先瞭解其使用限制。

  • 不支援DaemonSet型工作負載。您可以通過將DaemonSet重新設定為Pod的Sidecar容器來運行。

  • 不支援在Pod manifest中指定HostPathHostNetwork

  • 不支援Privileged特權容器。您可以使用Security Context為Pod添加Capability。

    說明

    特權容器功能正在內測中。如需體驗,請提交工單申請。

  • 不支援NodePort類型的Service,不支援配置Session Affinity。

  • 不支援深圳金融雲,不支援政務雲。

相關計費

虛擬節點功能本身不收費,在虛擬節點上啟動並執行ECI Pod按照ECI計費規則進行計費。

使用虛擬節點時,虛擬節點功能本身不計費,ACK叢集管理費用和相關阿里雲雲產品(包括ECI、VPC、Server Load Balancer執行個體等)資源費用正常收取。其中,ECI Pod運行所產生的費用請參見ECI的計費概述

快速體驗

您可以參見通過虛擬節點將Pod調度到ECI上運行快速體驗通過虛擬節點運行工作負載Pod的基礎用法。

  1. 部署ack-virtual-node組件,在叢集中啟用虛擬節點功能。

  2. 為Pod或Namespace添加Label,藉助虛擬節點將工作負載Pod調度到ECI上運行。

相關操作

當您升級叢集時,系統會自動校正ECI Platform Version和Kubernetes的相容情況,對於ECI Platform Version和目標Kubernetes版本不相容的ECI Pod,需要手動刪除重建ECI Pod後,才能升級叢集的Kubernetes版本。升級叢集前,請確保ECI Platform Version與Kubernetes版本相容。更多資訊,請參見升級ECI Platform Version

支援的操作

說明

相關文檔

支援的操作

說明

相關文檔

靈活配置Pod

在叢集維度通過編寫ECI Profile設定檔(名為eci-profile的ConfigMap)大量設定ECI Pod,例如指定安全性群組、指定交換區(即ECI Pod所在的可用性區域)等。配置更新後,ECI Pod無需重啟,建立ECI Pod可以即時生效,存量ECI Pod滾動發布後可生效。

配置eci-profile

對於ECI某些功能特性,例如指定ECI執行個體規格、啟用鏡像緩衝以加速Pod建立、為ECI Pod分配IPv6地址、增加臨時儲存空間大小等,可以通過Pod Annotation來實現。

ECI Pod Annotation

調度Pod至虛擬節點

ACK提供多種調度方案。您可以指定應用Pod只調度到虛擬節點,也可以指定Pod優先調度到ECS節點(訂用帳戶或隨用隨付),並在ECS節點資源不足時再調度至虛擬節點,同時實現逆序縮容。請參見調度Pod至虛擬節點完成調度策略的選型。

調度Pod至指定的OS或Arch

ACK叢集預設將工作負載Pod調度到x86架構的虛擬節點,並在x86節點資源不足時保持等待x86節點資源。您還可以將工作負載Pod調度至Arm架構的虛擬節點上。

調度至Arm虛擬節點

如果您的容器需要運行在Windows環境中,您可以在叢集中添加Windows虛擬節點,並將Pod調度到該虛擬節點上。

(邀測)調度Pod到Windows虛擬節點

虛擬節點最佳實務

通過虛擬節點運行Job任務的方式,您可以用最小的營運成本(無需調整節點數量)來應對叢集計算資源高峰壓力。

基於ECI運行Job任務

您可以在ACK叢集中使用Elastic Container Instance運行Spark作業。通過使用ECI彈性資源並配置合適的調度策略,您可以按需建立ECI Pod,並按資源使用量按需付費,從而有效減少資源閑置帶來的成本浪費,進而更加經濟高效地運行Spark作業。

使用ECI彈性資源運行Spark作業

藉助虛擬節點群組件(ACK Virtual Node)僅為調度到虛擬節點上的Pod自動注入Sidecar容器,來解耦虛擬節點Pod的Sidecar容器與業務容器。

向虛擬節點Pod注入Sidecar容器

通過修改Prometheus監控配置來採集指定虛擬節點的Metrics。

採集指定虛擬節點的Metrics

虛擬節點支援服務發現功能,目前支援Intranet service、Headless service、ClusterIP service。

虛擬節點雲端式解析PrivateZone的服務發現

虛擬節點FAQ

虛擬節點使用常見問題。

虛擬節點FAQ

  • 本頁導讀 (1, M)
  • 為什麼要使用虛擬節點
  • 虛擬節點是什麼
  • 功能優勢
  • 使用情境
  • 使用限制
  • 相關計費
  • 快速體驗
  • 相關操作
文檔反饋