יצירת אשכול Autopilot

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

יצירת אשכול 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 ופועלים לפי ההוראות במסוף בנושא Create and register a new cluster כדי להשלים את רישום האשכול. Google Cloud
  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
        }
      }
    }

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

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

כברירת מחדל, מערכת GKE רושמת אשכולות חדשים של Autopilot בערוץ ההפצה Regular, עם גרסת 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 זמין במאמר תמיכה ב-Terraform ב-GKE.

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

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

gcloud

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

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

המסוף

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

  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

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

gcloud container clusters describe CLUSTER_NAME \
    --location=LOCATION

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

autopilot:
  enabled: true

המסוף

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

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

    מעבר אל Google Kubernetes Engine

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

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