全部產品
Search
文件中心

Container Service for Kubernetes:Knative概述

更新時間:Sep 25, 2025

Knative是一款基於Kubernetes的Serverless架構,支援基於請求的自動彈性、在沒有流量時將執行個體數量自動縮容至零、版本管理與灰階發布等能力。在完全相容社區Knative和Kubernetes API的基礎上,ACK Knative進行了多維度能力增強,例如通過保留執行個體降低冷啟動時間、基於AHPA實現彈性預測等。

為什麼要在Kubernetes叢集中使用Knative

Knative介紹

Knative是一款基於Kubernetes叢集的Serverless架構,提供雲原生、跨平台的Serverless編排標準。Knative通過整合容器構建、工作負載管理以及事件模型來實現這一Serverless標準。優勢如下。

  • 更聚焦於商務邏輯:Knative通過簡單的應用配置、自動擴縮容等手段讓開發人員聚焦於商務邏輯,降低營運負擔、減少對底層資源的關注。

  • 標準化:將業務代碼部署到Serverless平台時,需要考慮源碼的編譯、部署和事件的管理。目前社區和雲廠商提供的Serverless解決方案和FaaS方案標準不一。Knative提供了一個標準、通用的Serverless架構。

    例如,如需在Knative中實現事件驅動,您可以編寫對應的YAML檔案(CR)並在叢集中部署,無需與雲產品做深度綁定,便於跨平台遷移。

  • 使用門檻低:Knative支援將代碼自動打包為容器鏡像並發布為服務,也支援將函數快捷地部署到Kubernetes叢集中,以容器的方式運行。

  • 自動彈性及版本管理:Knative支援在沒有流量時自動將執行個體數量縮容至零,從而節省資源,還提供版本管理、灰階發布等功能。

  • 事件驅動:Knative提供了完整的事件模型,便於接入外部系統的事件,並將事件路由到適當的服務或函數進行處理。

關於Knative應用程式模型(Knative Service)的介紹,請參見Knative應用程式模型介紹

核心組件

Knative包括以下核心組件,分別執行不同的功能。

  • Knative Serving:管理Serverless工作負載,提供了應用部署、多版本管理、基於請求的自動彈性、灰階發布等能力,而且在沒有業務流量時可以將應用執行個體縮容至零。

  • Knative Eventing:提供了事件來源的接入、事件註冊和訂閱、以及事件過濾等一整套事件管理的能力。事件模型可以有效地解耦生產者和消費者的依賴關係。

  • Knative Functions: 提供了一個簡單的方式來建立、構建和部署Knative服務。您無需深入瞭解底層技術棧(例如Kubernetes、容器、Knative),通過使用Knative Functions,即可將無狀態、事件驅動的函數作為Knative服務部署到Kubernetes叢集中。

為什麼要使用ACK Knative

在完全相容社區Knative並提供標準Kubernetes API介面的基礎上,ACK Knative進一步強化產品化能力並提供了更豐富的產品方案。

  • 產品化能力:提供了產品化一鍵部署能力,您無需購買資源搭建系統。同時提供產品控制台,支援白屏化操作,降低Kubernetes叢集和Knative的使用門檻。

  • 簡化營運:

    • 核心組件託管:在ACK叢集中,Knative的核心組件Knative Serving和Knative Eventing均由ACK建立和託管,無需您承擔資源費用,且提供高可用保障。

    • 網關託管:ACK Knative提供ALB、ASM和Kourier網關。除社區相容的Kourier外,其餘雲產品網關的Controller均由ACK建立,提供全託管、免營運的網關服務。

  • 生態整合:無縫整合了阿里雲的計算(ECIECSACS)、可觀測(Log ServiceSLSPrometheus)、應用整合(EventBridge)等產品,無需自行採購伺服器,也無需自建服務,便能在Knative服務中實現日誌與監控警示、持續傳遞、事件驅動等能力。

  • 更豐富的功能特性:在社區Knative的基礎上,ACK Knative結合實際業務情境提供了開箱即用的、更為豐富的產品方案。例如以下方案。

    • 保留執行個體:為延遲敏感應用保留一個低成本常駐執行個體,緩解社區Knative“縮容至0”策略帶來的冷啟動延遲,以提升服務響應速度,有效控制資源成本。

    • Knative自動調整: 提供開箱即用的基於請求的自動彈性 KPA(Knative Pod Autoscaler),同時也支援HPA,您還可以為Knative服務配置AHPA(Advanced Horizontal Pod Autoscaler)彈效能力。如果您的應用所需資源具備周期性變化,推薦您使用AHPA進行彈性預測,提前預熱所需的資源,緩解使用Knative時遇到的冷啟動問題。

關於ACK Knative和社區Knative對比的更多資訊,請參見阿里雲Knative和開源Knative對比

使用情境

ACK Knative的典型使用情境如下。

業務情境

說明

Web服務的託管

  • 簡化部署:ACK Knative封裝了許多Kubernetes的底層細節,通過Knative服務大大簡化了工作負載的部署和管理。

  • 簡化多版本管理:Revision機制能夠確保每個修訂版本都有唯一標識,便於管理不同的版本,例如版本的復原。

  • 簡化流量灰階發布:ACK Knative提供流量管理功能。通過為不同Revision版本的服務分配不同的流量比例,可以快速實現灰階發布、A/B測試等。

Serverless應用

  • 聚焦商務邏輯:開發人員無需關心IaaS資源,只需關注商務邏輯的開發,應用配置也大大簡化,降低底層基礎設施的營運成本。

  • 資源按需使用、自動彈性:ACK Knative可以根據流量請求和並發情況自動擴縮資源,當沒有業務流量時還可以將執行個體數量縮減至零,節省資源和成本。

AI情境

  • 聚焦商務邏輯:GPU等異構計算情境下,開發人員無需關心底層基礎設施的維護,只需關注AI任務的構建和部署。

  • 資源按需使用、自動彈性:ACK Knative可以根據實際負載情況自動擴縮資源,針對負載具有波動性的推理服務能夠有效降低資源使用成本。

  • 可移植性:ACK Knative可以運行在任何相容Kubernetes的環境中,Knative服務可以在雲上、本機資料中心甚至是邊緣裝置上移植部署。

事件驅動情境

Knative Eventing提供了完整的事件模型,簡化了接入外部系統的事件的流程。例如,IoT裝置可以將感應器資料發送到Knative服務中,ACK Knative可以配置對應的事件來源用於接收資料,並觸發相應的處理邏輯,例如資料存放區、即時分析、監控警示等。

使用流程

ACK Knative的使用流程如下圖所示。

流程

說明

適用範圍

1.22及以上版本的ACK託管叢集。如需升級,請參見手動升級叢集

已部署ACK Knative,安裝Knative Serving組件,請參見部署與管理Knative組件

已完成網關選型並部署網,請參見為Knative選擇網關

  • ALB:基於阿里雲ALB提供了更為強大的Ingress流量管理方式,全託管免營運,且支援自動彈效能力。

  • ASM:統一管理微服務應用流量、相容Istio的託管式平台。通過流量控制、網格觀測以及服務間通訊安全等功能,簡化您的服務治理,並為運行在異構計算基礎設施上的服務提供統一的管理能力。

  • Kourier:基於Envoy架構實現的一款Knative社區開源的輕量級網關。

服務部署與管理

指定使用的資源類型:

  • 預設使用ECS資源運行Knative服務。

  • 使用ECI提供的Pod資源應對突發流量,請參見使用ECI資源

  • 使用ACS提供的Pod資源應對突發流量,請參見使用ACS資源

  • 在AI推理服務等情境下使用GPU資源,請參見使用GPU資源

  • 叢集中同時存在ECS和ECI資源時,可基於ResourcePolicy來聲明資源的擴容和縮容順序,請參見在Knative中同時使用ECS和ECI資源

  • 與搶佔式執行個體結合使用,降低雲端運算資源,請參見使用搶佔式執行個體

  • 配置保留執行個體,保留一個低規格的突發效能執行個體,平衡好使用成本和啟動時間長度,請參見配置保留執行個體

自動調整:

版本管理與灰階發布:

Knative服務的訪問:

  • Knative服務的預設網域名稱格式為{route}.{namespace}.{default-example.com},其中{default-example.com}是預設的網域名稱尾碼,您可以自訂網域名尾碼,請參見使用自訂網域名和Path

  • 使用自訂網域名時,推薦為自訂網域名配置一個HTTPS認證,提高資料轉送的安全性,請參見配置HTTPS認證訪問

  • 配置探針(Liveness Probe和Readiness Probe),監測和管理服務的健康情況和可用性,請參見在Knative中配置連接埠探測

進階功能

事件驅動:Knative Eventing提供完整、系統的Serverless事件驅動模式,包括外來事件源的接入、事件流轉和訂閱、以及對事件的過濾等功能。請參見Knative事件驅動

Knative Functions:簡化在Kubernetes叢集中建立、部署和調用函數的流程,請參見部署Knative Functions

AI推理服務:

服務網格:在Knative服務中整合服務網格ASM,以實現複雜的流量管理並增強服務安全性。

可觀測性與成本管理

日誌採集:基於SLS無侵入式地完成日誌資料擷取、消費、投遞以及查詢分析等功能,請參見在Knative上實現日誌採集

監控大盤:把Knative接入阿里雲Prometheus監控,查看Knative的響應延遲、請求並發數等資料,請參見查看Knative服務監控大盤

監控警示:使用SLS建立日誌警示監控規則,請參見為Knative服務開啟監控警示

成本洞察:作為企業IT成本管理員,可以為Knative服務啟用成本洞察功能,瞭解Knative服務的資源使用量及成本分布,請參見啟用Knative服務成本洞察

計費說明

在ACK叢集中使用ACK Knative時,ACK Knative本身不收取管理費用,但在使用過程中產生的叢集管理費用、所建立的雲端服務器、Server Load Balancer執行個體、NAT Gateway等,按照相應資源的價格計費。更多資訊,請參見ACK叢集的計費概述雲產品資源費用

常見問題

如您在使用ACK Knative時遇到問題,可以先參見Knative FAQ自排查。

如果您在使用Knative的過程中有任何疑問或建議,歡迎您搜尋釘群號23302777加入釘群。

相關文檔