初探Knative基本功能與概念
Kyle Bai在KaiRen的博客发表
Knative是基於Kubernetes平台建構、部署與管理現代Serverless工作負載的開源專案,其目標是要幫助雲端供應商與企業平臺營運商替任何雲端環境的開發者、操作者等提供Serverless服務體驗。Knative採用了Kubernetes概念來建構函式與應用程式,並以Istio實現了叢集內的網路路由,以及進入服務的外部連接,這讓開發者在部署或執行變得更加簡單。而目前Knative元件焦距在解決許多平凡但困難的事情,例如以下:
- 部署一個容器。
- 在Kubernetes上編排Source-to-URL的工作流程。
- 使用Blue/Green部署來路由與管理流量。
- 按需自動擴展與調整工作負載的大小。
- 將運行服務(Running services)綁定到事件生態系統(Eventing ecosystems)。
- 利用原始碼建構應用程式與函式。
- 讓應用程式能夠零停機升級。
- 自動增減應用程式與函式實例。
- 透過HTTP request觸發函式的呼叫。
- 為函式、應用程式與容器建立事件。
而Knative的設計考慮了不同的工作角色使用情境。
然而Knative不只使用Kubernetes與Istio的功能,也自行開發了三個元件以提供更完整的Serverless平台。而下節將針對這三個元件進行說明。