Auf dieser Seite erfahren Sie, wie Sie Kf Cloud Service Broker für Google Cloud implementieren und zur Bereitstellung oder Aufhebung der Bereitstellung von Sicherungsressourcen verwenden. Weitere Informationen zu Kf Cloud Service Broker finden Sie unter Konzepte und Architektur.
Umgebungsvariablen erstellen
Linux
export PROJECT_ID=YOUR_PROJECT_ID export CLUSTER_PROJECT_ID=YOUR_PROJECT_ID export CLUSTER_NAME=kf-cluster export INSTANCE_NAME=cloud-service-broker export COMPUTE_REGION=us-central1
Windows Powershell
Set-Variable -Name PROJECT_ID -Value YOUR_PROJECT_ID Set-Variable -Name CLUSTER_PROJECT_ID -Value YOUR_PROJECT_ID Set-Variable -Name CLUSTER_NAME -Value kf-cluster Set-Variable -Name INSTANCE_NAME -Value cloud-service-broker Set-Variable -Name COMPUTE_REGION -Value us-central1
Kf Cloud Service Broker-Datenbank einrichten
Cloud SQL for MySQL-Instanz erstellen
gcloud sql instances create ${INSTANCE_NAME} --cpu=2 --memory=7680MB --require-ssl --region=${COMPUTE_REGION}
Erstellen Sie eine Datenbank mit dem Namen
servicebroker
in der Cloud SQL for MySQL-Instanz.gcloud sql databases create servicebroker -i ${INSTANCE_NAME}
Erstellen Sie einen Nutzernamen und ein Passwort zur Verwendung durch Kf Cloud Service Broker.
gcloud sql users create csbuser -i ${INSTANCE_NAME} --password=csbpassword
Google-Dienstkonto (Google Service Account, GSA) für Kf Cloud Service Broker einrichten
Erstellen Sie ein Google-Dienstkonto:
gcloud iam service-accounts create csb-${CLUSTER_NAME}-sa \ --project=${CLUSTER_PROJECT_ID} \ --description="GSA for CSB at ${CLUSTER_NAME}" \ --display-name="csb-${CLUSTER_NAME}"
Gewähren Sie dem Dienstkonto
roles/cloudsql.client
-Berechtigungen. Dies ist erforderlich, um den Kf Cloud Service Broker-Pod über den Cloud SQL Auth-Proxy mit der Cloud SQL for MySQL-Instanz zu verbinden.gcloud projects add-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member="serviceAccount:csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/cloudsql.client"
Gewähren Sie dem Dienstkonto zusätzliche Google Cloud-Berechtigungen.
gcloud projects add-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member="serviceAccount:csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/compute.networkUser"
gcloud projects add-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member="serviceAccount:csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/cloudsql.admin"
gcloud projects add-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member="serviceAccount:csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/redis.admin"
Überprüfen Sie die Berechtigungen.
gcloud projects get-iam-policy ${CLUSTER_PROJECT_ID} \ --filter='bindings.members:serviceAccount:"CSB_SERVICE_ACCOUNT_NAME"' \ --flatten="bindings[].members"
Workload Identity für Kf Cloud Service Broker einrichten
Binden Sie das Google-Dienstkonto an das Kubernetes-Dienstkonto.
gcloud iam service-accounts add-iam-policy-binding "csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com" \ --project=${CLUSTER_PROJECT_ID} \ --role="roles/iam.workloadIdentityUser" \ --member="serviceAccount:${CLUSTER_PROJECT_ID}.svc.id.goog[kf-csb/csb-user]"
Prüfen Sie die Bindung.
gcloud iam service-accounts get-iam-policy "csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com" \ --project=${CLUSTER_PROJECT_ID}
Kubernete-Secret zur Freigabe der Konfiguration für Kf Cloud Service Broker einrichten
Erstellen Sie eine config.mydataset-Datei.
cat << EOF >> ./config.yml gcp: credentials: "" project: ${CLUSTER_PROJECT_ID}
db: host: 127.0.0.1 password: csbpassword user: csbuser tls: false api: user: servicebroker password: password EOF
Erstellen Sie den Namespace
kf-csb
.kubectl create ns kf-csb
Erstellen Sie das Kubernetes-Secret:
kubectl create secret generic csb-secret --from-file=config.yml -n kf-csb
Kf Cloud Service Broker installieren
Laden Sie
kf-csb.yml
herunter.gcloud storage cp gs://kf-releases/csb/v1.0.0/kf-csb.yaml /tmp/kf-csb.yaml
Bearbeiten Sie
/tmp/kf-csb.yaml
und ersetzen Sie Platzhalter durch endgültige Werte. Im folgenden Beispiel wirdsed
verwendet.sed -i "s|<GSA_NAME>|csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com|g" /tmp/kf-csb.yaml
sed -i "s|<INSTANCE_CONNECTION_NAME>|${CLUSTER_PROJECT_ID}:${COMPUTE_REGION}:${INSTANCE_NAME}|g" /tmp/kf-csb.yaml
sed -i "s|<DB_PORT>|3306|g" /tmp/kf-csb.yaml
Wenden Sie YAML für Kf Cloud Service Broker an.
kubectl apply -f /tmp/kf-csb.yaml
Prüfen Sie den Installationsstatus von Kf Cloud Service Broker.
kubectl get pods -n kf-csb
Service Broker erstellen
kf create-service-broker cloud-service-broker servicebroker password http://csb-controller.kf-csb/
Installation prüfen
Suchen Sie nach verfügbaren Diensten im Marktplatz.
kf marketplace
Wenn alles korrekt installiert und konfiguriert ist, wird Folgendes angezeigt:
$ kf marketplace
Broker Name Namespace Description
cloud-service-broker csb-google-bigquery A fast, economical and fully managed data warehouse for large-scale data analytics.
cloud-service-broker csb-google-dataproc Dataproc is a fully-managed service for running Apache Spark and Apache Hadoop clusters in a simpler, more cost-efficient way.
cloud-service-broker csb-google-mysql Mysql is a fully managed service for the Google Cloud Platform.
cloud-service-broker csb-google-postgres PostgreSQL is a fully managed service for the Google Cloud Platform.
cloud-service-broker csb-google-redis Cloud Memorystore for Redis is a fully managed Redis service for the Google Cloud Platform.
cloud-service-broker csb-google-spanner Fully managed, scalable, relational database service for regional and global application data.
cloud-service-broker csb-google-stackdriver-trace Distributed tracing service
cloud-service-broker csb-google-storage-bucket Google Cloud Storage that uses the Terraform back-end and grants service accounts IAM permissions directly on the bucket.
Nächste Schritte
- Testen Sie Kf Cloud Service Broker mit unserem Spring Music-Leitfaden.
Bereinigen
Löschen Sie Cloud Service Broker.
kf delete-service-broker cloud-service-broker
Löschen Sie CSB-Komponenten.
kubectl delete ns kf-csb
Löschen Sie die Cloud SQL for MySQL-Instanz von Kf Cloud Service Broker.
gcloud sql instances delete ${INSTANCE_NAME} --project=${CLUSTER_PROJECT_ID}
Entfernen Sie die IAM-Richtlinienbindungen.
gcloud projects remove-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member='serviceAccount:csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com' \ --role=roles/cloudsql.client
gcloud projects remove-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member='serviceAccount:csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com' \ --role=roles/compute.networkUser
gcloud projects remove-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member='serviceAccount:csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com' \ --role=roles/redis.admin
Entfernen Sie das Google-Dienstkonto.
gcloud iam service-accounts delete csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com \ --project=${CLUSTER_PROJECT_ID}