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 版本的第三方授權。