בדף הזה מוסבר איך לפרוס את Kf Cloud Service Broker for Google Cloud ואיך להשתמש בו כדי להקצות או לבטל הקצאה של משאבי גיבוי. כדי לקבל מידע נוסף על Kf Cloud Service Broker, אפשר לקרוא על המושגים והארכיטקטורה.
יצירת משתני סביבה
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
יוצרים מכונה של Cloud SQL ל-MySQL.
gcloud sql instances create ${INSTANCE_NAME} --cpu=2 --memory=7680MB --require-ssl --region=${COMPUTE_REGION}יוצרים מסד נתונים בשם
servicebrokerבמכונה של Cloud SQL ל-MySQL.gcloud sql databases create servicebroker -i ${INSTANCE_NAME}יוצרים שם משתמש וסיסמה לשימוש ב-Kf Cloud Service Broker.
gcloud sql users create csbuser -i ${INSTANCE_NAME} --password=csbpassword
הגדרה של חשבון שירות של Google עבור Kf Cloud Service Broker
יוצרים חשבון שירות של Google.
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}"נותנים לחשבון השירות הרשאות
roles/cloudsql.client. הפעולה הזו נדרשת כדי לחבר את הפוד של Kf Cloud Service Broker למכונה של Cloud SQL ל-MySQL דרך שרת proxy ל-Cloud SQL Auth.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"נותנים הרשאות נוספות לחשבון השירות. Google Cloud
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"בודקים את ההרשאות.
gcloud projects get-iam-policy ${CLUSTER_PROJECT_ID} \ --filter='bindings.members:serviceAccount:"CSB_SERVICE_ACCOUNT_NAME"' \ --flatten="bindings[].members"
הגדרת Workload Identity עבור Kf Cloud Service Broker
מקשרים את חשבון השירות של Google לחשבון השירות של Kubernetes.
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]"מאמתים את הקישור.
gcloud iam service-accounts get-iam-policy "csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com" \ --project=${CLUSTER_PROJECT_ID}
הגדרת סוד של Kubernetes לשיתוף הגדרות עם Kf Cloud Service Broker
יוצרים קובץ config.yml.
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יוצרים את מרחב השמות
kf-csb.kubectl create ns kf-csbיוצרים את הסוד של Kubernetes.
kubectl create secret generic csb-secret --from-file=config.yml -n kf-csb
התקנה של Kf Cloud Service Broker
מורידים את
kf-csb.yml.gcloud storage cp gs://kf-releases/csb/v1.0.0/kf-csb.yaml /tmp/kf-csb.yamlעורכים את
/tmp/kf-csb.yamlומחליפים את ה-placeholders בערכים הסופיים. בדוגמה הבאה נעשה שימוש ב-sed.sed -i "s|<GSA_NAME>|csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com|g" /tmp/kf-csb.yamlsed -i "s|<INSTANCE_CONNECTION_NAME>|${CLUSTER_PROJECT_ID}:${COMPUTE_REGION}:${INSTANCE_NAME}|g" /tmp/kf-csb.yamlsed -i "s|<DB_PORT>|3306|g" /tmp/kf-csb.yamlהחלת yaml עבור Kf Cloud Service Broker.
kubectl apply -f /tmp/kf-csb.yamlבודקים את סטטוס ההתקנה של Kf Cloud Service Broker.
kubectl get pods -n kf-csb
יצירת מתווך שירותים
kf create-service-broker cloud-service-broker servicebroker password http://csb-controller.kf-csb/אימות ההתקנה
בודקים אילו שירותים זמינים בזירת המסחר.
kf marketplaceאם הכל מותקן ומוגדר בצורה נכונה, אמור להופיע המסך הבא:
$ 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.
הסרת המשאבים
מחיקת cloud-service-broker.
kf delete-service-broker cloud-service-brokerמחיקת רכיבי CSB.
kubectl delete ns kf-csbמוחקים את המכונה של Cloud SQL ל-MySQL של Kf Cloud Service Broker.
gcloud sql instances delete ${INSTANCE_NAME} --project=${CLUSTER_PROJECT_ID}מסירים את הקישורים למדיניות IAM.
gcloud projects remove-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member='serviceAccount:csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com' \ --role=roles/cloudsql.clientgcloud projects remove-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member='serviceAccount:csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com' \ --role=roles/compute.networkUsergcloud projects remove-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member='serviceAccount:csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com' \ --role=roles/redis.adminמסירים את ה-GSA.
gcloud iam service-accounts delete csb-${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com \ --project=${CLUSTER_PROJECT_ID}
מה השלב הבא?
- אפשר לבדוק את Kf Cloud Service Broker באמצעות המדריך שלנו בנושא Spring Music.