הגדרה ושימוש בסוג יעד בהתאמה אישית
במדריך למתחילים הזה נסביר איך להשתמש ב-Cloud Deploy כדי ליצור סוג יעד מותאם אישית, ואז לפרוס ליעד מותאם אישית מהסוג הזה.
במדריך למתחילים הזה תבצעו את הפעולות הבאות:
הגדרת סוג יעד מותאם אישית, שבו מגדירים את אופן הפעולה של היעד. ההגדרה הזו מפנה לקובצי אימג' של קונטיינרים בתוספת פקודות shell להרצה בקובצי האימג' האלה, שהן הפעולות של עיבוד ופריסה.
הגדרת יעד שמפנה לסוג היעד המותאם אישית.
מגדירים את צינור עיבוד הנתונים למשלוח ב-Cloud Deploy.
הצינור הזה כולל שלב אחד בלבד ומשתמש רק ביעד אחד. בשלב הזה, תפנו אל היעד שהגדרתם.
יוצרים הגדרת Skaffold, שנדרשת לגרסה.
יוצרים גרסת הפצה, שיוצרת באופן אוטומטי פריסה, וכתוצאה מכך מתבצעות פעולות העיבוד והפריסה המותאמות אישית.
במסגרת הגרסה וההשקה הזו, מופעלות גם פעולות העיבוד והפריסה שמוגדרות בהגדרות של סוג היעד המותאם אישית.
צפייה בתוצאות של הפעולות המותאמות אישית. המידע הזה כולל קובץ תצורה שעבר עיבוד והועלה ל-Cloud Storage, מחרוזת שנכתבה בקובץ הזה וקובץ תוצאות שכולל את סטטוס הפעולה.
לפני שמתחילים
- נכנסים לחשבון 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 billing is enabled for your Google Cloud project.
Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage 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.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (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 billing is enabled for your Google Cloud project.
Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage 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.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init - מוודאים שלחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine יש הרשאות מספיקות.
יכול להיות שלחשבון השירות כבר יש את ההרשאות הנדרשות. השלבים האלה מיועדים לפרויקטים שבהם השבתתם את מתן התפקידים האוטומטי לחשבונות שירות שמוגדרים כברירת מחדל.
- קודם מוסיפים את התפקיד
clouddeploy.jobRunner:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/clouddeploy.jobRunner" - מוסיפים את תפקיד המפתח לזמן הריצה הספציפי.
-
מוסיפים את התפקיד
iam.serviceAccountUser, שכולל את ההרשאהactAsלפריסה בסביבת זמן הריצה:gcloud iam service-accounts add-iam-policy-binding $(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/iam.serviceAccountUser" \ --project=PROJECT_ID
אם כבר התקנתם את Google Cloud CLI, צריך לוודא שפועלת אצלכם הגרסה העדכנית ביותר:
gcloud components update
יצירת פייפליין פריסה, סוג יעד מותאם אישית ויעד
אתם יכולים להגדיר את צינור ההפצה, סוג טירגוט מותאם אישית ויעד בקובץ אחד או בקבצים נפרדים. במדריך למתחילים הזה, יוצרים קובץ יחיד עם כל שלושת המשאבים.
פותחים חלון טרמינל.
יוצרים ספרייה חדשה ועוברים אליה.
mkdir custom-target-quickstart cd custom-target-quickstartבספרייה custom-target-quickstart, יוצרים קובץ חדש,
clouddeploy.yaml, עם התוכן הבא:apiVersion: deploy.cloud.google.com/v1 kind: DeliveryPipeline metadata: name: custom-targets-pipeline serialPipeline: stages: - targetId: sample-env --- apiVersion: deploy.cloud.google.com/v1 kind: Target metadata: name: sample-env customTarget: customTargetType: basic-custom-target --- apiVersion: deploy.cloud.google.com/v1 kind: CustomTargetType metadata: name: basic-custom-target tasks: render: type: 'container' image: gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:484e8266c1cfc84b283bc6d4eec1f6b61223115178cce76fb59f77b223f26e8e command: ['/bin/bash'] args: - '-c' - |- echo "Sample manifest rendered content" > manifest.txt gcloud storage cp manifest.txt $CLOUD_DEPLOY_OUTPUT_GCS_PATH/manifest.txt echo {\"resultStatus\": \"SUCCEEDED\", \"manifestFile\": \"$CLOUD_DEPLOY_OUTPUT_GCS_PATH/manifest.txt\"} > results.json gcloud storage cp results.json $CLOUD_DEPLOY_OUTPUT_GCS_PATH/results.json deploy: type: 'container' image: gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:484e8266c1cfc84b283bc6d4eec1f6b61223115178cce76fb59f77b223f26e8e command: ['/bin/bash'] args: - '-c' - |- echo {\"resultStatus\": \"SUCCEEDED\"} > results.json gcloud storage cp results.json $CLOUD_DEPLOY_OUTPUT_GCS_PATH/results.jsonההגדרה של סוג היעד בהתאמה אישית כוללת את
tasksהפסקה, שמגדירה משימת עיבוד ומשימת פריסה. כל אחת מהמשימות האלה מתייחסת לקובץ אימג' של קונטיינר להרצה ולפקודות להרצה בקונטיינר הזה.רושמים את צינור עיבוד הנתונים ואת היעדים בשירות Cloud Deploy:
gcloud deploy apply --file=clouddeploy.yaml --region=us-central1 --project=PROJECT_ID
עכשיו יש לכם צינור להעברת נתונים עם יעד אחד. זהו היעד שלכם באמצעות סוג היעד המותאם אישית, וצינור הנתונים הזה לא פורס אפליקציה בסביבת זמן ריצה.
מאשרים את הצנרת ואת היעדים:
במסוף Google Cloud , נכנסים לדף Delivery pipelines של Cloud Deploy כדי לראות רשימה של צינורות העברת הנתונים שזמינים לכם.
צינור העברת הנתונים שיצרתם מוצג, עם יעד אחד שמופיע בעמודה יעדים.

יצירת קובץ התצורה של Skaffold
הגרסה במדריך למתחילים הזה דורשת קובץ תצורה של Skaffold, אבל לא צריך להגדיר את הקובץ הזה.
יוצרים קובץ בשם
skaffold.yamlעם התוכן הבא:apiVersion: skaffold/v4beta7 kind: Config
יצירת גרסה
הפצה היא המשאב המרכזי ב-Cloud Deploy שמייצג את השינויים שנפרסים. צינור העברת התוכן מגדיר את מחזור החיים של הגרסה הזו. פרטים על מחזור החיים הזה מופיעים במאמר ארכיטקטורת שירות Cloud Deploy.
מריצים את הפקודה הבאה מהספרייה custom-target-quickstart כדי ליצור משאב release שמייצג את הפעולה בהתאמה אישית שרוצים לפרוס:
gcloud deploy releases create test-release-001 \
--project=PROJECT_ID \
--region=us-central1 \
--delivery-pipeline=custom-targets-pipeline
בדומה לכל פריטי התוכן (אלא אם הם כוללים --disable-initial-rollout),
מערכת Cloud Deploy יוצרת באופן אוטומטי גם משאב פריסת גרסה. כל השלבים של ההשקה הזו מבוצעים, כולל עיבוד ופריסה.
צפייה בתוצאות במסוף Google Cloud
אחרי כמה דקות, הפריסה תושלם. במקרה הזה, מכיוון ששתי הפעולות המותאמות אישית הן פקודות להדפסת מחרוזות לקובץ ולהעלאת הקובץ ל-Cloud Storage, לא מתבצע פריסה לזמן ריצה של יעד כלשהו.
אבל אפשר לראות את הקובץ ואת המחרוזות שבו:
במסוף Google Cloud , עוברים לדף Delivery pipelines של Cloud Deploy כדי לראות את צינור העברת השינויים (
custom-targets-pipeline).לוחצים על השם של צינור העברת הנתונים (
custom-targets-pipeline).הוויזואליזציה של הצינור מראה את סטטוס הפריסה של האפליקציה. בגלל שיש רק שלב אחד בצינור, בתצוגה החזותית מוצג רק צומת אחד.

פריט התוכן יופיע בכרטיסייה פריטי תוכן בקטע פרטים על צינור ההפצה.
לוחצים על שם הגרסה.
יוצג הדף Release details.
לוחצים על הכרטיסייה Artifacts (ארטיפקטים).
בקטע Target artifacts (פריטי מידע על היעד), לוחצים על הקישור VIEW ARTIFACTS (הצגת פריטי מידע).
קובץ המניפסט שעבר עיבוד מוצג. במקרה הזה, הקובץ הוא הפלט של פעולת העיבוד המותאמת אישית שהגדרתם בהגדרות של סוג היעד המותאם אישית, והוא מכיל את המחרוזת Sample manifest rendered content.

מוצאים את הקטגוריות של Cloud Storage שנוצרו על ידי הגרסה הזו.
פתיחת הדף Cloud Storage browser
מוצג הדף Buckets (קטגוריות), שבו מופיעות שתי קטגוריות שנוצרו לגרסה הזו. קטגוריה אחת מכילה את קובץ התצורה של צינור ההפצה ואת
skaffold.yamlשעבר רינדור. הקובץ השני כולל את קובץ הפלט שהפעולה המותאמת אישית מוגדרת ליצור.לוחצים על הקטגוריה שהשם שלה מתחיל ב-
us-central1.deploy-artifacts...
לוחצים על התיקייה שהשם שלה מתחיל ב-
custom-targets-pipeline-, ואז לוחצים על התיקייהtest-release-001.לוחצים על התיקייה ששמה הוא שם ההשקה, שצריך להיות
test-release-001-to-sample-env-0001.לוחצים על התיקייה שמוצגת, שהיא UUID, ואז לוחצים על
custom-outputהתיקייה.לוחצים על
results.jsonואז על כתובת ה-URL עם ההיפר-קישור בשדה כתובת URL מאומתת.הקובץ הזה מכיל את המחרוזת שהגדרתם כפלט מהפעולה
custom-deployבהגדרה של סוג היעד המותאם אישית:
הסרת המשאבים
כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:
מחיקת צינור העברת התוכן, היעד, הגרסה וההשקה:
gcloud deploy delete --file=clouddeploy.yaml --force --region=us-central1 --project=PROJECT_IDמוחקים את שתי הקטגוריות של Cloud Storage שנוצרו על ידי Cloud Deploy.
סיימתם את המדריך למתחילים!