יצירה וניהול של מאגרי עותקים פרטיים

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

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

  1. יוצרים פרויקט חדש Google Cloud או בוחרים פרויקט קיים. תשתמשו בפרויקט הזה כדי ליצור את המאגר הפרטי.

  2. מפעילים את Cloud Build API, אם הוא עדיין לא מופעל.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

  3. כדי להשתמש בדוגמאות של שורת הפקודה במדריך הזה, צריך להתקין ולהגדיר את Google Cloud CLI.

  4. אופציונלי: כדי שהגרסאות יקבלו גישה למשאבים פרטיים מרשת הענן הווירטואלי הפרטי (VPC), צריך להגדיר קישור בין רשתות שכנות בין רשת הענן הווירטואלי הפרטי לבין רשת הענן הווירטואלי הפרטי שבה נמצאים המאגרים הפרטיים. הוראות מפורטות מופיעות במאמר הגדרת הסביבה ליצירת מאגרי כתובות פרטיים.

  5. אופציונלי: כדאי להכיר את ההגדרות של סוגי המכונות ואת הזמינות האזורית. מידע נוסף זמין במאמר בנושא workerconfig בסכימת קובץ ההגדרות של מאגר פרטי.

יצירת מאגר פרטי

כדי לוודא שלחשבון השירות יש את ההרשאות שנדרשות ליצירת מאגר פרטי, צריך לבקש מהאדמין להקצות לחשבון השירות את תפקיד ה-IAM בעלים של WorkerPool ב-Cloud Build (roles/cloudbuild.workerPoolOwner). כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

אפשר ליצור עד 10 מאגרי כתובות פרטיים לכל Google Cloud פרויקט לכל אזור. כדי ליצור מאגר פרטי:

מסוף Google Cloud

  1. פותחים את הדף Worker Pool במסוף Google Cloud :

    פתיחת הדף של מאגר העובדים של Cloud Build

  2. לוחצים על יצירת מאגר פרטי.

    מוצג הדף Create private pool.

    מזינים את הפרטים הבאים כדי ליצור מאגר פרטי:

  3. שם: מזינים שם למאגר הפרטי. הערך הזה יכול להכיל רק תווים אלפאנומריים /[a-z][0-9]/ או מקפים -. שם המאגר הפרטי צריך לכלול בין 1 ל-63 תווים.

  4. אזור: בוחרים את האזור שבו רוצים ליצור את המאגר הפרטי.

  5. Machine configuration: מגדירים את האפשרויות הבאות:

    1. סדרה: בוחרים סדרת מכונות.

    2. Machine type: בהגדרה הזו מוצגים סוגי המכונות, על סמך סדרת המכונות שבחרתם, שמאגר העובדים יכול להשתמש בהם. סוגי המכונות הזמינים משתנים בהתאם לאזור.

    3. גודל הדיסק: מזינים את גודל הדיסק של המאגר הפרטי. מציינים ערך שגדול מ-100 או שווה לו, וקטן מ-4,000 או שווה לו. אם לא מציינים ערך, Cloud Build משתמש בגודל דיסק של 100.

    4. וירטואליזציה מקוננת: אם בחרתם במכונה מסדרת C3, תוכלו להפעיל וירטואליזציה מקוננת. התכונה הזו מאפשרת להריץ מופעים של מכונות וירטואליות (VM) בתוך מכונות וירטואליות אחרות, כדי שתוכלו ליצור סביבות וירטואליזציה משלכם.

  6. בקטע Worker release (גרסת Worker), בוחרים באפשרות Release channel (ערוץ הפצה) ואז באחד מהערוצים הבאים:

    • regular (ברירת מחדל)
    • stable
    • rapid

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

    במאמר ערוצי הפצה של Cloud Build מוסבר על כל ערוץ הפצה ומה המשמעות של בחירת מספר גרסה ספציפי.

  7. בקטע סוג הרשת, בוחרים באחת מהאפשרויות הבאות:

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

    2. רשת פרטית: בוחרים באפשרות הזו אם המופע מתארח ברשת פרטית, ואז מבצעים את הפעולות הבאות:

      1. Project: בוחרים את מזהה הפרויקט ב- Google Cloud .

      2. רשת: בוחרים את הרשת מהתפריט הנפתח. אם לא יצרתם רשת, במאמר יצירה וניהול של רשתות VPC מוסבר איך ליצור רשת.

      3. טווח כתובות IP: מזינים את טווח כתובות ה-IP הפנימיות שרשת היצרן של Cloud Build יכולה להקצות למכונות וירטואליות שמנהלות חיבור למאגרים פרטיים.

        אפשר לציין את הטווח באמצעות סימון ניתוב Classless Inter-Domain Routing‏ (CIDR) בפורמט STARTING_IP_ADDRESS/SUBNET_PREFIX_SIZE. לדוגמה, ל-192.0.2.0/24 יש אורך קידומת של 24. ‫24 הביטים הראשונים של טווח כתובות ה-IP משמשים כמסכה של רשת משנה (192.0.2.0), וטווח כתובות המארחים האפשריות הוא מ-192.0.2.0 עד 192.0.2.255.

        אורך הקידומת לא יכול להיות יותר מ-/29. אם לא מציינים ערך לטווח, מוקצה אוטומטית ערך ברירת מחדל של /24. אם לא מציינים ערך לאורך הקידומת, כתובות ה-IP מוקצות באופן אוטומטי ברשת ה-VPC המקושרת. אם לא מציינים ערך לכתובת ה-IP, המערכת מקצה לכתובת ה-IP טווח באופן אוטומטי ברשת ה-VPC המקושרת.

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

  8. לוחצים על יצירה כדי ליצור את המאגר הפרטי.

gcloud

יש שתי אפשרויות ליצירת מאגר פרטי חדש באמצעות gcloud: אפשר להעביר את קובץ ההגדרות של המאגר הפרטי לפקודה gcloud, או להעביר את אפשרויות ההגדרה ישירות לפקודה gcloud.

מעבירים את קובץ ההגדרות של המאגר הפרטי לפקודה gcloud:

  1. יוצרים את קובץ ההגדרות של המאגר הפרטי בפורמט YAML או JSON.

  2. מריצים את הפקודה הבאה gcloud, כאשר PRIVATEPOOL_ID הוא מזהה ייחודי של המאגר הפרטי, PRIVATEPOOL_CONFIG_FILE הוא השם של קובץ ההגדרות של המאגר הפרטי ו-REGION הוא האזור שבו רוצים ליצור את המאגר הפרטי:

    gcloud builds worker-pools create PRIVATEPOOL_ID --config-from-file PRIVATEPOOL_CONFIG_FILE --region REGION
    

    הפלט אמור להיראות כך:

    Created [https://cloudbuild.googleapis.com/v1/projects/gcb-docs-project/locations/us-central1/workerPools/private-pool].
    NAME                 CREATE_TIME                STATUS
    private-pool  2018-11-19T16:08:24+00:00  RUNNING
    

העברת אפשרויות ההגדרה ישירות לפקודה gcloud:

מריצים את הפקודה הבאה gcloud:

    gcloud builds worker-pools create PRIVATEPOOL_ID \
        --project=PRIVATEPOOL_PROJECT_ID \
        --region=REGION \
        --peered-network=PEERED_NETWORK \
        --worker-machine-type=PRIVATEPOOL_MACHINE_TYPE \
        --worker-disk-size=PRIVATEPOOL_DISK_SIZE_GB \
        --no-public-egress \
        --worker-release=CHANNEL_OR_VERSION

כאשר:

  • ‫PRIVATEPOOL_ID: מזהה ייחודי של המאגר הפרטי. הערך צריך להיות באורך של 1-63 תווים, והתווים התקפים הם [a-zA-Z0-9_-]+.
  • ‫PRIVATEPOOL_PROJECT_ID: המזהה של Google Cloud הפרויקט שבו רוצים ליצור את המאגר הפרטי.
  • ‫REGION: אחד מהאזורים הנתמכים.
  • ‫PEERED_NETWORK: כתובת ה-URL של משאב הרשת של הרשת שמקושרת לרשת של בעלים של שירות מנוהל. ‫PEERED_NETWORK צריך להיות בפורמט projects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME, כאשר NETWORK_PROJECT_ID הוא מזהה הפרויקט של פרויקט Google Cloud שמכיל את רשת ה-VPC ו-NETWORK_NAME הוא השם של רשת ה-VPC. אם לא מציינים ערך, Cloud Build משתמש ברשת של ספק השירות.
  • ‫PRIVATEPOOL_DISK_SIZE_GB: גודל הדיסק שמצורף למאגר הפרטי. מציינים ערך שגדול מ-100 או שווה לו, וקטן מ-4,000 או שווה לו. אם לא מציינים גודל דיסק, Cloud Build משתמש בגודל דיסק של 100. ההגדרה של --worker-disk-size מבוטלת אם מציינים גודל דיסק שונה באמצעות --disk-size במהלך gcloud builds submit.
  • ‫PRIVATEPOOL_MACHINE_TYPE: סוג המכונה של העובד. אם לא מציינים ערך, Cloud Build משתמש בערך ברירת המחדל e2-standard-2. רשימה של סוגי המכונות הנתמכים מופיעה במאמר בנושא סכימת קובץ ההגדרות של מאגר פרטי. ההגדרה --worker-machine-type מבוטלת אם מציינים סוג מכונה אחר באמצעות --machine-type במהלך gcloud builds submit.
  • ‫--no-public-egress: אם הדגל הזה מוגדר, המאגר הפרטי נוצר ללא כתובת IP חיצונית. מגדירים את הדגל הזה אם יוצרים את המאגר הפרטי בתוך גבולות גזרה של VPC Service Controls.
  • ‫CHANNEL_OR_VERSION: ערוץ ההפצה או הגרסה של המאגר הפרטי. מידע נוסף זמין במאמר בנושא ערוצי הפצה של Cloud Build.

API

  1. יוצרים קובץ תצורה של המאגר הפרטי בשם workerpool.json.

  2. משתמשים ב-cURL כדי לשלוח קריאה ל-Cloud Build API:

        curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)"
            -H "Content-Type: application/json" \
            https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/?workerPoolId=PRIVATEPOOL_ID -d @workerpool.json
    

    כאשר:

    • ‫PRIVATEPOOL_PROJECT_ID: המזהה של Google Cloud הפרויקט שבו רוצים ליצור את המאגר הפרטי.
    • ‫PRIVATEPOOL_ID: המזהה של המאגר הפרטי. הערך הזה צריך להיות באורך של 1-63 תווים, והתווים התקפים הם [a-zA-Z0-9_-]+.
    • ‫REGION: אחד מהאזורים הנתמכים ליצירת המאגר הפרטי.

יצירת מאגר פרטי בתוך service perimeter של VPC Service Controls

כדי ליצור מאגר פרטי עם גבול גזרה של VPC Service Controls, אפשר לעיין במאמר בנושא שימוש ב-VPC Service Controls.

עדכון מאגר פרטי

כדי לוודא של- יש את ההרשאות שנדרשות ליצירת מאגר פרטי, צריך לבקש מהאדמין להקצות ל- את תפקיד ה-IAM עריכה של מאגר עובדים ב-Cloud Build (roles/cloudbuild.workerPoolEditor) בחשבון השירות. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

כדי לעדכן את התצורה של מאגר פרטי:

המסוף

  1. פותחים את הדף Worker pool במסוף Google Cloud :

    פתיחת הדף של מאגר העובדים של Cloud Build

  2. בוחרים את הפרויקט שבו יצרתם את המאגר הפרטי.

  3. לוחצים על השם של המאגר הפרטי.

  4. בדף Edit private pool, מעדכנים את סוג המכונה, גודל הדיסק והגדרות אחרות לפי הצורך.

  5. לוחצים על Save.

gcloud

על ידי עדכון קובץ ההגדרות של המאגר הפרטי:

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

  2. מריצים את הפקודה הבאה, כאשר PRIVATEPOOL_ID הוא המזהה הייחודי של המאגר הפרטי, REGION הוא האזור שבו נמצא המאגר הפרטי ו-PRIVATEPOOL_CONFIG_FILE הוא השם של קובץ התצורה של המאגר הפרטי:

    gcloud builds worker-pools update PRIVATEPOOL_ID \
        --region=REGION \
        --config-from-file=PRIVATEPOOL_CONFIG_FILE
    

העברת הערך לעדכון ישירות לפקודה gcloud builds worker-pools update:

   gcloud builds worker-pools update PRIVATEPOOL_ID \
       --region=REGION \
       --worker-disk-size=PRIVATEPOOL_DISK_SIZE \
       --worker-machine-type=PRIVATEPOOL_MACHINE_TYPE
       --worker-release=CHANNEL_OR_VERSION

כאשר:

  • ‫PRIVATEPOOL_ID: המזהה של המאגר הפרטי הקיים. אי אפשר לעדכן את הערך הזה. צריך לציין מזהה של מאגר פרטי קיים.
  • ‫REGION: האזור שבו יצרתם את המאגר הפרטי.
  • ‫PRIVATEPOOL_DISK_SIZE: גודל הדיסק המעודכן.
  • ‫PRIVATEPOOL_MACHINE_TYPE הוא סוג המכונה המעודכן.
  • ‫CHANNEL_OR_VERSION: הוא ערוץ ההפצה או הגרסה. אם לא מציינים ערך, ערך ברירת המחדל הוא stable.

API

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

  2. משתמשים ב-cURL כדי לקרוא ל-Cloud Build API, ומחליפים את המשתנים בערכים המתאימים:

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID \
        -d @workerpool.json
    

    כאשר:

    • ‫PRIVATEPOOL_ID: המזהה של המאגר הפרטי.
    • ‫PRIVATEPOOL_PROJECT_ID: המזהה של Google Cloud הפרויקט שמכיל את המאגר הפרטי.
    • ‫REGION: האזור שבו יצרתם את המאגר הפרטי.

הצגת הפרטים של המאגר הפרטי

כדי לוודא של- יש את ההרשאות שנדרשות ליצירת מאגר פרטי, צריך לבקש מהאדמין לתת ל- את תפקיד ה-IAM‏ Cloud Build WorkerPool Viewer (‏roles/cloudbuild.workerPoolViewer) בחשבון השירות. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

כדי לראות את הפרטים של מאגר פרטי:

המסוף

  1. פותחים את הדף Worker pool במסוף Google Cloud :

    פתיחת הדף של מאגר העובדים של Cloud Build

  2. בוחרים את הפרויקט שבו יצרתם את המאגר הפרטי.

  3. לוחצים על השם של המאגר הפרטי.

    מוצג הדף עריכת מאגר פרטי.

gcloud

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

gcloud builds worker-pools list --region=REGION --project=PRIVATEPOOL_PROJECT_ID

כאשר:

  • ‫PRIVATEPOOL_PROJECT_ID הוא המזהה שלGoogle Cloud הפרויקט שמכיל את המאגר הפרטי.
  • ‫REGION הוא האזור של הבריכה הפרטית.

הפלט אמור להיראות כך:

NAME                                                                  CREATE_TIME                STATUS
projects/[PRIVATEPOOL_PROJECT_ID]/locations/us-central1/workerPools/[PRIVATEPOOL_ID]      2018-11-19T16:08:24+00:00  RUNNING

אם אתם יודעים את מזהה המאגר הפרטי, מריצים את הפקודה הבאה כדי לקבל מידע נוסף על המאגר הפרטי:

gcloud builds worker-pools describe PRIVATEPOOL_ID \
    --region=REGION \
    --project=PRIVATEPOOL_PROJECT_ID

כאשר:

  • ‫PRIVATEPOOL_ID: המזהה של המאגר הפרטי.
  • ‫REGION: האזור שבו יצרתם את המאגר הפרטי.
  • ‫PRIVATEPOOL_PROJECT_ID: המזהה של Google Cloud הפרויקט שמכיל את המאגר הפרטי.

API

אם אתם לא יודעים את המזהה של המאגר הפרטי, אתם יכולים להריץ את פקודת cURL הבאה כדי לראות את הפרטים של המאגר הפרטי, כאשר PRIVATEPOOL_PROJECT_ID הוא המזהה של הפרויקט Google Cloud שמכיל את המאגר הפרטי:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools

אם אתם יודעים את המזהה של המאגר הפרטי, מריצים את פקודת curl הבאה כדי לקבל את הפרטים של המאגר הפרטי:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID

כאשר:

  • ‫PRIVATEPOOL_ID: המזהה של המאגר הפרטי.
  • ‫PRIVATEPOOL_PROJECT_ID: המזהה של Google Cloud הפרויקט שמכיל את המאגר הפרטי.
  • ‫REGION: האזור שבו יצרתם את המאגר הפרטי.

צפייה באומדני מחירים של בריכות פרטיות

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

  • מספר המעבדים הווירטואליים
  • סוג המכונה
  • זיכרון
  • דקות של תהליך build
  • אזור, רק למכונות N2D ו-C3

התמחור המשוער לא כולל עלויות של נפח דיסק נוסף מעבר ל-100GB שכלולים כברירת מחדל. המחיר המשוער עשוי להיות שונה מהמחיר הסופי, בהתאם להגדרת הבנייה הסופית, לדקות הבנייה בפועל שנעשה בהן שימוש ולגורמים אחרים. מידע נוסף על התמחור של Cloud Build

מחיקת מאגר פרטי

כדי לוודא שלחשבון השירות יש את ההרשאות שנדרשות ליצירת מאגר פרטי, צריך לבקש מהאדמין להקצות לחשבון השירות את תפקיד ה-IAM בעלים של WorkerPool ב-Cloud Build (roles/cloudbuild.workerPoolOwner). כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

כדי למחוק מאגר פרטי:

המסוף

  1. פותחים את הדף Worker pool במסוף Google Cloud :

    פתיחת הדף של מאגר העובדים של Cloud Build

  2. בשורת המאגר הפרטי, לוחצים על סמל האשפה.

gcloud

כדי למחוק מאגר פרטי, מריצים את הפקודה gcloud builds worker-pools delete:

 gcloud builds worker-pools delete PRIVATEPOOL_ID \
     --region=REGION \
     --project=PRIVATEPOOL_PROJECT_ID

כאשר:

  • ‫PRIVATEPOOL_ID: המזהה של המאגר הפרטי.
  • ‫PRIVATEPOOL_PROJECT_ID: המזהה של Google Cloud הפרויקט שמכיל את המאגר הפרטי.
  • ‫REGION: האזור שבו יצרתם את המאגר הפרטי.

אחרי שמחקתם את המאגר הפרטי, הפלט אמור להיראות כך:

 Deleted [https://cloudbuild.googleapis.com/v1/projects/gcb-docs-project/locations/us-central1/workerPools/[PRIVATEPOOL_ID].

API

משתמשים ב-cURL כדי לשלוח קריאה ל-Cloud Build API:

  curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID

כאשר:

  • ‫PRIVATEPOOL_ID: המזהה של המאגר הפרטי.
  • ‫PRIVATEPOOL_PROJECT_ID: המזהה של Google Cloud הפרויקט שמכיל את המאגר הפרטי.
  • ‫REGION: האזור שבו יצרתם את המאגר הפרטי.

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