使用 Knative 服務,自動管理在 Google Kubernetes Engine (GKE) 上代管軟體所需的基礎架構。如要管理應用程式,Knative serving 會使用稱為「資源模型」的組織結構。這個資源模型包含三個主要部分:服務、修訂版本和容器執行個體。
下圖說明這些元件及其互動: Google Cloud 專案包含兩個 Knative 服務,分別是 Service A 和 Service B,各有幾個修訂版本。服務 A 正在處理要求,且有多個容器執行個體正在執行,而服務 B 處於閒置狀態。
Knative serving 服務
「服務」是 Knative serving 的主要資源。各項服務均位於特定的 GKE 叢集命名空間。
特定 Google Cloud 專案可在不同地區或 GKE 叢集中執行多項服務。
每個服務都會公開一個不重複的端點,並自動調度基礎架構資源來處理傳入的要求。
Knative serving 修訂版本
每次部署服務都會建立一個修訂版本。修訂版本由特定容器映像檔和環境設定組成,例如環境變數、記憶體上限或並行值。
修訂版本不可變更,且一旦建立就無法修改。舉例來說,當您將容器映像檔部署到新的 Knative serving 服務時,系統就會建立第一個修訂版本。如果您將不同的容器映像檔部署到同一個服務,系統便會建立第二個修訂版本。如果您之後設定環境變數,那系統就會建立第三個修訂版本。後續每次變更設定時,系統都會建立新的修訂版本。
系統會自動盡快將要求轉送到最新且健康狀態良好的服務修訂版本。您可以視需要將流量拆分給不同修訂版本。
Knative serving 容器執行個體
接收要求的每個修訂版本都會根據處理這些要求所需的容器執行個體數目,自動調度資源。請注意,容器執行個體可同時接收多個要求。您可以使用並行設定設定可同時傳送至特定容器執行個體的要求數目上限。