跳至內容

Knative Serving 架構

Knative Serving 由多個元件組成,這些元件構成了無伺服器平台的主幹。此頁面說明 Knative Serving 的高階架構。請同時參閱Knative Serving 概觀請求流程以取得其他資訊。

圖表

Knative Serving Architecture

元件

元件 職責
啟動器 啟動器是資料層的一部分。它負責將傳入的請求排入佇列(如果 Knative 服務縮放為零)。它會與自動調整器通訊,以將縮放為零的服務重新啟動並轉發排隊的請求。啟動器也可以充當請求緩衝區,以處理流量突增。其他詳細資訊請參閱這裡
自動調整器 自動調整器負責根據設定、指標和傳入的請求來調整 Knative 服務的規模。
控制器 控制器會管理叢集中 Knative 資源的狀態。它會監看多個物件、管理相依資源的生命週期,並更新資源狀態。
Queue-Proxy Queue-Proxy 是 Knative 服務 Pod 中的 sidecar 容器。它負責收集指標,並在將請求轉發至使用者的容器時強制執行所需的並行處理。如有必要,它也可以充當佇列,與啟動器類似。
Webhooks Knative Serving 有多個 webhook 負責驗證和變更 Knative 資源。

網路層和 Ingress

注意

在這種情況下,Ingress 並不是指Kubernetes Ingress 資源。它指的是將外部存取權限公開給叢集上資源的概念。

Knative Serving 依賴滿足Knative 網路規格網路層。為此,Knative Serving 定義了內部 KIngress 資源,該資源充當不同多個可插拔網路層的抽象。目前,社群提供三個可用的網路層並提供支援

流量和 DNS

注意

不同的網路層之間存在細微的差異,以下章節描述一般概念。此外,有多種方法可以公開您的 Ingress Gateway 並設定 DNS。請參閱安裝文件以取得更多資訊。

Knative Serving Architecture Ingress

  • 每個網路層都有一個控制器,負責監看 KIngress 資源並相應地設定 Ingress Gateway。它也會透過此資源回報 status 資訊。
  • Ingress Gateway 用於將請求路由至 activator 或直接路由至 Knative 服務 Pod,具體取決於模式(proxy/serve,請參閱這裡以取得更多詳細資訊)。Ingress Gateway 正在處理來自叢集內部和叢集外部的請求。
  • 為了使 Ingress Gateway 可以從叢集外部存取,必須使用 type: LoadBalancertype: NodePort 的 Kubernetes 服務公開。社群支援的網路層將此包含在安裝中。然後,將 DNS 設定為指向 Ingress GatewayIP名稱

注意

請注意,如果您確實使用/設定 DNS,您也應該為 Knative 設定相同網域

自動調整

您可以在這裡找到有關我們自動調整機制的更詳細資訊。

我們使用分析和 Cookie 來了解網站流量。為了達到該目的,您使用我們網站的資訊會與 Google 分享。瞭解更多。