Kf-Abhängigkeiten und -Architektur

Für Kf ist Kubernetes und mehrere andere OSS-Projekte erforderlich. Einige Abhängigkeiten sind mit den von Google verwalteten Diensten erfüllt. Google Kubernetes Engine (GKE) bietet beispielsweise Kubernetes.

Abhängigkeiten

Kf-Komponenten

kf installiert einige seiner eigenen benutzerdefinierten Ressourcen und Controller von Kubernetes. Die benutzerdefinierten Ressourcen dienen effektiv als Kf API und werden von der kf-Befehlszeile verwendet, um mit dem System zu interagieren. Die Controller verwenden die CRDs von Kf, um die anderen Komponenten im System zu orchestrieren.

Kf CRDs

Mit dem folgenden Befehl können Sie die von Kf installierten und verwendeten CRDs anzeigen lassen:

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

Die Ausgabe dieses Befehls lautet:

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

Anwendungen stellen eine Twelve-Factor-Anwendung in Kubernetes bereit. Sie umfassen Quellcode, Konfiguration und den aktuellen Status der Anwendung. Apps müssen für den Abgleich verwendet werden:

  • Kf-Builds
  • Kf-Routes
  • Kubernetes-Deployments
  • Kubernetes-Dienste
  • Kubernetes-Dienstkonten
  • Kubernetes-Secrets

Sie können Anwendungen mithilfe von Kf oder kubectl auflisten:

kf apps
kubectl get apps -n space-name

Builds

Builds kombinieren den Quellcode und die Build-Konfiguration für Anwendungen. Sie stellen Tekton TaskRuns mit den richtigen Schritten bereit, mit denen ein Buildpack V2, Buildpack V3 oder Dockerfile-Build erstellt wird.

Sie können Builds mit Kf oder kubectl auflisten:

kf builds
kubectl get builds -n space-name

ClusterServiceBrokers

ClusterServiceBrokers enthalten die erforderlichen Verbindungsinformationen, um Kf mit einem Service Broker zu erweitern. Sie sind dafür verantwortlich, den Katalog der Dienste, die der Broker bereitstellt, abzurufen und in der Ausgabe von kf marketplace anzuzeigen.

Sie können ClusterServiceBrokers mit kubectl auflisten:

kubectl get clusterservicebrokers

Routen

Routen sind eine allgemeine Struktur, die HTTP-Routingregeln enthält. Sie sind für den Abgleich von Istio VirtualServices verantwortlich.

Sie können Routes mit Kf oder kubectl auflisten:

kf routes
kubectl get routes -n space-name

ServiceBrokers

ServiceBrokers enthalten die erforderlichen Verbindungsinformationen, um Kf mit einem Service Broker zu erweitern. Sie sind dafür verantwortlich, den Katalog der Dienste, die der Broker bereitstellt, abzurufen und in der Ausgabe von kf marketplace anzuzeigen.

Sie können ServiceBrokers mit kubectl auflisten:

kubectl get servicebrokers -n space-name

ServiceInstanceBinding

ServiceInstanceBindings enthalten die Parameter zum Erstellen einer Bindung für einen Dienstbroker und die Anmeldedaten, die der Broker für die Bindung zurückgibt. Sie sind für den Aufruf der bind API auf dem Broker verantwortlich, um den Dienst zu binden.

Sie können ServiceInstanceBindings mit Kf oder kubectl auflisten:

kf bindings
kubectl get serviceinstancebindings -n space-name

ServiceInstance

ServiceInstances enthalten die Parameter zum Erstellen eines Dienstes in einem Service Broker. Sie müssen die Provisioning API auf dem Broker aufrufen, um den Dienst zu erstellen.

Sie können ServiceInstances mit Kf oder kubectl auflisten:

kf services
kubectl get serviceinstances -n space-name

Spaces

Spaces enthalten Konfigurationsinformationen, die den Cloud Foundry-Organisationen und -Bereichen ähneln. Sie sind verantwortlich für:

  • das Erstellen des Kubernetes-Namespace, in dem andere Kf-Ressourcen bereitgestellt werden.
  • das Erstellen der Kubernetes-NetworkPolicies, um Netzwerkverbindungsrichtlinien zu erzwingen.
  • das Halten der Konfiguration und Richtlinie für Builds, Anwendungen und Routen.

Sie können Spaces mit Kf oder kubectl auflisten:

kf spaces
kubectl get spaces

Dienstkonten

Für Kf muss der Kubernetes-Cluster, in dem es ausgeführt wird, ein Dienstkonto haben. Das Dienstkonto wird von Tekton für die Authentifizierung bei der Container Registry verwendet, um Images abzurufen und zu übertragen. Wenn Sie Kf mit den CloudBuild-Vorlagen installieren, wird ein Identity and Access Management-Dienstkonto mit der Berechtigung roles/storage.admin erstellt.

Bibliotheken von Drittanbietern

Quellcode und Lizenzen von Drittanbietern finden Sie im Verzeichnis /third_party eines beliebigen Kf-Container-Images.

Sie können auch kf third-party-licenses ausführen, um die Drittanbieterlizenzen für die heruntergeladene Version der Kf CLI anzuzeigen.