יצירת אשכול אזורי

בדף הזה מוסבר איך ליצור אשכול אזורי רגיל ב-Google Kubernetes Engine ‏ (GKE), עם התכונות שמופעלות כברירת מחדל. לאשכולות של תחום מוגדר יש מופע אחד של מישור הבקרה בתחום אחד. בהתאם לדרישות הזמינות שלכם, אתם יכולים לבחור לפרוס את הצמתים של האשכול האזורי באזור אחד או בכמה אזורים.

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

הדף הזה מיועד לאופרטורים, למומחי Cloud Architect ולמפתחים שצריכים ליצור ולהגדיר אשכולות, ושפורסים עומסי עבודה ב-GKE. מידע נוסף על תפקידים נפוצים ומשימות לדוגמה שאנחנו מתייחסים אליהם ב Google Cloud תוכן זמין במאמר תפקידים נפוצים של משתמשים ומשימות ב-GKE.

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

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

לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:

  • מפעילים את ממשק ה-API של Google Kubernetes Engine.
  • הפעלת Google Kubernetes Engine API
  • אם רוצים להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה gcloud components update כדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.

הגדרה של חשבונות שירות ב-IAM ל-GKE

‫GKE משתמש בחשבונות שירות של IAM שמצורפים לצמתים כדי להריץ משימות מערכת כמו רישום ביומן ומעקב. לפחות, חשבונות השירות של הצמתים צריכים לקבל את התפקיד Kubernetes Engine Default Node Service Account ‏(roles/container.defaultNodeServiceAccount) בפרויקט. כברירת מחדל, GKE משתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, שנוצר באופן אוטומטי בפרויקט, כחשבון השירות של הצומת.

כדי להעניק את התפקיד roles/container.defaultNodeServiceAccount לחשבון השירות שמוגדר כברירת המחדל של Compute Engine, מבצעים את השלבים הבאים:

המסוף

  1. נכנסים לדף Welcome:

    מעבר לדף Welcome

  2. בשדה מספר הפרויקט, לוחצים על העתקה ללוח.
  3. נכנסים לדף IAM:

    כניסה לדף IAM

  4. לוחצים על Grant access.
  5. בשדה New principals, מציינים את הערך הבא:
    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    מחליפים את PROJECT_NUMBER במספר הפרויקט שהעתקתם.
  6. בתפריט Select a role (בחירת תפקיד), בוחרים בתפקיד Kubernetes Engine Default Node Service Account (חשבון השירות שמשמש כברירת מחדל לצומת ב-Kubernetes Engine).
  7. לוחצים על Save.

gcloud

  1. איך מוצאים את Google Cloud מספר הפרויקט:
    gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)"

    מחליפים את PROJECT_ID במזהה הפרויקט.

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

    12345678901
    
  2. מקצים לחשבון השירות של Compute Engine שמוגדר כברירת מחדל את התפקיד roles/container.defaultNodeServiceAccount:
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role="roles/container.defaultNodeServiceAccount"

    מחליפים את PROJECT_NUMBER במספר הפרויקט מהשלב הקודם.

יצירת אשכול אזורי

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

סקירה כללית של אפשרויות ההגדרה של אשכולים מופיעה במאמר מידע על אפשרויות ההגדרה של אשכולים, ורשימה מלאה של האפשרויות האפשריות מופיעה במדריכי העזר של gcloud container clusters create ו-Terraform google_container_cluster.

אפשר ליצור אשכול אזורי באמצעות ה-CLI של gcloud,‏Google Cloud מסוף Google Cloud או Terraform.

אם אתם מפתחים אפליקציות GKE באמצעות Cloud Code ל-VS Code, כדאי לנסות ליצור אשכולות באמצעות Cloud Code.

gcloud

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

מחליפים את מה שכתוב בשדות הבאים:

  • CLUSTER_NAME: השם של האשכול החדש.
  • CHANNEL: סוג ערוץ ההפצה, שיכול להיות אחד מהערכים הבאים: rapid, ‏regular, ‏stable או None. כברירת מחדל, האשכול רשום לערוץ ההפצה regular, אלא אם מציינים לפחות אחד מהדגלים הבאים: --cluster-version,‏ --release-channel, ‏ --no-enable-autoupgrade ו---no-enable-autorepair.
  • CONTROL_PLANE_LOCATION: האזור של Compute Engine במישור הבקרה של האשכול.
  • VERSION: הגרסה שרוצים לציין עבור האשכול.
  • COMPUTE_ZONE,COMPUTE_ZONE1,[...]: האזורים שבהם נוצרים הצמתים. אפשר לציין כמה אזורים שרוצים עבור האשכול. כל האזורים צריכים להיות באותו אזור כמו מישור הבקרה של האשכול, שמוגדר באמצעות הדגל --location. במקרה של אשכולות אזוריים,--node-locations צריך להכיל את האזור הראשי של האשכול.

מומלץ מאוד לציין חשבון שירות IAM עם הרשאות מינימליות, שהצמתים יוכלו להשתמש בו במקום בחשבון השירות שמוגדר כברירת מחדל של Compute Engine. במאמר שימוש בחשבון שירות עם הרשאות מינימליות מוסבר איך ליצור חשבון שירות עם הרשאות מינימליות.

כדי לציין חשבון שירות מותאם אישית ב-CLI של gcloud, מוסיפים את הדגל הבא לפקודה:

--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

מחליפים את SERVICE_ACCOUNT_NAME בשם של חשבון השירות עם ההרשאות המינימליות.

שימוש בערוץ הפצה ספציפי:

כדי ליצור אשכול חדש באמצעות ערוץ הפצה ספציפי, מריצים את הפקודה הבאה:

gcloud container clusters create CLUSTER_NAME \
    --release-channel CHANNEL \
    --location CONTROL_PLANE_LOCATION \
    --node-locations COMPUTE_ZONE,COMPUTE_ZONE1

שימוש בגרסה ספציפית:

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

gcloud container clusters create CLUSTER_NAME \
    --cluster-version VERSION \
    --location CONTROL_PLANE_LOCATION \
    --node-locations COMPUTE_ZONE,COMPUTE_ZONE1

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

כדי ליצור אשכול חדש באמצעות גרסת ברירת המחדל לאשכולות שלא רשומים לערוץ הפצה, לא צריך לציין גרסת אשכול, אבל צריך להגדיר את ערוץ ההפצה ל-None:

gcloud container clusters create CLUSTER_NAME \
    --release-channel None \
    --location CONTROL_PLANE_LOCATION \
    --node-locations COMPUTE_ZONE,COMPUTE_ZONE1

דוגמה

הפקודה הבאה יוצרת אשכול רב-אזורי בשם example-cluster, כאשר מישור הבקרה של האשכול ממוקם באזור us-central-a, ויש שלושה מיקומי צמתים. האשכול רשום בregularערוץ הפצה.

אם לא מציינים את הדגל --num-nodes, מספר הצמתים שנוצרים בכל אזור על ידי האשכול הוא שלוש כברירת מחדל. מכיוון שצוינו שלושה אזורים, הפקודה הזו יוצרת אשכול עם תשעה צמתים, שלושה צמתים בכל אחד מהאזורים us-central1-a, us-central1-b ו-us-central1-c.

gcloud container clusters create example-cluster \
    --location us-central1-a \
    --node-locations us-central1-a,us-central1-b,us-central1-c

המסוף

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

  1. נכנסים לדף Create a Kubernetes cluster במסוף Google Cloud .

    מעבר אל יצירת אשכול Kubernetes

  2. בקטע Cluster basics (הגדרות בסיסיות של אשכול), מבצעים את הפעולות הבאות:

    1. מזינים את השם של האשכול.
    2. בשדה Location type, בוחרים באפשרות Zonal ואז בוחרים את האזור של האשכול.
    3. אם יוצרים אשכול רב-אזורי, מסמנים את התיבה Specify default node locations (ציון מיקומי צמתים שמוגדרים כברירת מחדל) ובוחרים אזורים נוספים שבהם רוצים להפעיל את מאגרי הצמתים.

    4. בוחרים ערוץ הפצה. אפשר גם לבחור באפשרות No channel (ללא ערוץ) מהרשימה הנפתחת, אבל מומלץ לעיין בהשוואה בין אשכולות שנרשמו לערוץ הפצה לבין אשכולות שלא נרשמו לפני שבוחרים באפשרות הזו. פלטפורמת GKE משדרגת אוטומטית אשכולות שלא נמצאים בערוץ הפצה עם גרסאות מהערוץ היציב.

    5. אופציונלי: מציינים גרסת מישור בקרה מהרשימה הנפתחת Version.

  3. אופציונלי: מגדירים הגדרות אחרות לאשכול החדש.

  4. אופציונלי: אם רוצים לרשום את האשכול החדש לצי, עוברים לקטע Fleet registration ופועלים לפי ההוראות במסוף בנושא Create and register a new cluster כדי להשלים את רישום האשכול. Google Cloud

  5. בחלונית הניווט, בקטע Node Pools (מאגרי צמתים), לוחצים על default-pool (מאגר ברירת המחדל).

  6. בקטע פרטי מאגר צמתים, ממלאים את הפרטים הבאים:

    1. מזינים שם למאגר הצמתים שמוגדר כברירת מחדל.
    2. אופציונלי: בוחרים את גרסת הצומת.
    3. מזינים את מספר הצמתים שרוצים ליצור באשכול. צריכה להיות לכם מכסת משאבים זמינה לצמתים ולמשאבים שלהם (כמו מסלולי חומת אש).
    4. אופציונלי: אפשר להשבית את השדרוגים האוטומטיים של הצמתים, אבל מומלץ לעיין בשיקולים לפני השבתת השדרוגים האוטומטיים של הצמתים לפני שבוחרים באפשרות הזו.
  7. בחלונית הניווט, בקטע Node Pools (מאגרי צמתים), לוחצים על Nodes (צמתים).

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

  9. בוחרים את Machine configuration שיוגדר כברירת מחדל לשימוש במופעים. החיוב על כל סוג מכונה מתבצע באופן שונה. סוג המכונה המוגדר כברירת מחדל הוא e2-medium. למידע על תמחור סוגי מכונות, אפשר לעיין בגיליון המחירים של סוגי המכונות.

  10. ברשימה הנפתחת סוג דיסק האתחול, בוחרים את סוג הדיסק.

  11. מזינים את גודל דיסק האתחול.

  12. אופציונלי: בחלונית הניווט, בקטע Node Pools, לוחצים על Security.

  13. אופציונלי, אפשר לציין חשבון שירות מותאם אישית ב-IAM עבור הצמתים:
    1. בדף הגדרות מתקדמות, מרחיבים את הקטע אבטחה.
    2. בתפריט Service account בוחרים את חשבון השירות המועדף.

    מומלץ מאוד לציין חשבון שירות IAM עם הרשאות מינימליות, שהצמתים יוכלו להשתמש בו במקום בחשבון השירות שמוגדר כברירת מחדל של Compute Engine. במאמר שימוש בחשבון שירות עם הרשאות מינימליות מוסבר איך ליצור חשבון שירות עם הרשאות מינימליות.

  14. לוחצים על יצירה.

Terraform

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

resource "google_container_cluster" "default" {
  name               = "gke-standard-zonal-single-zone"
  location           = "us-central1-a"
  initial_node_count = 1
}

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

resource "google_container_cluster" "default" {
  name               = "gke-standard-zonal-multi-zone"
  location           = "us-central1-a"
  node_locations     = ["us-central1-b", "us-central1-c"]
  initial_node_count = 2
}

מידע נוסף על שימוש ב-Terraform זמין במאמר תמיכה ב-Terraform ל-GKE.

אינטראקציה עם אשכול באמצעות kubectl

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

תבניות של אשכולות

בעבר, GKE תמך בתבניות לאשכולות. התבניות האלה הוסרו ממסוף Google Cloud , אבל עדיין אפשר לגשת אליהן מהקישורים הבאים:

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

נסו בעצמכם

אנחנו ממליצים למשתמשים חדשים ב-Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של GKE בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300 $להרצה, לבדיקה ולפריסה של עומסי העבודה.

אני רוצה לנסות את GKE בחינם