Knative Serving 架構¶
Knative Serving 由多個元件組成,這些元件構成了無伺服器平台的主幹。此頁面說明 Knative Serving 的高階架構。請同時參閱Knative Serving 概觀和請求流程以取得其他資訊。
圖表¶
元件¶
元件 | 職責 |
---|---|
啟動器 | 啟動器是資料層的一部分。它負責將傳入的請求排入佇列(如果 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。請參閱安裝文件以取得更多資訊。
- 每個網路層都有一個控制器,負責監看
KIngress
資源並相應地設定Ingress Gateway
。它也會透過此資源回報status
資訊。 Ingress Gateway
用於將請求路由至activator
或直接路由至 Knative 服務 Pod,具體取決於模式(proxy/serve,請參閱這裡以取得更多詳細資訊)。Ingress Gateway
正在處理來自叢集內部和叢集外部的請求。- 為了使
Ingress Gateway
可以從叢集外部存取,必須使用type: LoadBalancer
或type: NodePort
的 Kubernetes 服務公開。社群支援的網路層將此包含在安裝中。然後,將 DNS 設定為指向Ingress Gateway
的IP
或名稱
注意
請注意,如果您確實使用/設定 DNS,您也應該為 Knative 設定相同網域。
自動調整¶
您可以在這裡找到有關我們自動調整機制的更詳細資訊。