יצירת אשכול Autopilot

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

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

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

  • מפעילים את ממשק Google Kubernetes Engine API.
  • הפעלת 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.
  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, עוברים לקטע רישום Fleet ופועלים לפי ההוראות במסוף 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). הפקודה שנוצרה מועתקת ל-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. מוצאים את האשכול ברשימת האשכולות. בקטע מצב, צריך להופיע הכיתוב טייס אוטומטי.

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