Dépendances et architecture de Kf

Kf nécessite Kubernetes et plusieurs autres projets OSS pour s'exécuter. Certaines dépendances sont assurées par les services gérés par Google. Par exemple, Google Kubernetes Engine (GKE) fournit Kubernetes.

Dépendances

Composants Kf

Kf installe plusieurs de ses propres ressources personnalisées et contrôleurs Kubernetes. Les ressources personnalisées servent efficacement d'API Kf et sont utilisées par la CLI kf pour interagir avec le système. Les contrôleurs utilisent les CRD de Kf pour orchestrer les autres composants du système.

CRD Kf

Vous pouvez afficher les CRD installés et utilisés par Kf à l'aide de la commande suivante :

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

Le résultat de cette commande est le suivant :

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

Applications

Les applications représentent des applications douze facteurs déployées sur Kubernetes. Elles englobent le code source, la configuration et l'état actuel de l'application. Les applications sont chargées du rapprochement des éléments suivants :

  • Builds Kf
  • Routes Kf
  • Déploiements Kubernetes
  • Services Kubernetes
  • Comptes de service Kubernetes
  • Secrets Kubernetes

Vous pouvez répertorier les applications à l'aide de Kf ou de kubectl :

kf apps
kubectl get apps -n space-name

Builds

Les builds combinent le code source et la configuration de compilation des applications. Ils indiquent aux exécutions de tâche Tekton la procédure appropriée pour activer un build Buildpack V2, Buildpack V3 ou Dockerfile.

Vous pouvez répertorier les compilations à l'aide de Kf ou de kubectl :

kf builds
kubectl get builds -n space-name

ClusterServiceBrokers

Les agents de service des clusters contiennent les informations de connexion nécessaires pour étendre l'utilisation de Kf avec un agent de service. Ils sont chargés d'extraire le catalogue de services fourni par l'agent et de l'afficher dans le résultat de la commande kf marketplace.

Vous pouvez répertorier les agents de service des clusters à l'aide de kubectl :

kubectl get clusterservicebrokers

Routes

Les routes représentent une structure de haut niveau contenant les règles de routage HTTP. Elles sont chargées du rapprochement des services virtuels Istio.

Vous pouvez répertorier les routes à l'aide de Kf ou de kubectl :

kf routes
kubectl get routes -n space-name

ServiceBrokers

Les agents de service contiennent les informations de connexion nécessaires pour étendre l'utilisation de Kf avec un agent de service. Ils sont chargés d'extraire le catalogue de services fourni par l'agent et de l'afficher dans le résultat de la commande kf marketplace.

Vous pouvez répertorier les agents de service à l'aide de kubectl :

kubectl get servicebrokers -n space-name

ServiceInstanceBinding

Les liaisons d'instances de service contiennent les paramètres permettant de créer une liaison sur un agent de service et les identifiants renvoyés par celui-ci pour la liaison. Elles sont chargées d'appeler l'API de liaison sur l'agent pour lier le service.

Vous pouvez répertorier les liaisons d'instances de service à l'aide de Kf ou de kubectl :

kf bindings
kubectl get serviceinstancebindings -n space-name

ServiceInstance

Les instances de service contiennent les paramètres permettant de créer un service sur un agent de service. Elles sont chargées d'appeler l'API de provisionnement sur l'agent pour lier le service.

Vous pouvez répertorier les instances de service à l'aide de Kf ou de kubectl :

kf services
kubectl get serviceinstances -n space-name

Espaces

Les espaces contiennent des informations de configuration semblables à celles des organisations et des espaces Cloud Foundry. Ils sont chargés des opérations suivantes :

  • Créer l'espace de noms Kubernetes dans lequel d'autres ressources Kf sont provisionnées
  • Créer des règles de réseau Kubernetes pour appliquer les règles de connexion réseau
  • Conserver la configuration et les règles des builds, des applications et des routes

Vous pouvez répertorier les espaces à l'aide de Kf ou de kubectl :

kf spaces
kubectl get spaces

Comptes de service

Kf nécessite le cluster Kubernetes dans lequel il s'exécute pour créer un compte de service. Le compte de service est utilisé par Tekton pour s'authentifier auprès du Container Registry afin de récupérer et de transférer des images. Si vous installez Kf avec les modèles CloudBuild, un compte de service Identity and Access Management sera créé avec l'autorisation roles/storage.admin.

Bibliothèques tierces

Le code source et les licences des bibliothèques tierces se trouvent dans le répertoire /third_party de chaque image de conteneur Kf.

Vous pouvez également exécuter la commande kf third-party-licenses pour afficher les licences tierces correspondant à la version de la CLI Kf que vous avez téléchargée.