Knative

在以 Kubernetes 為基礎的平台上建構、部署及管理新型無伺服器工作負載。

眾人必備的基礎功能

Knative 最初是由 Google 與 50 多間公司攜手合作建立而成,目的在提供一組基礎元件,用於建構和執行 Kubernetes 上的無伺服器應用程式。Knative 為 Kubernetes 上的雲端原生應用程式提供了零資源調用率、自動調度資源、叢集內建構和事件架構等功能。 無論是在內部部署、雲端環境或第三方資料中心,Knative 全都奉行在實際情境中已成功的 Kubernetes 基礎架構所採用的最佳做法。最重要的是,Knative 讓開發人員可以專心編寫程式碼,不用費心處理「無聊卻困難」的應用程式建構、部署和管理流程。

開發人員方便使用的軟體

Knative 提供一組可重複使用的元件,讓您專門用於解決許多枯燥但困難的工作,例如從原始碼到容器映像檔的應用程式建構工作流程、在部署過程中轉送和管理流量、為您的工作負載自動調整資源配置,或是將執行中的服務與日益成長的事件來源生態系統建立繫結。Knative 會將容器映像檔視為部署單元,因此,開發人員可以使用他們熟悉的任何語言、架構或慣用方法。

Knative 的設計是以提供開發人員熟悉的體驗為主,因此支援常見的開發模式,例如 GitOps、DockerOps、ManualOps 與 Django、Ruby on Rails、Spring 等工具和架構。

同時兼顧彈性與可控管性

Knative 在設計上方便插入現有的版本和持續整合/持續推送軟體更新工具鏈。企業可專注於使用能在任何地方、任何雲端與任何 Kubernetes 基礎架構上執行的開放原始碼優先技術,進而自由將工作負載移動至執行效果最好的位置。如此一來,客戶就能享有彈性和控管能力,得以根據自身的特殊需求來調整系統。

依照自己的需求執行無伺服器工作負載

Knative 提供開放式 API 和執行階段環境,可讓您隨時隨地執行無伺服器工作負載,無論是在 Google Cloud 的全代管平台、Anthos、Google Kubernetes Engine (GKE) 或您自己的 Kubernetes 叢集都沒問題。Knative 可讓您輕鬆選擇在 Cloud Run 中執行,並於日後移轉至 Cloud Run for Anthos,或是在您自己的 Kubernetes 叢集中執行,並於日後遷移至 Cloud Run。只要將 Knative 做為基礎平台使用,您就能跨平台自由移動工作負載,同時大幅降低切換費用。

Knative 元件

建構

  • 以靈活彈性且可設定的方法將建構原始碼導入至容器中

  • 提供以 Dockerfile 或已建構範本為基礎的插入式方法

  • 不需要跨平台程式碼編譯,也不需要本機建構工具

  • 支援快取構件,加快建構速度

  • 允許機構利用備用容量提高資源使用效率

服務

  • 更高層級的抽象層,易於理解物件模型

  • 根據 HTTP 要求流暢地自動調度資源

  • 逐步推出新的修訂版本

  • 自動整合網路和服務網格

  • 插入式架構:可連結您自己的記錄與監控平台

事件

  • 通用的事件訂閱、提交和管理方式

  • 使用高層級物件建構結構鬆散的事件導向系統

  • 事件產生器和事件取用服務之間的陳述式繫結

  • 可從些許事件擴充至即時串流

  • 自訂要連結至現有系統的事件管道

Knative 讓我們的開發人員能專注於建構商業邏輯,而不是擔心如何執行建構、部署、自動調度資源、監控和資源掌控等低階平台功能。例如,我們使用 Java/Vert.x 開發的 T-Mobile 店家搜尋器應用程式,很容易就能透過 Knative 遷移至 GCP。我們之所以能迅速完成遷移,是因為 Knative 提供了大量的平台級功能,讓開發人員省去不少麻煩。

— T-Mobile 首席技術架構設計師 Ram Gopinathan

資源

Google Cloud

開始使用

使用 Knative 建構、部署及管理無伺服器工作負載

按照 Cloud Run 快速入門導覽課程啟動及執行 Knative。如果您是有意提供 Knative 環境的營運人員,請參閱 GitHub 中的安裝指南。