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

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

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

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

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

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

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

אפשר ליצור אשכול אלפא באמצעות מסוף Google Cloud או gcloud CLI. מומלץ להשתמש ב-CLI של gcloud מהסיבות הבאות:

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

המסוף

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

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

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

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

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

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

  4. אופציונלי: אם רוצים לרשום את האשכול החדש לצי, עוברים לקטע רישום צי ופועלים לפי ההוראות במסוף Google Cloud בנושא יצירה ורישום של אשכול חדש כדי להשלים את רישום האשכול.

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

  6. בקטע Node pool details, ממלאים את הפרטים הבאים:

    1. מזינים שם למאגר הצמתים שמוגדר כברירת מחדל.
    2. אופציונלי: בוחרים את גרסת הצומת.
    3. מזינים את מספר הצמתים שרוצים ליצור באשכול. צריכה להיות לכם מכסת משאבים זמינה לצמתים ולמשאבים שלהם (למשל, מסלולים של חומת אש).
    4. אופציונלי: אפשר להשבית את השדרוגים האוטומטיים של הצמתים, אבל מומלץ לעיין בשיקולים לפני השבתת השדרוגים האוטומטיים של הצמתים לפני שבוחרים באפשרות הזו.
    5. מבטלים את הסימון של האפשרויות הפעלת שדרוג אוטומטי והפעלת תיקון אוטומטי.
  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. בחלונית הניווט, בקטע Cluster, לוחצים על Features.

  15. לוחצים על הפעלת תכונות אלפא של Kubernetes באשכול הזה.

  16. קוראים את האזהרה ומסמנים את התיבה ההשלכות ברורות לי כדי לאשר אותה.

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

gcloud

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

gcloud container clusters create CLUSTER_NAME \
    --release-channel=CHANNEL \
    --enable-kubernetes-alpha \
    --no-enable-autorepair \
    --no-enable-autoupgrade \
    --location CONTROL_PLANE_LOCATION [\
    --alpha-cluster-feature-gates FEATURE_GATES_LIST]

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

  • CLUSTER_NAME: השם שתבחרו לאשכול.
  • CHANNEL: סוג ערוץ ההפצה. מומלץ להשתמש בערוץ Rapid ‏ (rapid). עם זאת, אם אתם לא רוצים לרשום את האשכול שלכם לערוץ הפצה, אתם יכולים להשתמש ב-None, אבל ההגדרה הזו יצאה משימוש ותוסר.
  • CONTROL_PLANE_LOCATION: המיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור זמין לאשכולות אזוריים.
  • --cluster-version VERSION: (אופציונלי) מציין את הגרסה של GKE להרצה באשכול. אם לא מציינים גרסה, האשכול מריץ את גרסת הטלאי שמוגדרת כברירת מחדל ליצירת אשכול עבור ערוץ ההפצה שנבחר, כמו שמוצג בטבלה גרסאות נוכחיות.
  • FEATURE_GATES_LIST: רשימת שערי התכונות שרוצים להפעיל או להשבית באופן שונה מערכי ברירת המחדל. כל מחרוזת מייצגת הפעלה או השבתה של שער תכונות. לדוגמה, featureX=true, featureY=false. אם לא מציינים את הדגל הזה, GKE יוצר את האשכול באמצעות ערכי ברירת המחדל של GKE, כלומר כל שערי התכונות בגרסת אלפא שזמינים בגרסת Kubernetes מופעלים. גם שערי התכונות בגרסת הבטא שמופעלים כברירת מחדל על ידי Kubernetes מופעלים. מידע נוסף על האפשרויות של Feature Gate שזמינות בגרסאות ספציפיות, ועל תכונות בטא שמופעלות כברירת מחדל, זמין במאמר Feature Gate לתכונות אלפא או בטא במסמכי התיעוד של Kubernetes. כשמציינים את הדגל הזה, משנים את האופן שבו שערי התכונות מוגדרים כברירת מחדל על ידי GKE, כך ששערי התכונות שמופעלים יהיו שונים. מידע נוסף זמין במאמר בנושא שערי תכונות ואשכולות אלפא.

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

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

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

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

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

This will create a cluster with Kubernetes alpha features enabled.
- This cluster will not be covered by the GKE SLA and should
  not be used for production workloads.
- You will not be able to upgrade the master or nodes.
- The cluster will be deleted after 30 days.

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

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

בדיקת המצב של שער תכונה באשכול אלפא

באמצעות אשכולות אלפא, אתם יכולים להפעיל או להשבית באופן סלקטיבי את שערי התכונות. מידע נוסף זמין במאמר Feature gates וקלאסטרים של אלפא.

כדי לבדוק את מצב שער התכונה באשכול, אפשר לעיין במאמר בדיקת מצב שער התכונה.

איך בודקים מתי יפוג התוקף של אשכול אלפא

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

gcloud container clusters list

פתרון בעיות ביצירת אשכול אלפא עם שערים לתכונות

אם מנסים ליצור אשכול עם שער תכונה לא תקין, או עם שער תכונה שלא נתמך בגרסת Kubernetes של האשכול, יכול להיות שהאשכול ייווצר במצב שגיאה.

ב-Cloud Logging תוכלו למצוא הודעה דומה להודעה הבאה:

failed to set feature gates from initial flags-based config:
unrecognized feature gate: UNRECOGNIZED_FEATURE_GATE_NAME

אם נתקלים בשגיאה הזו, צריך למחוק את האשכול שנכשל. בודקים את האיות ואת התאימות של שערי התכונות לגרסת Kubernetes שצוינה. אחר כך מנסים ליצור שוב את האשכול.

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