Para ejecutar Kf, se necesitan Kubernetes y otros proyectos de software libre. Algunas de las dependencias se satisfacen con servicios gestionados por Google. Por ejemplo, Google Kubernetes Engine (GKE) proporciona Kubernetes.
Dependencias
Componentes de Kf
Kf instala varios de sus propios recursos personalizados y controladores de Kubernetes.
Los recursos personalizados actúan como la API de Kf y la CLI de kf
los usa para interactuar con el sistema.
Los controladores usan los CRDs de Kf para orquestar los demás componentes del sistema.
CRDs de Kf
Puedes ver los CRDs instalados y utilizados por Kf con el siguiente comando:
kubectl api-resources --api-group=kf.dev
El resultado de ese comando es el siguiente:
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
Aplicaciones
Las aplicaciones representan una aplicación de doce factores desplegada en Kubernetes. Incluyen el código fuente, la configuración y el estado actual de la aplicación. Las aplicaciones son responsables de conciliar lo siguiente:
- Compilaciones de Kf
- Rutas de Kf
- Despliegues de Kubernetes
- Servicios de Kubernetes
- Cuentas de servicio de Kubernetes
- Secretos de Kubernetes
Puedes enumerar las aplicaciones con Kf o kubectl
:
kf apps
kubectl get apps -n space-name
Compilaciones
Las compilaciones combinan el código fuente y la configuración de compilación de las aplicaciones. Proporcionan TaskRuns de Tekton con los pasos correctos para activar una compilación de Buildpack V2, Buildpack V3 o Dockerfile.
Puedes enumerar las compilaciones con Kf o kubectl
:
kf builds
kubectl get builds -n space-name
ClusterServiceBrokers
ClusterServiceBrokers contiene la información de conexión necesaria para ampliar Kf con un agente de servicio. Se encargan de obtener el catálogo de servicios que ofrece el agente y de mostrarlo en el resultado de kf marketplace
.
Puedes mostrar ClusterServiceBrokers con kubectl
:
kubectl get clusterservicebrokers
Rutas
Las rutas son una estructura de alto nivel que contiene reglas de enrutamiento HTTP. Son responsables de conciliar los VirtualServices de Istio.
Puedes enumerar las rutas con Kf o kubectl
:
kf routes
kubectl get routes -n space-name
ServiceBrokers
Los ServiceBrokers contienen la información de conexión necesaria para ampliar Kf con un ServiceBroker. Se encargan de obtener el catálogo de servicios que ofrece el agente y de mostrarlo en el resultado de kf marketplace
.
Puedes enumerar los ServiceBrokers con kubectl
:
kubectl get servicebrokers -n space-name
ServiceInstanceBinding
ServiceInstanceBindings contiene los parámetros para crear un enlace en un agente de servicio y las credenciales que devuelve el agente para el enlace. Son responsables de llamar a la API de vinculación en el intermediario para vincular el servicio.
Puedes enumerar ServiceInstanceBindings con Kf o kubectl
:
kf bindings
kubectl get serviceinstancebindings -n space-name
ServiceInstance
ServiceInstances contiene los parámetros para crear un servicio en un agente de servicio. Son responsables de llamar a la API de aprovisionamiento en el broker para crear el servicio.
Puedes enumerar ServiceInstances con Kf o kubectl
:
kf services
kubectl get serviceinstances -n space-name
Espacios
Los espacios contienen información de configuración similar a las organizaciones y los espacios de Cloud Foundry. Sus responsabilidades son las siguientes:
- Crear el espacio de nombres de Kubernetes en el que se aprovisionan otros recursos de Kf.
- Crear NetworkPolicies de Kubernetes para aplicar políticas de conexión de red.
- Contiene la configuración y las políticas de compilaciones, aplicaciones y rutas.
Puedes enumerar los espacios con Kf o kubectl
:
kf spaces
kubectl get spaces
Cuentas de servicio
Kf requiere que el clúster de Kubernetes en el que se ejecuta tenga una cuenta de servicio.
Tekton usa la cuenta de servicio para autenticarse en el registro de contenedores y extraer e insertar imágenes.
Si instalas Kf con las plantillas de Cloud Build, se creará una cuenta de servicio de gestión de identidades y accesos con el permiso roles/storage.admin
.
Bibliotecas de terceros
El código fuente y las licencias de las bibliotecas de terceros se pueden encontrar en el directorio /third_party
de cualquier imagen de contenedor de Kf.
También puedes ejecutar kf third-party-licenses
para ver las licencias de terceros de la versión de la CLI de Kf que has descargado.