הגדרה ושימוש בסוג יעד בהתאמה אישית

במדריך למתחילים הזה נסביר איך להשתמש ב-Cloud Deploy כדי ליצור סוג יעד מותאם אישית, ואז לפרוס ליעד מותאם אישית מהסוג הזה.

במדריך למתחילים הזה תבצעו את הפעולות הבאות:

  1. הגדרת סוג יעד מותאם אישית, שבו מגדירים את אופן הפעולה של היעד. ההגדרה הזו מפנה לקובצי אימג' של קונטיינרים בתוספת פקודות shell להרצה בקובצי האימג' האלה, שהן הפעולות של עיבוד ופריסה.

  2. הגדרת יעד שמפנה לסוג היעד המותאם אישית.

  3. מגדירים את צינור עיבוד הנתונים למשלוח ב-Cloud Deploy.

    הצינור הזה כולל שלב אחד בלבד ומשתמש רק ביעד אחד. בשלב הזה, תפנו אל היעד שהגדרתם.

  4. יוצרים הגדרת Skaffold, שנדרשת לגרסה.

  5. יוצרים גרסת הפצה, שיוצרת באופן אוטומטי פריסה, וכתוצאה מכך מתבצעות פעולות העיבוד והפריסה המותאמות אישית.

    במסגרת הגרסה וההשקה הזו, מופעלות גם פעולות העיבוד והפריסה שמוגדרות בהגדרות של סוג היעד המותאם אישית.

  6. צפייה בתוצאות של הפעולות המותאמות אישית. המידע הזה כולל קובץ תצורה שעבר עיבוד והועלה ל-Cloud Storage, מחרוזת שנכתבה בקובץ הזה וקובץ תוצאות שכולל את סטטוס הפעולה.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. התקינו את ה-CLI של Google Cloud.

  6. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  7. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  8. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. התקינו את ה-CLI של Google Cloud.

  12. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  13. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  14. אם כבר התקנתם את Google Cloud CLI, צריך לוודא שפועלת אצלכם הגרסה העדכנית ביותר:

    gcloud components update
    
  15. מוודאים שלחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine יש הרשאות מספיקות.

    יכול להיות שלחשבון השירות כבר יש את ההרשאות הנדרשות. השלבים האלה מיועדים לפרויקטים שבהם השבתתם את מתן התפקידים האוטומטי לחשבונות שירות שמוגדרים כברירת מחדל.

    1. קודם מוסיפים את התפקיד 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"
      
    2. מוסיפים את תפקיד המפתח לזמן הריצה הספציפי.
    3. מוסיפים את התפקיד 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
      

יצירת פייפליין פריסה, סוג יעד מותאם אישית ויעד

אתם יכולים להגדיר את צינור ההפצה, סוג טירגוט מותאם אישית ויעד בקובץ אחד או בקבצים נפרדים. במדריך למתחילים הזה, יוצרים קובץ יחיד עם כל שלושת המשאבים.

  1. פותחים חלון טרמינל.

  2. יוצרים ספרייה חדשה ועוברים אליה.

    mkdir custom-target-quickstart
    cd custom-target-quickstart
    
  3. בספרייה 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 הפסקה, שמגדירה משימת עיבוד ומשימת פריסה. כל אחת מהמשימות האלה מתייחסת לקובץ אימג' של קונטיינר להרצה ולפקודות להרצה בקונטיינר הזה.

  4. רושמים את צינור עיבוד הנתונים ואת היעדים בשירות Cloud Deploy:

    gcloud deploy apply --file=clouddeploy.yaml --region=us-central1 --project=PROJECT_ID
    

    עכשיו יש לכם צינור להעברת נתונים עם יעד אחד. זהו היעד שלכם באמצעות סוג היעד המותאם אישית, וצינור הנתונים הזה לא פורס אפליקציה בסביבת זמן ריצה.

  5. מאשרים את הצנרת ואת היעדים:

    במסוף Google Cloud , נכנסים לדף Delivery pipelines של Cloud Deploy כדי לראות רשימה של צינורות העברת הנתונים שזמינים לכם.

    פתיחת הדף Delivery pipelines

    צינור העברת הנתונים שיצרתם מוצג, עם יעד אחד שמופיע בעמודה יעדים.

    דף צינור העברת הנתונים במסוף Google Cloud , שבו מוצג צינור העברת הנתונים

יצירת קובץ התצורה של Skaffold

הגרסה במדריך למתחילים הזה דורשת קובץ תצורה של Skaffold, אבל לא צריך להגדיר את הקובץ הזה.

  1. יוצרים קובץ בשם 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, לא מתבצע פריסה לזמן ריצה של יעד כלשהו.

אבל אפשר לראות את הקובץ ואת המחרוזות שבו:

  1. במסוף Google Cloud , עוברים לדף Delivery pipelines של Cloud Deploy כדי לראות את צינור העברת השינויים (custom-targets-pipeline).

    פתיחת הדף Delivery pipelines

  2. לוחצים על השם של צינור העברת הנתונים (custom-targets-pipeline).

    הוויזואליזציה של הצינור מראה את סטטוס הפריסה של האפליקציה. בגלל שיש רק שלב אחד בצינור, בתצוגה החזותית מוצג רק צומת אחד.

    הדמיה של צינור העברת הנתונים שמראה הצלחה

    פריט התוכן יופיע בכרטיסייה פריטי תוכן בקטע פרטים על צינור ההפצה.

  3. לוחצים על שם הגרסה.

    יוצג הדף Release details.

  4. לוחצים על הכרטיסייה Artifacts (ארטיפקטים).

  5. בקטע Target artifacts (פריטי מידע על היעד), לוחצים על הקישור VIEW ARTIFACTS (הצגת פריטי מידע).

    קובץ המניפסט שעבר עיבוד מוצג. במקרה הזה, הקובץ הוא הפלט של פעולת העיבוד המותאמת אישית שהגדרתם בהגדרות של סוג היעד המותאם אישית, והוא מכיל את המחרוזת Sample manifest rendered content.

    הפלט של פעולת העיבוד בהתאמה אישית

  6. מוצאים את הקטגוריות של Cloud Storage שנוצרו על ידי הגרסה הזו.

    פתיחת הדף Cloud Storage browser

    מוצג הדף Buckets (קטגוריות), שבו מופיעות שתי קטגוריות שנוצרו לגרסה הזו. קטגוריה אחת מכילה את קובץ התצורה של צינור ההפצה ואת skaffold.yaml שעבר רינדור. הקובץ השני כולל את קובץ הפלט שהפעולה המותאמת אישית מוגדרת ליצור.

  7. לוחצים על הקטגוריה שהשם שלה מתחיל ב-us-central1.deploy-artifacts...

    רשימה של קטגוריות של Cloud Storage

  8. לוחצים על התיקייה שהשם שלה מתחיל ב-custom-targets-pipeline-, ואז לוחצים על התיקייה test-release-001.

  9. לוחצים על התיקייה ששמה הוא שם ההשקה, שצריך להיות test-release-001-to-sample-env-0001.

  10. לוחצים על התיקייה שמוצגת, שהיא UUID, ואז לוחצים על custom-output התיקייה.

  11. לוחצים על results.json ואז על כתובת ה-URL עם ההיפר-קישור בשדה כתובת URL מאומתת.

    הקובץ הזה מכיל את המחרוזת שהגדרתם כפלט מהפעולה custom-deploy בהגדרה של סוג היעד המותאם אישית:

    פלט מפריסת פעולה בהתאמה אישית

הסרת המשאבים

כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:

  1. מחיקת צינור העברת התוכן, היעד, הגרסה וההשקה:

    gcloud deploy delete --file=clouddeploy.yaml --force --region=us-central1 --project=PROJECT_ID
    
  2. מוחקים את שתי הקטגוריות של Cloud Storage שנוצרו על ידי Cloud Deploy.

    פתיחת הדף Cloud Storage browser

סיימתם את המדריך למתחילים!

המאמרים הבאים