AWS Service Broker stellt AWS-Dienste über das Open Service Broker (OSB)-Protokoll bereit. Diese Dokumente basieren auf der Dokumentation zu AWS Service Broker. In diesem Dokument werden zwei mögliche Installationen behandelt:
- AWS Service Broker im Kf Kubernetes-Cluster installieren (empfohlen)
- AWS Service Broker in AWS installieren und die API über eine VPC-Bridge verfügbar machen
Vorbereitung
Zusätzlich zu einem Kubernetes-Cluster mit installiertem Kf und Service Catalog (siehe diese Anleitung) müssen die folgenden Tools auf der Workstation installiert sein, auf der Sie die kf
- Befehlszeile verwenden:
helm
: Folgen Sie dieser Anleitung, um diehelm
-Befehlszeile zu installieren.
Methode 1: In GKE installieren
AWS Service Broker wird mithilfe des Helm-Diagramms aus dem Startleitfaden für AWS Service Broker für Kubernetes bereitgestellt.
Infrastruktur
AWS Service Broker benötigt eine DynamoDB-Tabelle und einen IAM-Nutzer, um auf die Tabelle zuzugreifen. Die einfachste Methode besteht darin, die bereitgestellte CloudFormation-Vorlage bereitzustellen. Informationen zur manuellen Installation finden Sie in den erforderlichen Dokumenten.
Helm
Fügen Sie zuerst das Helm-Repository zu Ihrem Computer hinzu:
$ helm repo add aws-sb https://awsservicebroker.s3.amazonaws.com/charts
Stellen Sie dann das Helm-Diagramm bereit und legen Sie die richtigen AWS- accesskeyid
und secretkey
fest:
$ helm install aws-sb/aws-servicebroker \
--name aws-servicebroker \
--namespace aws-sb \
--set aws.secretkey=REPLACEME \
--set aws.accesskeyid=REPLACEME
Wenn Sie nicht möchten, dass der Broker installierte clusterweite Cluster installiert, legen Sie das Flag --set deployNamespacedServiceBroker=true
fest. Damit wird der Broker im bereitgestellten Namespace registriert.
Eine vollständige Liste der Konfigurationsparameter finden Sie in der values.yaml-Definition der Helm-Vorlage.
Überprüfung
Nach der Bereitstellung des Helm-Diagramms sollte eine ClusterServiceBroker
- Ressource erstellt worden sein. Sie können mit kubectl
prüfen:
$ kubectl get ClusterServiceBroker aws-servicebroker
NAME URL STATUS AGE
aws-servicebroker https://aws-servicebroker-aws-servicebroker.aws-sb.svc.cluster.local Ready 3d
Wenn STATUS
nicht bereit ist, ist ein Problem aufgetreten. Folgendes sollten Sie bei der Fehlerbehebung überprüfen:
- Die DynamoDB-Infrastruktur ist aktiviert
- Der AWS-Nutzer hat über Richtlinien oder Gruppen Zugriff auf die DynamoDB-Tabelle
- Die Helm-Diagrammwerte wurden richtig festgelegt
Es kann einige Minuten dauern, bis Ihr Broker bei Service Catalog registriert ist. Sobald der Broker registriert ist, können Sie die bereitgestellten Dienste mit dem Befehl kf marketplace
anzeigen.
Methode 2: Installation in AWS
Die Kehrseite der Installation von AWS Service Broker in einem GKE-Cluster ist die erforderliche Verwendung von AWS-Nutzeranmeldedaten anstelle einer AWS-Rolle. Die einzige erforderliche Kubernetes-Ressource für den AWS Service Broker, um mit Kf zu arbeiten, ist jedoch ClusterServiceBroker, vorausgesetzt, die AWS Service Broker API ist vom GKE-Cluster aus erreichbar.
Für den GKE-Cluster stehen zwei Methoden zur Verfügung:
- Auf die API kann über eine VPN-Brücke zwischen Google Cloud und AWS zugegriffen werden.
- Die API ist öffentlich zugänglich (nicht empfohlen).
In beiden Fällen wird dringend empfohlen, die Service Broker API mit einem vertrauenswürdigen TLS-Zertifikat und Zugriffsanmeldedaten zu sichern.
Sobald auf die API zugegriffen werden kann, kubectl apply
eine ClusterServiceBroker
und eine Kubernetes Secret
, die die Anmeldedaten für die Autorisierung mit Service Broker enthält.
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ClusterServiceBroker
metadata:
name: aws-sb
spec:
# For all configuration options, look at the service catalog's
# type definitions:
# https://github.com/kubernetes-sigs/service-catalog/blob/master/pkg/apis/servicecatalog/v1beta1/types.go#L185
url: https://replace.with.url.to.service.broker
insecureSkipTLSVerify: false # use a trusted TLS certificate
authInfo:
bearer: # or basic
secretRef:
namespace: some-namespace
name: some-secret-name