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

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

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

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

  2. מפעילים את Cloud Build API.

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

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (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. בקטע סוג הרשת, בוחרים באחת מהאפשרויות הבאות:

    1. רשת ברירת מחדל: בוחרים באפשרות הזו אם אפשר לגשת למופע דרך האינטרנט הציבורי. כשבוחרים באפשרות רשת ברירת מחדל, המאגר הפרטי משתמש ברשת של ספק השירות. מידע נוסף זמין במאמר בנושא הגדרת סביבה לשימוש במאגרי IP פרטיים ברשת 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 חיצוניות: האפשרות הזו מסומנת כברירת מחדל כדי לאפשר למאגרים פרטיים לגשת לאינטרנט הציבורי. כדי להגביל את הגישה לרשת הפרטית, צריך לבטל את הסימון של התיבה הזו.

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

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

כאשר:

  • 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.

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. מעדכנים את השדה שרוצים לשנות בקובץ ההגדרות של מאגר כתובות ה-IP הפרטי.

  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

כאשר:

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

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: האזור שבו יצרתם את המאגר הפרטי.

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

כשיוצרים מאגר פרטי או מעדכנים אותו, בסרגל הצד Monthly estimate בדפים Create private pool ו-Edit private pool מוצגת הערכה של העלות החודשית של הפעלת המאגר. החישוב מבוסס על הגורמים הבאים:

  • מספר המעבדים הווירטואליים
  • סוג המכונה
  • זיכרון
  • דקות של תהליך 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: האזור שבו יצרתם את המאגר הפרטי.

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