התחברות ל-Cloud SQL ל-SQL Server מ-Google Kubernetes Engine
בדף הזה נסביר איך לפרוס אפליקציה לדוגמה ב-Google Kubernetes Engine (GKE) שמחובר למופע של SQL Server באמצעות מסוף Google Cloud ואפליקציית לקוח. המשאבים שנוצרו במדריך למתחילים הזה עולים בדרך כלל פחות מדולר אחד (USD), בהנחה שמשלימים את השלבים, כולל הניקוי, בזמן.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that you have the permissions required to complete this guide.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Artifact Registry, Cloud Build, Cloud SQL Admin, Compute Engine, Kubernetes Engine, Service Networking APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that you have the permissions required to complete this guide.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Artifact Registry, Cloud Build, Cloud SQL Admin, Compute Engine, Kubernetes Engine, Service Networking APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לביצוע המשימות שמתוארות במדריך למתחילים הזה, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט של המדריך למתחילים:
-
ליצור, לעדכן או למחוק את כל המכונות, מסדי הנתונים והמשתמשים ב-Cloud SQL:
- Cloud SQL Admin (
roles/cloudsql.admin) - צפייה ב-Compute (
roles/compute.viewer)
- Cloud SQL Admin (
-
יצירת מופע Cloud SQL עם כתובת IP פרטית (חיבור גישה לשירותים פרטיים):
אדמין של רשת Compute (
roles/compute.networkadmin) -
יצירה וניהול של אשכול Google Kubernetes Engine:
Kubernetes Engine Admin (
roles/container.admin) -
יצירה וניהול של חשבונות שירות בפרויקט:
- אדמין IAM בפרויקט (
roles/resourcemanager.projectIamAdmin) - אדמין בחשבון שירות (
roles/serviceAccountAdmin)
- אדמין IAM בפרויקט (
-
יוצרים מאגר ב-Artifact Registry לפרויקט: אדמין של Artifact Registry (
roles/artifactregistry.admin) -
שליחה ופיתוח של אפליקציות ב-Cloud Build:
- עריכה ב-Cloud Build (
roles/cloudbuilds.builds.editor) - יצירת אובייקטים באחסון (
roles/storage.objectCreator) - צפייה בקטגוריות באחסון (
roles/storage.bucketViewer) - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) - כלי הצפייה ביומנים (
roles/logging.viewer)
- עריכה ב-Cloud Build (
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הגדרת Cloud SQL
יצירת מכונה של Cloud SQL
יצירת מסד נתונים
כדי ליצור מסד נתונים:
המסוף
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- בוחרים באפשרות
quickstart-instance. - בתפריט הניווט SQL, בוחרים באפשרות Databases (מסדי נתונים).
- לוחצים על יצירת מסד נתונים.
- בשדה שם מסד הנתונים בתיבת הדו-שיח מסד נתונים חדש, מזינים
quickstart-db. - לוחצים על יצירה.
gcloud
מריצים את הפקודה gcloud
sql databases create כדי ליצור מסד נתונים.
gcloud sql databases create quickstart-db --instance=quickstart-instance
יצירת אשכול GKE
המסוף
-
במסוף Google Cloud , נכנסים לדף Google Kubernetes Engine.
- לוחצים על יצירה.
- לוחצים על Configure (הגדרה) עבור GKE Autopilot.
- בשדה Name (שם), מציינים את שם האשכול כ-
gke-cloud-sql-quickstart. - לוחצים על יצירה.
gcloud
מריצים את הפקודה gcloud container clusters create-auto כדי ליצור את האשכול.
gcloud container clusters create-auto gke-cloud-sql-quickstart \ --region us-central1
שיבוט אפליקציה לדוגמה של Cloud SQL מ-GitHub באמצעות Cloud Shell
אחרי שיש לכם מופע Cloud SQL, מסד נתונים ואשכול GKE, אתם יכולים לשכפל ולהגדיר אפליקציה לדוגמה שמתחברת למופע Cloud SQL. האפליקציה לדוגמה מאוחסנת ב-GitHub.
כדי לבצע את השלבים הבאים במדריך למתחילים הזה, צריך להשתמש ב-Cloud Shell, ב-gcloud וב-kubectl.
הכלים gcloud ו-kubectl מותקנים מראש ב-Cloud Shell.
המשך
-
ב-Cloud Shell Editor, פותחים את קוד המקור של אפליקציית הדוגמה.
פתיחת Cloud Shell Editor -
בתיבת הדו-שיח
Open in Cloud Shell, לוחצים על אישור כדי להוריד את קוד האפליקציה לדוגמה ולפתוח את ספריית האפליקציה לדוגמה ב-Cloud Shell Editor.
Java
-
ב-Cloud Shell Editor, פותחים את קוד המקור של אפליקציית הדוגמה.
פתיחת Cloud Shell Editor -
בתיבת הדו-שיח
Open in Cloud Shell, לוחצים על אישור כדי להוריד את קוד האפליקציה לדוגמה ולפתוח את ספריית האפליקציה לדוגמה ב-Cloud Shell Editor.
Node.js
-
ב-Cloud Shell Editor, פותחים את קוד המקור של אפליקציית הדוגמה.
פתיחת Cloud Shell Editor -
בתיבת הדו-שיח
Open in Cloud Shell, לוחצים על אישור כדי להוריד את קוד האפליקציה לדוגמה ולפתוח את ספריית האפליקציה לדוגמה ב-Cloud Shell Editor.
Python
-
ב-Cloud Shell Editor, פותחים את קוד המקור של אפליקציית הדוגמה.
פתיחת Cloud Shell Editor -
בתיבת הדו-שיח
Open in Cloud Shell, לוחצים על אישור כדי להוריד את קוד האפליקציה לדוגמה ולפתוח את ספריית האפליקציה לדוגמה ב-Cloud Shell Editor.
הפעלת אשכול GKE
מפעילים את אשכול GKE שיצרתם כרגע כאשכול ברירת המחדל שישמש את הפקודות שנותרו במדריך הזה.
gcloud container clusters get-credentials באופן הבא כדי להפעיל את אשכול GKE.
gcloud container clusters get-credentials gke-cloud-sql-quickstart \ --region us-central1
הגדרה של חשבון שירות
-
כדי ליצור חשבון שירות חדש, מריצים את הפקודה
gcloud iam service-accounts createבאופן הבא:gcloud iam service-accounts create gke-quickstart-service-account \ --display-name="GKE Quickstart Service Account"
- מריצים את הפקודה
gcloud projects add-iam-policy-bindingבאופן הבא כדי להוסיף את התפקיד Cloud SQL Client לחשבון השירות Google Cloud שזה עתה יצרתם. מחליפים את YOUR_PROJECT_ID במזהה הפרויקט.gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/cloudsql.client"
- אפליקציית הדוגמה משתמשת ברישום ביומן, לכן מריצים את הפקודה
gcloud projects add-iam-policy-bindingבאופן הבא כדי להוסיף את התפקיד Log Writer לחשבון השירות Google Cloud שיצרתם. מחליפים את YOUR_PROJECT_ID במזהה הפרויקט.gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
- חשבון השירות צריך להיות מסוגל לשלוף תמונות ממאגר artifactory, לכן מריצים את הפקודה
gcloud projects add-iam-policy-bindingבאופן הבא כדי להוסיף את התפקיד Artifact Registry Reader לחשבון השירות. מחליפים את YOUR_PROJECT_ID במזהה הפרויקט.gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/artifactregistry.reader"
- יוצרים חשבון שירות ב-Kubernetes.
- מעדכנים את הקובץ
service-account.yamlב-Cloud Shell Editor. מחליפים את<YOUR-KSA-NAME>ב-ksa-cloud-sql. - מריצים את הפקודה
kubectl applyב-Cloud Shell באופן הבא:kubectl apply -f service-account.yaml
- מעדכנים את הקובץ
- מריצים את הפקודה
gcloud iam service-accounts add-iam-policy-bindingבאופן הבא כדי להפעיל את הקישור של חשבון השירות Google Cloud וחשבון השירות של Kubernetes ל-IAM. מחליפים את הפרטים הבאים:- YOUR_PROJECT_ID במזהה הפרויקט.
- YOUR_K8S_NAMESPACE עם
default, שהוא מרחב השמות שמוגדר כברירת מחדל לאשכולות שנוצרו ב-GKE. - YOUR_KSA_NAME עם
ksa-cloud-sql.
gcloud iam service-accounts add-iam-policy-binding \ --role="roles/iam.workloadIdentityUser" \ --member="serviceAccount:YOUR_PROJECT_ID.svc.id.goog[YOUR_K8S_NAMESPACE/YOUR_KSA_NAME]" \ gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com
- מריצים את הפקודה
kubectl annotateבאופן הבא כדי להוסיף הערה לחשבון השירות של Kubernetes עם קישור IAM. מחליפים את הפרטים הבאים:- YOUR_KSA_NAME עם
ksa-cloud-sql. - YOUR_PROJECT_ID במזהה הפרויקט.
kubectl annotate serviceaccount \ YOUR_KSA_NAME \ iam.gke.io/gcp-service-account=gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com
- YOUR_KSA_NAME עם
הגדרת סודות
מריצים את הפקודה kubectl create secret generic באופן הבא כדי ליצור סודות של Kubernetes עבור מסד הנתונים, המשתמש והסיסמה של המשתמש, שישמשו את אפליקציית הדוגמה. הערכים של כל סוד מבוססים על הערכים שצוינו בשלבים הקודמים של המדריך הזה.
מחליפים את DB_PASS בסיסמה של משתמש Root sqlserver שנוצר בשלב יצירת מכונת Cloud SQL.
kubectl create secret generic gke-cloud-sql-secrets \ --from-literal=database=quickstart-db \ --from-literal=username=sqlserver \ --from-literal=password=DB_PASS
פיתוח אפליקציה לדוגמה
המשך
- חוזרים אל Cloud Shell Editor ולוחצים על Open Terminal כדי לפתוח את שורת הפקודה של Cloud Shell.
-
בשורת הפקודה של Cloud Shell, מריצים את הפקודה הבאה
gcloud artifacts repositories createכדי ליצור מאגר ב-Artifact Registry בשם gke-cloud-sql-repo באותו אזור שבו נמצא האשכול. מחליפים את YOUR_PROJECT_ID במזהה הפרויקט.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
- משנים את הספריות למיקום שבו שיכפלתם את אפליקציית הדוגמה של Cloud SQL מ-GitHub.
הספרייה של האפליקציה לדוגמה מכילה
Dockerfileלאפליקציה לדוגמה. לדוגמה, כדי לעבור לספרייה של האפליקציה לדוגמה, אפשר להריץ פקודה כמו הבאה:cd ~/cloudshell_open/golang-samples/cloud-sql/sqlserver/database-sql
- מריצים את הפקודה
gcloud builds submitבאופן הבא כדי ליצור קונטיינר Docker ולפרסם אותו ב-Artifact Registry. מחליפים את YOUR_PROJECT_ID במזהה הפרויקט.gcloud builds submit \ --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .
Java
- חוזרים אל Cloud Shell Editor ולוחצים על Open Terminal כדי לפתוח את שורת הפקודה של Cloud Shell.
-
בשורת הפקודה של Cloud Shell, מריצים את הפקודה הבאה
gcloud artifacts repositories createכדי ליצור מאגר ב-Artifact Registry בשם gke-cloud-sql-repo באותו אזור שבו נמצא האשכול. מחליפים את YOUR_PROJECT_ID במזהה הפרויקט.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
- משנים את הספריות למיקום שבו שיכפלתם את אפליקציית הדוגמה של Cloud SQL מ-GitHub.
הספרייה של האפליקציה לדוגמה מכילה
pom.xmlלאפליקציה לדוגמה. לדוגמה, כדי לעבור לספרייה של האפליקציה לדוגמה, אפשר להריץ פקודה כמו הבאה:cd ~/cloudshell_open/java-docs-samples/cloud-sql/sqlserver/servlet
- מריצים את הפקודה
mvnבאופן הבא כדי ליצור קונטיינר Docker ולפרסם אותו ב-Artifact Registry. מחליפים את YOUR_PROJECT_ID במזהה הפרויקט.mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \ -Dimage=us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql \ -DskipTests -Djib.to.credHelper=gcloud
Node.js
- חוזרים אל Cloud Shell Editor ולוחצים על Open Terminal כדי לפתוח את שורת הפקודה של Cloud Shell.
-
בשורת הפקודה של Cloud Shell, מריצים את הפקודה הבאה
gcloud artifacts repositories createכדי ליצור מאגר ב-Artifact Registry בשם gke-cloud-sql-repo באותו אזור שבו נמצא האשכול. מחליפים את YOUR_PROJECT_ID במזהה הפרויקט.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
- משנים את הספריות למיקום שבו שיכפלתם את אפליקציית הדוגמה של Cloud SQL מ-GitHub.
הספרייה של האפליקציה לדוגמה מכילה
Dockerfileלאפליקציה לדוגמה. לדוגמה, כדי לעבור לספרייה של האפליקציה לדוגמה, אפשר להריץ פקודה כמו הבאה:cd ~/cloudshell_open/nodejs-docs-samples/cloud-sql/sqlserver/mssql
- מריצים את הפקודה
gcloud builds submitבאופן הבא כדי ליצור קונטיינר Docker ולפרסם אותו ב-Artifact Registry. מחליפים את YOUR_PROJECT_ID במזהה הפרויקט.gcloud builds submit \ --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .
Python
- חוזרים אל Cloud Shell Editor ולוחצים על Open Terminal כדי לפתוח את שורת הפקודה של Cloud Shell.
-
בשורת הפקודה של Cloud Shell, מריצים את הפקודה הבאה
gcloud artifacts repositories createכדי ליצור מאגר ב-Artifact Registry בשם gke-cloud-sql-repo באותו אזור שבו נמצא האשכול. מחליפים את YOUR_PROJECT_ID במזהה הפרויקט.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
- משנים את הספריות למיקום שבו שיכפלתם את אפליקציית הדוגמה של Cloud SQL מ-GitHub.
הספרייה של האפליקציה לדוגמה מכילה
Dockerfileלאפליקציה לדוגמה. לדוגמה, כדי לעבור לספרייה של האפליקציה לדוגמה, אפשר להריץ פקודה כמו הבאה:cd ~/cloudshell_open/python-docs-samples/cloud-sql/sql-server/sqlalchemy
- מריצים את הפקודה
gcloud builds submitבאופן הבא ב- כדי ליצור קונטיינר Docker ולפרסם אותו ב-Artifact Registry. מחליפים את YOUR_PROJECT_ID במזהה הפרויקט.gcloud builds submit \ --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .
פריסת האפליקציה לדוגמה
הסרת המשאבים
כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- בוחרים את מופע
quickstart-instanceכדי לפתוח את הדף פרטי המופע. - בסרגל הסמלים בחלק העליון של הדף, לוחצים על מחיקה.
- בתיבת הדו-שיח Delete instance (מחיקת מכונה), מקלידים
quickstart-instanceולוחצים על Delete (מחיקה) כדי למחוק את המכונה. -
במסוף Google Cloud , נכנסים לדף Google Kubernetes Engine.
- לוחצים על תיבת הסימון שליד
gke-cloud-sql-quickstartשם השירות. - לוחצים על הלחצן מחיקה בראש הדף של Google Kubernetes Engine.
שלבי ניקוי אופציונליים
אם אתם לא משתמשים בחשבון השירות שיצרתם עבור המדריך הזה, אתם יכולים להסיר אותו. Google Cloud
-
נכנסים לדף Service accounts במסוף Google Cloud .
- מסמנים את התיבה של חשבון IAM שנקרא
gke-quickstart-service-account. - לוחצים על הסרה ומאשרים את ההסרה.
אם אתם לא משתמשים בממשקי ה-API שהופעלו במסגרת ההפעלה המהירה הזו, אתם יכולים להשבית אותם.
- ממשקי ה-API שהופעלו במדריך הזה למתחילים:
- Compute Engine API
- Cloud SQL Admin API
- Google Kubernetes Engine API
- Artifact Registry API
- Cloud Build API
נכנסים לדף APIs במסוף Google Cloud .
בוחרים את ה-API שרוצים להשבית ולוחצים על הלחצן השבתת ה-API.
המאמרים הבאים
בהתאם לצרכים שלכם, תוכלו לקרוא מידע נוסף על יצירת מכונות Cloud SQL.תוכלו גם לקרוא על יצירת משתמשי SQL Server ומסדי נתונים עבור מכונת Cloud SQL.
אפשר גם לעיין במידע על התמחור של Cloud SQL.
למידע נוסף על:
- כל אפשרויות הקישוריות ב-Cloud SQL.
- הגדרת מכונת Cloud SQL עם כתובת IP ציבורית.
- הגדרת מכונת Cloud SQL עם כתובת IP פרטית.
בנוסף, תוכלו לקרוא על חיבור למופע Cloud SQL מאפליקציות אחרות של Google Cloud:
