O Kf requer o Kubernetes e vários outros projetos OSS para serem executados. Algumas das dependências estão satisfeitas com os serviços gerenciados do Google. Por exemplo, o Google Kubernetes Engine (GKE) fornece o Kubernetes.
Dependências
Componentes 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 kf
para interagir com o sistema.
Os controladores usam CRDs do Kf para orquestrar os outros componentes no sistema.
CRDs Kf
É possível ver os CRDs instalados e usados pelo Kf com o seguinte comando:
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 aplicativos representam um aplicativo de 12 fatores implantado no Kubernetes. Eles abrangem código-fonte, configuração e o estado atual do aplicativo. Os apps são responsáveis por reconciliar:
- Versões do kf
- Rotas do kf
- Implantações do Kubernetes
- Serviços do Kubernetes
- Contas de Serviço Kubernetes
- Secrets do Kubernetes
É possível listar apps usando Kf ou kubectl
:
kf apps
kubectl get apps -n space-name
Versões
As versões combinam o código-fonte e a configuração da compilação para aplicativos. Elas provisionam Execuções de tarefa Tekton com as etapas corretas para acionar uma versão Buildpack V2, Buildpack V3 ou Dockerfile.
É possível listar builds usando Kf ou kubectl
:
kf builds
kubectl get builds -n space-name
ClusterServiceBrokers
O 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
buscar o catálogo de serviços que o agente fornece e exibi-los 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 o VirtualServices do Istio.
É possível listar rotas usando Kf ou 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
buscar o catálogo de serviços que o agente fornece e exibi-los na
saída de kf marketplace
.
É possível listar o ServiceBrokers usando kubectl
:
kubectl get servicebrokers -n space-name
ServiceInstanceBinding
ServiceInstanceBindings contêm os parâmetros para criar uma vinculação em um agente de serviços e as credenciais que o agente retorna para a vinculação. Elas são responsáveis por chamar a API vinculada no agente para vincular o serviço.
É possível listar ServiceInstanceBindings usando Kf ou 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. Elas são responsáveis por chamar a API de provisionamento no agente para criar o serviço.
É possível listar ServiceInstances usando Kf ou kubectl
:
kf services
kubectl get serviceinstances -n space-name
Spaces
Os espaços contêm informações de configuração semelhantes às organizações e 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 Kf ou kubectl
:
kf spaces
kubectl 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.
A conta de serviço é usada pela Tekton para autenticar o registro de contêineres para extrair e enviar imagens.
Se você instalar o Kf com os modelos do CloudBuild, ele criará uma conta de serviço de gerenciamento de identidade e acesso com a permissão roles/storage.admin
.
Bibliotecas de terceiros
O código-fonte e as licenças da biblioteca de terceiros podem ser encontrados no diretório /third_party
de qualquer imagem de contêiner Kf.
Também é possível executar kf third-party-licenses
para ver as licenças de terceiros da versão da CLI do Kf transferida por download.