Sie können einen Service-Broker (sog. ServiceBroker) bereitstellen, um die verfügbaren Services und Pläne anzuzeigen, eine Instanz anhand der verfügbaren Services und Pläne zu erstellen und Bindungen zu erstellen, um eine Verbindung zur Serviceinstanz herzustellen.
Sie können einen Beispielservice-Broker für die Community bereitstellen, um die Funktion zu testen, oder Ihren eigenen Service-Broker installieren, der auf der Open-Service-Broker-API-Spezifikation basiert.
Sie können den Kubernetes-Beispiel-Service-Broker ups_broker verwenden, um sich einen schnellen Überblick über die Service-Broker-Funktion zu verschaffen. Sie können ihn in Ihrem Cluster als Helm-Diagramm bereitstellen, indem Sie die folgenden Schritte ausführen:
Optional können Sie ein neues Helm-Repository mit dem Namen charts erstellen, in das Sie den Service-Broker herunterladen können. Eine Beschreibung der Prozedur finden Sie unter Helm-Repository hinzufügen.
Wenn Sie ein neues Repository erstellt haben, klonen Sie das Repository, um den Service-Broker in das neue Helm-Repository herunterzuladen.
Wenn Sie kein neues Repositorys erstellt haben, können Sie das Service-Broker-Diagramm in ein vorhandenes Helm-Repository herunterladen. Wenn Sie kein Helm-Repository verwenden möchten, können Sie das Diagramm herunterladen und den Befehl helm install verwenden, um das Diagramm im Cluster zu installieren. Unter Helm-CLI (helm) installieren finden Sie weitere Informationen zum Befehl helm install.
Führen Sie in der Helm-Befehlszeilenschnittstelle den folgenden Helm-Befehl aus, um den Service-Broker bereitzustellen:
helm install charts/ups-broker --name ups-broker --namespace ups-broker
Sie können einen Broker bei einem Service in Ihrem Cluster oder in Ihrem Namensbereich registrieren. Bevor Sie die Services und Pläne zum Erstellen einer Instanz anzeigen können, müssen Sie den Broker im Katalog für Services mit der Ressource ServiceBroker registrieren.
Registrieren Sie einen Service-Broker auf Clusterebene in dem Katalog für Services. Führen Sie die folgenden Schritte aus:
Erstellen Sie eine ServiceBroker-Ressource durch das Erstellen einer Datei broker.yaml, die die Brokerdetails enthält. Sie müssen Werte für den Namen des Brokers (name) und seine URL (url) angeben. Ihre Datei
broker.yaml ähnelt möglicherweise dem folgenden Inhalt:
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ClusterServiceBroker
metadata:
name: ups-broker
spec:
url: http://ups-broker-ups-broker.ups-broker.svc.cluster.local
Führen Sie den folgenden Befehl aus, um die ServiceBroker-Ressource auf Clusterebene zu erstellen:
kubectl create -f broker.yaml
Es wird ein Broker auf Clusterebene erstellt.
Führen Sie die folgenden Schritte aus, um einen Service-Broker auf Namensbereichsebene beim Katalog für Services zu registrieren:
Erstellen Sie eine ServiceBroker-Ressource durch das Erstellen einer Datei ns-broker.yaml, die die Brokerdetails enthält. Sie müssen Werte für name, namespace und url des Brokers angeben. Ihre
Datei ns-broker.yaml ähnelt möglicherweise dem folgenden Inhalt:
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceBroker
metadata:
name: ups-broker
namespace: ns-broker
spec:
url: http://ups-broker-ups-broker.default.svc.cluster.local
Führen Sie den folgenden Befehl aus, um die ServiceBroker-Ressource auf Namensbereichsebene zu erstellen:
kubectl create -f ns-broker.yaml
Es wird ein Broker auf Namensbereichsebene erstellt.
Jeder Service verfügt über eine zugehörige ServiceClass-Ressource und kann über einen oder auch mehrere Pläne verfügen, die ihm zugeordnet sind.
Führen Sie den folgenden Befehl aus, um die registrierten Serviceklassen anzuzeigen:
Zeigen Sie die registrierten Serviceklassen für die Broker auf Clusterebene an:
kubectl get clusterserviceclasses
Zeigen Sie die registrierten Serviceklassen für die Broker auf Namensbereichsebene an:
kubectl get serviceclasses -n ns-broker
Führen Sie den folgenden Befehl aus, um die registrierten Servicepläne anzuzeigen:
Zeigen Sie die registrierten Servicepläne für die Broker auf Clusterebene an:
kubectl get clusterserviceplans
Zeigen Sie die registrierten Servicepläne für die Broker auf Namensbereichsebene an:
kubectl get serviceplans -n ns-broker
Erstellen Sie eine ServiceInstance-Ressource durch das Erstellen einer Datei instance.yaml für einen Service-Broker. Sie müssen eine Instanz einer Serviceklasse erstellen, bevor Ihre Anwendungen sie benutzen können. Führen Sie die folgenden
Schritte aus:
Erstellen Sie in der Datei instance.yaml eine ServiceInstance-Ressource für Ihren Broker auf Clusterebene. Ihre Datei instance.yaml ähnelt möglicherweise dem folgenden Inhalt:
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceInstance
metadata:
name: ups-instance
namespace: test-ns
spec:
clusterServiceClassExternalName: user-provided-service
clusterServicePlanExternalName: default
parameters:
credentials:
name: root
password: letmein
Erstellen Sie die Instanz, indem Sie den folgenden Befehl ausführen:
kubectl create -f instance.yaml
Es wird eine Serviceinstanz für Ihren Cluster-Service-Broker erstellt.
Erstellen Sie in der Datei instance.yaml eine ServiceInstance-Ressource für Ihren Broker auf Namensbereichsebene. Ihre Datei instance.yaml ähnelt möglicherweise dem folgenden Inhalt:
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceInstance
metadata:
name: ups-ns-instance
namespace: ns-broker
spec:
serviceClassExternalName: user-provided-service
servicePlanExternalName: default
parameters:
credentials:
name: root
password: letmein
Erstellen Sie die Instanz, indem Sie den folgenden Befehl ausführen:
kubectl create -f ns-instance.yaml
Es wird eine Serviceinstanz für Ihren Namensbereichs-Service-Broker erstellt.
Sie können Ihre ServiceInstance-Ressourcen über die Befehlszeilenschnittstelle (Command Line Interface, CLI) anzeigen.
Führen Sie die folgenden Schritte aus, um Ihre ServiceInstance-Ressourcen anzuzeigen:
Rufen Sie den Namen des Namensbereichs ab, in dem sich die ServiceInstance-Ressource befindet:
kubectl get serviceinstance -n test-ns
Führen Sie den folgenden Befehl aus, um die Details zu Ihrer Ressource anzuzeigen:
kubectl get serviceinstance ups-instance -n test-ns -o yaml
Sie können Ihre Ressourcen auch über die Managementkonsole anzeigen. Weitere Informationen finden Sie unter Ressourcen im Katalog für Services über die IBM Cloud Private Managementkonsole verwalten.
Führen Sie die folgenden Schritte aus, um die Serviceinstanz (ServiceInstance) an eine Anwendung zu binden:
Erstellen Sie die Datei binding.yaml, mit der die Serviceinstanz an eine Anwendung gebunden wird. Sie müssen name und secretName für die Bindung angeben. Ihre Datei binding.yaml ähnelt möglicherweise
dem folgenden Inhalt:
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceBinding
metadata:
name: <binding_name>
namespace: test-ns
spec:
secretName: <secret_name>
instanceRef:
name: ups-instance
Hinweis: Der Wert für den Parameter namespace der Datei binding.yaml muss denselben Wert wie der Namensbereich der Serviceinstanz haben. Das YAML-Beispiel für die Servicebindung gilt für Ressourcen auf
Clusterebene, aber die YAML-Dateien auf Namensbereichsebene haben dasselbe Format.
Weitere Informationen zu den Pod-Selektor-Bezeichnungen in der Kubernetes-Dokumentation finden Sie unter Labels and Selectors .
Erstellen Sie mit dem folgenden Befehl eine Datei binding.yaml:
kubectl create -f binding.yaml
Der Servicekatalogcontroller erstellt einen geheimen Kubernetes-Schlüssel, der die Verbindungsdetails und Berechtigungsnachweise für die Serviceinstanz enthält.
Führen Sie den folgenden Befehl aus, um die Details Ihrer Datei binding.yaml anzuzeigen:
kubectl get servicebindings service_binding -o yaml
Zeigen Sie die Details des geheimen Schlüssels an, um die Verbindung zu der Anwendung herzustellen. Führen Sie den folgenden Befehl aus:
kubectl get secrets <secret_name> -o yaml
<secret_name> ist der Name des geheimen Schlüssels, der in der Bindung verwendet wird. Ihr <secret_name> ähnelt möglicherweise dem folgenden Inhalt:
apiVersion: v1
data:
. . Secret data to connect to the database instance . .
kind: Secret
metadata:
. . metadata parameters and values . .
type: Opaque
Sie müssen die von Ihnen erstellte Servicebindung (ServiceBinding) löschen, bevor Sie die Bindung einer Instanz an eine Anwendung aufheben können. Nachdem Sie eine Bindung gelöscht haben, wird auch der geheime Schlüssel, den die Bindung verwendet, gelöscht.
Führen Sie den folgenden Befehl aus, um die Bindung einer Instanz aufzuheben:
kubectl delete -n test-ns servicebindings ups-binding
ups-binding ist der Name der Bindung, die entfernt werden soll.Löschen Sie die Serviceinstanz, indem Sie den folgenden Befehl ausführen:
kubectl delete -n test-ns serviceinstances ups-instance
ups-instance ist der Name der Instanz, die gelöscht werden soll.Wenn Sie einen Cluster-Service-Broker (ClusterServiceBroker) löschen möchten, müssen Sie die Registrierung des Brokers aufheben. Führen Sie den folgenden Befehl aus, um die Registrierung des Brokers aufzuheben:
kubectl delete clusterservicebrokers ups-broker
ups-broker ist der Name des Service-Brokers auf Clusterebene. Wenn Sie einen NamespaceServiceBroker löschen möchten, müssen Sie die Registrierung des Brokers aufheben. Führen Sie den folgenden Befehl aus, um die Registrierung des Brokers aufzuheben:
kubectl delete servicebrokers ups-broker -n ns-broker
ups-broker ist der Name des Service-Brokers auf Namensbereichsebene, der gelöscht werden soll.Wenn Sie den Service-Broker-Server bereinigen, müssen Sie die Helm-Bereitstellung löschen. Führen Sie den folgenden Befehl aus, um die Helm-Bereitstellung zu löschen:
helm delete --purge ups-broker
ups-broker ist der Name der Helm-Bereitstellung, die gelöscht werden soll.
Wichtiger Hinweis: Gehen Sie beim Löschen in dieser Reihenfolge vor: Heben Sie die Bindung Ihrer Serviceinstanz auf, löschen Sie Ihre Serviceinstanz, löschen Sie Ihren Service-Broker und löschen Sie Ihre Helm-Bereitstellung.