O Kf requer o Kubernetes e vários outros projetos OSS para funcionar. Algumas das dependências são atendidas com os serviços gerenciados do Google. Por exemplo, o Google Kubernetes Engine (GKE) fornece o Kubernetes.
Dependências
Componentes do Kf
O Kf instala vários dos próprios recursos personalizados e controladores do Kubernetes.
Os recursos personalizados servem efetivamente como a API Kf e são usados pela CLI do kf para interagir com o sistema.
Os controladores usam CRDs do Kf para orquestrar os outros componentes no sistema.
CRDs do Kf
Use este comando para conferir as CRDs instaladas e usadas pelo Kf:
kubectl api-resources --api-group=kf.devA saída desse comando é:
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
Apps
Os apps representam um aplicativo de 12 fatores implantado no Kubernetes. Eles abrangem código-fonte, configuração e estado atual do aplicativo. Os apps são responsáveis por reconciliar:
- Builds do Kf
- Rotas do Kf
- Implantações do Kubernetes
- Serviços do Kubernetes
- Contas de serviço do Kubernetes
- Secrets do Kubernetes
É possível listar apps usando o Kf ou o kubectl:
kf appskubectl get apps -n space-name
Builds
Os builds combinam o código-fonte e a configuração de build dos apps. Eles provisionam execuções de tarefa do Tekton com as etapas corretas para acionar um build de buildpack da V2, buildpack da V3 ou Dockerfile.
É possível listar builds usando o Kf ou o kubectl:
kf buildskubectl get builds -n space-name
ClusterServiceBrokers
ClusterServiceBrokers contêm as informações de conexão necessárias para estender
o Kf com um agente de serviços. Eles são responsáveis por fazer buscas
no catálogo de serviços que o agente fornece
e exibir os resultados na saída de kf marketplace.
É possível listar ClusterServiceBrokers usando kubectl:
kubectl get clusterservicebrokersRotas
As rotas são uma estrutura de alto nível que contém regras de roteamento HTTP. Elas são responsáveis por reconciliar os VirtualServices do Istio.
É possível listar rotas usando o Kf ou o kubectl:
kf routeskubectl get routes -n space-name
ServiceBrokers
Os ServiceBrokers contêm as informações de conexão necessárias para estender
o Kf com um agente de serviços. Eles são responsáveis por fazer buscas
no catálogo de serviços que o agente fornece
e exibir os resultados na saída de kf marketplace.
É possível listar ServiceBrokers usando kubectl:
kubectl get servicebrokers -n space-nameServiceInstanceBinding
ServiceInstanceBindings contêm os parâmetros para criar uma vinculação em um agente de serviços e as credenciais que ele retorna para essa vinculação. Elas são responsáveis por chamar a API de vinculação no agente para vincular o serviço.
É possível listar ServiceInstanceBindings usando o Kf ou o kubectl:
kf bindingskubectl get serviceinstancebindings -n space-name
ServiceInstance
ServiceInstances contêm os parâmetros para criar um serviço em um agente de serviços. Elas são responsáveis por chamar a API de provisionamento no agente para criar o serviço.
É possível listar ServiceInstances usando o Kf ou o kubectl:
kf serviceskubectl get serviceinstances -n space-name
Espaços
Os espaços contêm informações de configuração semelhantes às organizações e aos espaços do Cloud Foundry. Eles são responsáveis por:
- Criar o namespace do Kubernetes para o qual outros recursos do Kf são provisionados.
- Criar NetworkPolicies do Kubernetes para aplicar políticas de conexão de rede.
- Manter a configuração e a política de builds, apps e rotas.
Você pode listar espaços usando o Kf ou o kubectl:
kf spaceskubectl get spaces
Contas de serviço
O Kf requer que o cluster do Kubernetes em que ele está sendo executado tenha uma conta de serviço.
O Tekton usa a conta de serviço para autenticar-se no registro de contêineres a fim de extrair e enviar imagens.
Se você instalar o Kf com os modelos do CloudBuild, ele vai criar uma conta de serviço do Identity and Access Management com a permissão roles/storage.admin.
Bibliotecas de terceiros
É possível encontrar códigos-fonte e licenças de bibliotecas de terceiros no diretório /third_party
de qualquer imagem de contêiner do Kf.
Também é possível executar kf third-party-licenses para conferir as licenças de terceiros da
versão da CLI do Kf baixada.