Kf 需要 Kubernetes 和其他几个 OSS 项目才能运行。其中一些依赖项与 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 Builds
- Kf Routes
- Kubernetes 部署
- Kubernetes Service
- Kubernetes ServiceAccounts
- Kubernetes Secret
您可以使用 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 包含使用 Service Broker 扩展 Kf 所需的连接信息。它们负责获取代理提供的服务目录并将其显示在 kf marketplace
的输出中。
您可以使用 kubectl
列出 ClusterServiceBrokers:
kubectl get clusterservicebrokers
路由
路由是包含 HTTP 路由规则的高级结构。它们负责协调 Istio VirtualService。
您可以使用 Kf 或 kubectl
列出路线:
kf routes
kubectl get routes -n space-name
ServiceBrokers
ServiceBrokers 包含使用 Service Broker 扩展 Kf 所需的连接信息。它们负责获取代理提供的服务目录并将其显示在 kf marketplace
的输出中。
您可以使用 kubectl
列出 ServiceBrokers:
kubectl get servicebrokers -n space-name
ServiceInstanceBinding
ServiceInstanceBinding 包含用来在 Service Broker 上创建绑定的参数以及该代理为绑定返回的凭据。它们负责对代理调用 Bind API 来绑定服务。
您可以使用 Kf 或 kubectl
列出 ServiceInstanceBindings:
kf bindings
kubectl get serviceinstancebindings -n space-name
ServiceInstance
ServiceInstances 包含用来在 Service Broker 上创建服务的参数。它们负责在代理上调用 Provision API 以创建服务。
您可以使用 Kf 或 kubectl
列出 ServiceInstances:
kf services
kubectl get serviceinstances -n space-name
Spaces
Spaces 包含与 Cloud Foundry 组织和空间类似的配置信息。他们负责:
- 创建要在其中预配其他 Kf 资源的 Kubernetes 命名空间。
- 创建 Kubernetes NetworkPolicies 以强制执行网络连接政策。
- 保留构建作业、应用和路由的配置和政策。
您可以使用 Kf 或 kubectl
列出空间:
kf spaces
kubectl get spaces
服务账号
Kf 要求运行它的 Kubernetes 集群具有服务账号。Tekton 使用该服务账号向 Container Registry 进行身份验证以拉取和推送映像。如果您使用 CloudBuild 模板安装 Kf,它将创建一个具有 roles/storage.admin
权限的 Identity and Access Management 服务账号。
第三方库
如需查看第三方库源代码和许可,请参阅任何 Kf 容器映像的 /third_party
目录。
您还可以运行 kf third-party-licenses
,以查看已下载的 Kf CLI 版本的第三方许可。