יצירת אשכול Autopilot

בדף הזה מוסבר איך ליצור אשכול Google Kubernetes Engine ‏ (GKE) במצב אוטומטי. ‫Autopilot הוא מצב פעולה של GKE שמאפשר לכם להתמקד בשירותים ובאפליקציות שלכם, בזמן ש-GKE מנהל את הצמתים והתשתית שלכם. כשפורסים את עומסי העבודה, 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. בשדה Project number, לוחצים על Copy to clipboard.
  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.
  7. לוחצים על Save.

gcloud

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

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

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

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

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

יצירת אשכול Autopilot

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

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

אפשר ליצור אשכול Autopilot באמצעות Google Cloud CLI,‏ Google Cloud המסוף או Terraform:

gcloud

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

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --project=PROJECT_ID

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

  • ‫CLUSTER_NAME: השם של אשכול Autopilot החדש.
  • ‫LOCATION: האזור של האשכול.
  • PROJECT_ID: מזהה הפרויקט.

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

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

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

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

לרשימה של אפשרויות אחרות שאפשר לציין, אפשר לעיין במאמרי העזרה בנושא gcloud container clusters create-auto.

המסוף

מבצעים את המשימות הבאות:

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

    מעבר לדף Create an Autopilot cluster

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

  3. מזינים את השם של האשכול.

  4. בוחרים אזור לאשכול.

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

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

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

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

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

Terraform

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

resource "google_container_cluster" "default" {
  name     = "gke-autopilot-basic"
  location = "us-central1"

  enable_autopilot = true
}

כדי ליצור אשכול Autopilot שמשתמש בחשבון שירות מותאם אישית של IAM:

  1. יוצרים חשבון שירות ב-IAM ומקצים לו את התפקיד roles/container.defaultNodeServiceAccount בפרויקט:

    resource "google_service_account" "default" {
      account_id   = "gke-node-service-account"
      display_name = "GKE node service account"
    }
    
    data "google_project" "project" {
    }
    
    resource "google_project_iam_member" "default" {
      project = data.google_project.project.project_id
      role    = "roles/container.defaultNodeServiceAccount"
      member  = "serviceAccount:${google_service_account.default.email}"
    }
  2. יוצרים אשכול Autopilot שמשתמש בחשבון השירות החדש:

    resource "google_container_cluster" "default" {
      name     = "autopilot-custom-account"
      location = "us-central1"
    
      enable_autopilot = true
    
      cluster_autoscaling {
        auto_provisioning_defaults {
          service_account = google_service_account.default.email
        }
      }
    }

הדוגמה בדף הזה עוסקת בהקצאת אשכול Autopilot בסיסי. דוגמה מלאה להגדרת רשת VPC בהתאמה אישית ולפריסת עומס עבודה לדוגמה מופיעה במאמר יצירת אשכול ופריסת עומס עבודה באמצעות Terraform. למידע נוסף על שימוש ב-Terraform, ראו הקצאת משאבי GKE באמצעות Terraform.

יצירת אשכול Autopilot עם ערוץ הפצה וגרסה ספציפיים

כברירת מחדל, GKE רושם אשכולות Autopilot חדשים בערוץ ההפצה הרגיל, עם גרסת ברירת המחדל של GKE בערוץ. אפשר לשנות את ערוץ ההפצה כשיוצרים אשכול Autopilot באמצעות ה-CLI של gcloud,‏ מסוף Google Cloud או Terraform.

אפשר גם להגדיר גרסה ספציפית של GKE כשיוצרים אשכול באמצעות ה-CLI של gcloud. הגדרת גרסת האשכול שימושית רק אם יש לכם דרישה לגרסה ספציפית. כדי להגדיר את גרסת האשכול, מציינים את הדגל --cluster-version בפקודה gcloud container clusters create-auto. הגרסה שאתם מציינים חייבת להיות גרסה זמינה של GKE.

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

gcloud

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

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --release-channel=RELEASE_CHANNEL

מחליפים את RELEASE_CHANNEL בשם של ערוץ ההפצה של האשכול. ערך ברירת המחדל הוא Regular.

אופציונלי: מציינים את --cluster-version=CLUSTER_VERSION, ומחליפים את CLUSTER_VERSION בגרסת GKE של האשכול, כמו 1.29.4-gke.1043002. הגרסה שאתם מציינים חלה עד שגרסה חדשה יותר הופכת לברירת המחדל בערוץ ההפצה שלכם. לאחר מכן, GKE משדרג באופן אוטומטי את האשכול לגרסת ברירת המחדל החדשה. אם לא מציינים את הדגל הזה, GKE מגדיר את הגרסה לגרסת ברירת המחדל של ערוץ ההפצה.

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

המסוף

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

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

    מעבר לדף Create an Autopilot cluster

  2. בקטע Cluster basics, מבצעים את הפעולות הבאות:

    1. מציינים שם.
    2. בוחרים Region.
  3. בקטע הגדרות מתקדמות, בוחרים ערוץ הפצה.

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

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

Terraform

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

resource "google_container_cluster" "default" {
  name     = "gke-autopilot-release-channel"
  location = "us-central1"

  enable_autopilot = true

  release_channel {
    channel = "REGULAR"
  }
}

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

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

התחברות לאשכול

gcloud

gcloud container clusters get-credentials CLUSTER_NAME \
    --location=LOCATION \
    --project=PROJECT_ID

הפקודה הזו מגדירה את kubectl כך שישתמש באשכול שיצרתם.

המסוף

  1. ברשימת האשכולות, לצד האשכול שאליו רוצים להתחבר, לוחצים על Actions ואז על Connect.

  2. לוחצים על Run in Cloud Shell כשמופיעה בקשה לכך. הפקודה שנוצרה מועתקת ל-Cloud Shell, לדוגמה:

    gcloud container clusters get-credentials autopilot-cluster --location=us-central1 --project=autopilot-test
    
  3. מקישים על Enter כדי להריץ את הפקודה.

אימות מצב האשכול

כדי לוודא שהאשכול הוא מסוג Autopilot, אתם יכולים להשתמש ב-CLI של gcloud או במסוף Google Cloud .

gcloud

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

gcloud container clusters describe CLUSTER_NAME \
    --location=LOCATION

הפלט מכיל את הפרטים הבאים:

autopilot:
  enabled: true

המסוף

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

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

    כניסה ל-Google Kubernetes Engine

  2. מוצאים את האשכול ברשימת האשכולות. בקטע מצב, צריך להיות כתוב מצב אוטומטי.

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