Dependências e arquitetura do Kf

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.dev

A 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 os apps usando o Kf ou o kubectl:

kf apps
kubectl 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 builds
kubectl get builds -n space-name

ClusterServiceBrokers

Os 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 clusterservicebrokers

Rotas

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 routes
kubectl 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-name

ServiceInstanceBinding

ServiceInstanceBindings contêm os parâmetros para criar uma vinculação a um agente de serviços e as credenciais que ele retorna para essa vinculação. Eles são responsáveis por chamar a API vinculada no agente para vincular o serviço.

É possível listar ServiceInstanceBindings usando o Kf ou o kubectl:

kf bindings
kubectl get serviceinstancebindings -n space-name

ServiceInstance

ServiceInstances contêm os parâmetros para criar um serviço em um agente de serviços. Eles 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 services
kubectl 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 onde os outros recursos do Kf serã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 spaces
kubectl get spaces

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.