全部產品
Search
文件中心

Container Service for Kubernetes:Knative概述

更新時間:Mar 18, 2025

Knative是基於Kubernetes之上提供的一款開源Serverless應用程式框架,協助您部署和管理現代化的Serverless工作負載,打造企業級Serverless平台。ACK Serverless整合了Knative,您只需要擁有一個ACK Serverless叢集並開通Knative功能,就可以基於Knative API使用雲的能力。並且無需為Knative Controller付出任何成本。

ACK Serverless Knative優勢

社區Knative

ACK Serverless Knative

預設使用Istio作為Gateway,安裝Istio的Controller需要額外支出部分IaaS成本。

無需為Knative Controller付出任何成本。

Knative自身的Controller部署,需要額外支出部分IaaS成本。

ACK Serverless叢集中建立一個Pod是有明顯的冷啟動時間,Knative縮容到零的機制可以很好的節省成本,但是第一批請求過來時有可能導致短暫的逾時失敗。

ACK Serverless Knative在沒有流量的時候不把應用執行個體數縮容到零,而是保留執行個體。通過低成本的保留執行個體來平衡成本和冷啟動時間長度。

Knative資源託管

ACK Serverless作為無伺服器的Kubernetes叢集,無需單獨購買節點即可直接部署容器應用,是一種理想的Kubernetes使用方式。以下為Knative資源託管優勢:

  • ACK Serverless上提供了Knative的託管服務,您可以通過Knative管理應用。

  • Knative可以在需要的時候自動從ACK Serverless中申請IaaS資源,此處IaaS資源在ACK Serverless中指Pod。

Knative Serving Controller和阿里雲Container Service進行了融合。您只需要擁有一個ACK Serverless叢集並開通Knative功能就可以基於Knative API使用雲的能力,並且無需為Knative Controller付出任何成本。

Knative Gateway

社區Knative預設支援Istio、Gloo、Contour、Kourier和Ambassador等多種Gateway實現方案。在這些實現方案中Istio使用頻率最高。因為Istio除了可以充當Gateway的角色還能作為ServiceMesh服務使用。Serverless服務需要有Gateway執行個體常駐運行,而為了保證高可用至少要有兩個執行個體互為備份。其次這些Gateway的Controller也需要常駐運行,這些常駐執行個體的IaaS費用和營運都是業務需要支付的成本。

為了提升Serverless體驗,通過阿里雲ALB實現了Knative Gateway。Knative Gateway具備所有需要的功能並且屬於雲產品層級的支撐。不需要常駐資源,不僅節省了您的IaaS成本還省去了很多營運負擔。

保留執行個體

社區Knative預設在沒有流量時可以把應用執行個體縮容到零,但是縮容到零之後,從零到一的冷啟動問題很難解決。涉及資源分派、調度、拉鏡像和應用啟動時間長度等。

ACK Serverless的Knative和社區Knative不同,預設在沒有流量的時候不把應用執行個體數縮容到零,而是保留一個執行個體。以下為保留執行個體的策略:

  • 在業務波穀時使用突發效能執行個體替換標準的計算型執行個體,當第一個請求來臨時再無縫切換到標準的計算型執行個體,從而降低流量低穀的成本。

  • 流量低穀時獲得的CPU積分可以在業務高峰到來時使用,節約了成本。

Knative安裝部署

Serverless Kubernetes (ACK Serverless)叢集支援部署Knative。

  • 如果您的ACK Serverless叢集版本≥1.16,可以直接通過控制台部署Knative

  • 如果您的ACK Serverless叢集版本<1.16,請先升級ACK Serverless叢集

計費說明

Knative本身不收取管理費用,但在使用過程中所建立的ECI容器執行個體、Server Load Balancer執行個體、NAT Gateway等會按照相應資源的價格計費