Dependências e arquitetura do Kf

O Kf requer o Kubernetes e vários outros projetos de software de código aberto para ser executado. Algumas das dependências são satisfeitas com os serviços geridos pela Google. Por exemplo, o Google Kubernetes Engine (GKE) fornece o Kubernetes.

Dependências

Kf Components

O Kf instala vários dos seus próprios recursos personalizados e controladores do Kubernetes. Os recursos personalizados servem efetivamente como a API Kf e são usados pela CLI kf para interagir com o sistema. Os controladores usam os CRDs do Kf para orquestrar os outros componentes no sistema.

CRDs do Kf

Pode ver os CRDs instalados e usados pelo Kf com o seguinte comando:

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

O resultado 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

As apps representam uma aplicação de doze fatores implementada no Kubernetes. Abrangem o código-fonte, a configuração e o estado atual da aplicação. As apps são responsáveis pela conciliação dos seguintes elementos:

  • Kf Builds
  • Rotas Kf
  • Implementações do Kubernetes
  • Serviços do Kubernetes
  • ServiceAccounts do Kubernetes
  • Segredos do Kubernetes

Pode listar apps através de Kf ou kubectl:

kf apps
kubectl get apps -n space-name

Compilações

As compilações combinam o código-fonte e a configuração de compilação para apps. Aprovisionam TaskRuns do Tekton com os passos corretos para acionar uma compilação de Buildpack V2, Buildpack V3 ou Dockerfile.

Pode listar as compilações através de Kf ou kubectl:

kf builds
kubectl get builds -n space-name

ClusterServiceBrokers

Os ClusterServiceBrokers contêm as informações de ligação necessárias para expandir o Kf com um agente de serviços. São responsáveis por obter o catálogo de serviços que o agente fornece e apresentá-los no resultado de kf marketplace.

Pode listar ClusterServiceBrokers através do comando kubectl:

kubectl get clusterservicebrokers

Trajetos

As rotas são uma estrutura de nível superior que contém regras de encaminhamento HTTP. São responsáveis por conciliar os VirtualServices do Istio.

Pode listar rotas através de Kf ou kubectl:

kf routes
kubectl get routes -n space-name

ServiceBrokers

Os ServiceBrokers contêm as informações de ligação necessárias para expandir o Kf com um agente de serviços. São responsáveis por obter o catálogo de serviços que o agente fornece e apresentá-los no resultado de kf marketplace.

Pode listar ServiceBrokers através de kubectl:

kubectl get servicebrokers -n space-name

ServiceInstanceBinding

Os ServiceInstanceBindings contêm os parâmetros para criar uma associação num agente de serviços e as credenciais que o agente devolve para a associação. São responsáveis por chamar a API de associação no agente para associar o serviço.

Pode listar ServiceInstanceBindings através do Kf ou do kubectl:

kf bindings
kubectl get serviceinstancebindings -n space-name

ServiceInstance

As ServiceInstances contêm os parâmetros para criar um serviço num mediador de serviços. São responsáveis por chamar a API de aprovisionamento no agente para criar o serviço.

Pode listar ServiceInstances através do Kf ou do 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. São responsáveis por:

  • Criar o espaço de nomes do Kubernetes no qual outros recursos do Kf são aprovisionados.
  • Criar NetworkPolicies do Kubernetes para aplicar políticas de ligação de rede.
  • Contém a configuração e a política para compilações, apps e rotas.

Pode listar espaços através do Kf ou do kubectl:

kf spaces
kubectl get spaces

Contas de serviço

O Kf requer que o cluster do Kubernetes em que está a ser executado tenha uma conta de serviço. A conta de serviço é usada pelo Tekton para fazer a autenticação no registo de contentores para extrair e enviar imagens. Se instalar o Kf com os modelos do Cloud Build, é criada uma conta de serviço de gestão de identidade e de acesso com a autorização roles/storage.admin.

Bibliotecas de terceiros

Pode encontrar o código fonte e as licenças de bibliotecas de terceiros no /third_party diretório de qualquer imagem de contentor do Kf.

Também pode executar kf third-party-licenses para ver as licenças de terceiros da versão da CLI Kf que transferiu.