Kf 依附元件和架構

Kf 需要 Kubernetes 和其他幾個開放原始碼專案才能執行。部分依附元件可由 Google 管理服務滿足。舉例來說,Google Kubernetes Engine (GKE) 提供 Kubernetes。

依附元件

Kf 元件

Kf 會安裝多個自有的 Kubernetes 自訂資源控制器。自訂資源實際上可做為 Kf API,並由 kf CLI 用於與系統互動。控制器會使用 Kf 的 CRD 來協調系統中的其他元件。

Kf CRD

您可以使用下列指令,查看 Kf 安裝及使用的 CRD:

kubectl api-resources --api-group=kf.dev

該指令的輸出結果如下:

NAME                      SHORTNAMES   APIGROUP   NAMESPACED   KIND
apps                                   kf.dev     true         App
builds                                 kf.dev     true         Build
clusterservicebrokers                  kf.dev     false        ClusterServiceBroker
routes                                 kf.dev     true         Route
servicebrokers                         kf.dev     true         ServiceBroker
serviceinstancebindings                kf.dev     true         ServiceInstanceBinding
serviceinstances                       kf.dev     true         ServiceInstance
spaces                                 kf.dev     false        Space

應用程式

應用程式代表部署至 Kubernetes 的十二因子應用程式。這些檔案包含原始碼、設定和應用程式的目前狀態。應用程式負責協調以下項目:

  • Kf 建構
  • Kf 路線
  • Kubernetes 部署
  • Kubernetes 服務
  • Kubernetes 服務帳戶
  • Kubernetes 密鑰

您可以使用 Kf 或 kubectl 列出應用程式:

kf apps
kubectl get apps -n space-name

建構版本

建構作業會結合應用程式的原始碼和建構設定。這些檔案會為 Tekton TaskRun 佈建正確的步驟,以便啟動 Buildpack V2、Buildpack V3 或 Dockerfile 建構作業。

您可以使用 Kf 或 kubectl 列出建構:

kf builds
kubectl get builds -n space-name

ClusterServiceBrokers

ClusterServiceBrokers 會保留使用服務代理程式擴充 Kf 所需的連線資訊。負責擷取代理程式提供的服務目錄,並在 kf marketplace 的輸出內容中顯示這些目錄。

您可以使用 kubectl 列出 ClusterServiceBrokers:

kubectl get clusterservicebrokers

路徑

路由是包含 HTTP 轉送規則的高階結構。負責協調 Istio VirtualServices。

您可以使用 Kf 或 kubectl 列出路徑:

kf routes
kubectl get routes -n space-name

ServiceBrokers

服務代理程式會保留用於透過服務代理程式擴充 Kf 所需的連線資訊。負責擷取代理程式提供的服務目錄,並在 kf marketplace 的輸出內容中顯示這些目錄。

您可以使用 kubectl 列出 ServiceBrokers:

kubectl get servicebrokers -n space-name

ServiceInstanceBinding

ServiceInstanceBindings 會保留在服務代理程式上建立繫結的參數,以及代理程式為繫結傳回的憑證。這些類別負責在仲介器上呼叫 bind API,以便繫結服務。

您可以使用 Kf 或 kubectl 列出 ServiceInstanceBindings:

kf bindings
kubectl get serviceinstancebindings -n space-name

ServiceInstance

服務執行個體會保留在服務中介服務上建立服務的參數。負責在仲介上呼叫佈建 API,以建立服務。

您可以使用 Kf 或 kubectl 列出 ServiceInstance:

kf services
kubectl get serviceinstances -n space-name

Spaces

空間會保留設定資訊,類似於 Cloud Foundry 機構和空間。負責處理以下事項:

  • 建立其他 Kf 資源會佈建至其中的 Kubernetes 命名空間。
  • 建立 Kubernetes NetworkPolicies,以便強制執行網路連線政策。
  • 保留建構、應用程式和路徑的設定和政策。

您可以使用 Kf 或 kubectl 列出聊天室:

kf spaces
kubectl get spaces

服務帳戶

Kf 需要在執行的 Kubernetes 叢集中具備服務帳戶。Tekton 會使用服務帳戶向容器登錄進行驗證,以便提取及推送映像檔。如果您使用 CloudBuild 範本安裝 Kf,系統會建立具有 roles/storage.admin 權限的 Identity and Access Management Service Account

第三方程式庫

您可以在任何 Kf 容器映像檔的 /third_party 目錄中,找到第三方程式庫的原始碼和授權。

您也可以執行 kf third-party-licenses,查看所下載 Kf CLI 版本的第三方授權。