Dipendenze e architettura Kf

Kf richiede Kubernetes e diversi altri progetti OSS per l'esecuzione. Alcune dipendenze sono soddisfatte dei servizi gestiti di Google. Ad esempio, Google Kubernetes Engine (GKE) fornisce Kubernetes.

Dipendenze

Componenti Kf

Kf installa diverse risorse e controller Kubernetes personalizzati. Le risorse personalizzate fungono efficacemente da API Kf e vengono utilizzate dall'interfaccia a riga di comando di kf per interagire con il sistema. I controller utilizzano i CRD di Kf per orchestrare gli altri componenti del sistema.

CRD Kf

Puoi visualizzare i CRD installati e utilizzati da Kf con il seguente comando:

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

L'output di questo 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

App

Le app rappresentano un'applicazione a 12 fattori di cui è stato eseguito il deployment in Kubernetes. Esse comprendono il codice sorgente, la configurazione e lo stato attuale dell'applicazione. Le app sono responsabili della riconciliazione:

  • Build Kf
  • Percorsi Kf
  • Deployment Kubernetes
  • Servizi Kubernetes
  • Account di servizio Kubernetes
  • Secret di Kubernetes

Puoi elencare le app utilizzando Kf o kubectl:

kf apps
kubectl get apps -n space-name

Build

Le build combinano il codice sorgente e la configurazione della build per le app. Esegue il provisioning Tekton TaskRuns con i passaggi corretti per attivare Buildpack V2, Buildpack V3, o Dockerfile.

Puoi elencare le build utilizzando Kf o kubectl:

kf builds
kubectl get builds -n space-name

ClusterServiceBrokers

ClusterServiceBrokers conserva le informazioni di connessione necessarie per estendere Kf con un service broker. Sono responsabili recuperare il catalogo dei servizi forniti dall'intermediario e mostrarli in l'output di kf marketplace.

Puoi elencare ClusterServiceBrokers utilizzando kubectl:

kubectl get clusterservicebrokers

Route

Le route sono una struttura di alto livello che contiene regole di routing HTTP. Sono responsabile della riconciliazione dei servizi virtuali Istio.

Puoi elencare le route utilizzando Kf o kubectl:

kf routes
kubectl get routes -n space-name

ServiceBrokers

ServiceBrokers conserva le informazioni di connessione necessarie per estendere Kf con un service broker. Sono responsabili recuperare il catalogo dei servizi forniti dall'intermediario e mostrarli in l'output di kf marketplace.

Puoi elencare i ServiceBroker utilizzando kubectl:

kubectl get servicebrokers -n space-name

ServiceInstanceBinding

ServiceInstanceBindings contiene i parametri per creare un'associazione su un servizio e le credenziali che l'intermediario restituisce per l'associazione. Sono responsabile di chiamare l'API bind sul broker per vincolare il servizio.

Puoi elencare ServiceInstanceBindings utilizzando Kf o kubectl:

kf bindings
kubectl get serviceinstancebindings -n space-name

ServiceInstance

ServiceInstances contiene i parametri per creare un servizio su un service broker. È responsabile di chiamare l'API di provisioning sul broker per creare completamente gestito di Google Cloud.

Puoi elencare le istanze di servizio utilizzando Kf o kubectl:

kf services
kubectl get serviceinstances -n space-name

Spazi

Gli spazi contengono informazioni di configurazione simili a quelle delle organizzazioni Cloud Foundry e spazi di archiviazione. Sono responsabili di:

  • Creazione dello spazio dei nomi Kubernetes in cui viene eseguito il provisioning delle altre risorse Kf.
  • Creazione di NetworkPolicy Kubernetes per l'applicazione dei criteri di connessione di rete.
  • Blocco della configurazione e dei criteri per build, app e route.

Puoi elencare gli spazi utilizzando Kf o kubectl:

kf spaces
kubectl get spaces

Account di servizio

Kf richiede che il cluster Kubernetes su cui è in esecuzione abbia un account di servizio. L'account di servizio viene utilizzato da Tekton per eseguire l'autenticazione nel Container Registry per il pull e il push delle immagini. Se installi Kf con i modelli CloudBuild, verrà creato un account di servizio Identity and Access Management con l'autorizzazione roles/storage.admin.

Librerie di terze parti

Puoi trovare il codice sorgente e le licenze della libreria di terze parti in /third_party di qualsiasi immagine container Kf.

Puoi anche eseguire kf third-party-licenses per visualizzare le licenze di terze parti per la versione dell'interfaccia a riga di comando Kf che hai scaricato.