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資源,此處laaS資源在ACK Serverless中指Pod。
Knative Serving Controller和阿里云容器服務進行了融合。您只需要擁有一個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默認在沒有流量時可以把應用實例縮容到零,但是縮容到零之后,從零到一的冷啟動問題很難解決。冷啟動除了要解決IaaS資源的分配、Kubernetes的調度、拉鏡像等問題以外,還涉及到應用的啟動時長。而應用鏡像的大小以及應用啟動時長與具體的開發者或者業務有很強的關聯。
ACK Serverless的Knative和社區Knative不同點在于默認在沒有流量的時候不把應用實例數縮容到零個,而是保留一個實例。以下為保留實例的策略:
在業務波谷時使用突發性能實例替換標準的計算型實例,當第一個請求來臨時再無縫切換到標準的計算型實例,從而降低流量低谷的成本。
流量低谷時獲得的CPU積分可以在業務高峰到來時使用,節約了使用成本。
保留實例的詳細介紹請參見保留實例。
Knative安裝部署
Serverless Kubernetes (ACK Serverless)集群支持部署Knative。
如果您的ACK Serverless集群版本≥1.16,可以直接通過控制臺部署Knative,詳細介紹請參見Knative組件管理。
如果您的ACK Serverless集群版本<1.16,請先升級ACK Serverless集群。
計費說明
Knative本身不收取管理費用,但在使用過程中所創建的ECI容器實例、負載均衡實例、NAT網關等會按照相應資源的價格計費。更多信息,請參見容器實例計費概述。
Knative交流群
如果您在使用Knative的過程中有任何疑問或建議,歡迎您搜索釘群號23302777加入釘群。