עדכון הפרמטרים של אשכול AWS

בדף הזה מוסבר איך לעדכן את ההגדרות של אשכול GKE ב-AWS. אפשר להשתמש בהוראות האלה כדי לעדכן כל הגדרה שניתנת לעדכון באשכול, כולל גרסת Kubernetes. שדרוג הגרסה הוא אחד מהעדכונים הנפוצים ביותר באשכולות, ולכן יש דף נפרד בנושא שדרוג האשכול שבו מוסבר איך לשדרג את גרסת האשכול.

סיבות לעדכון אשכול

יכול להיות שתצטרכו לעדכן אשכול מהסיבות הבאות:

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

אפשר גם לעדכן שדות אחרים באשכולות שלא מפורטים כאן. רשימה מלאה של השדות שאפשר לעדכן מופיעה במסמכי העזרה בנושא gcloud container aws clusters update וprojects.locations.awsClusters.patch.

דרישות מוקדמות

  • כדי לעדכן שדות באשכול, אתם צריכים הרשאה לניהול זהויות והרשאות גישה (IAM) gkemulticloud.googleapis.com/awsClusters.update.

  • כדי לעדכן את קבוצות האבטחה של האשכול, לתפקיד של רמת הבקרה של האשכול צריכה להיות הרשאה ec2:ModifyNetworkInterfaceAttribute. מידע נוסף זמין במאמר בנושא יצירת תפקיד במישור הבקרה.

  • בנוסף, כדי לעדכן את התגים של האשכול, לתפקיד ה-API של האשכול צריכות להיות ההרשאות הבאות ב-AWS:

    • autoscaling:CreateOrUpdateTags
    • autoscaling:DeleteTags
    • ec2:CreateTags
    • ec2:DescribeLaunchTemplates
    • ec2:DescribeSecurityGroupRules
    • ec2:DeleteTags
    • elasticloadbalancing:AddTags
    • elasticloadbalancing:RemoveTags

    במאמר יצירת תפקידים ב-AWS IAM מוסבר איך ליצור תפקיד API ולהוסיף לו הרשאות עבור האשכול.

תהליך העדכון

תהליך העדכון של אשכול ב-GKE on AWS משתנה בהתאם לסוג העדכון. במקרים מסוימים, GKE on AWS יכול לעדכן אשכול בלי להפעיל מחדש או ליצור מחדש משאבים – לדוגמה, עדכון התיאור של אשכול. ב-GKE ב-AWS השינויים האלה מתעדכנים באופן מיידי.

שינויים אחרים מחייבים הפעלה מחדש של הצמתים במישור הבקרה – למשל, עדכון גרסת Kubernetes. במקרים כאלה, מערכת GKE ב-AWS מבצעת 'עדכון בהדרגה (rolling)' שכולל את השלבים הבאים:

  1. בוחרים מופע אחד של מישור הבקרה לעדכון. ‫GKE ב-AWS מעדכן מקרים לא תקינים, אם יש כאלה, לפני מקרים תקינים.
  2. יוצרים תבנית השקה חדשה למופע.
  3. מעדכנים את תבנית ההפעלה של קבוצת ה-Auto Scaling.
  4. מוחקים את המכונה. ‫AWS יוצר מחדש את המופע והמופע מופעל עם ההגדרה החדשה.
  5. מבצעים בדיקות תקינות במופע החדש.
  6. אם בדיקות התקינות מצליחות, בוחרים מופע אחר ומבצעים בו את אותם השלבים. חוזרים על התהליך הזה עד שכל המופעים יופעלו מחדש או ייצרו מחדש. אם בדיקת תקינות נכשלת, GKE ב-AWS מעביר את האשכול למצב DEGRADED ומפסיק את העדכון. מידע נוסף מפורט בקטע הבא.
  7. מוחקים את תבנית ההפעלה המקורית.

מה קורה כשעדכון נכשל

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

gcloud container aws clusters describe CLUSTER_NAME \
  --location=GOOGLE_CLOUD_LOCATION

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

  • CLUSTER_NAME: השם של האשכול
  • GOOGLE_CLOUD_LOCATION: האזור Google Cloud שמנהל את האשכול

עדכון האשכול

אפשר להשתמש במסוף Google Cloud , ב-Google Cloud CLI או ב-GKE Multi-Cloud API כדי לעדכן כמה שדות של אשכולות בבת אחת.

בחירת שיטת עדכון

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

המסוף

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

    מעבר לאשכולות GKE

  2. בוחרים את הפרויקט Google Cloud שבו נמצא האשכול.

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

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

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

  5. כשמסיימים לבצע שינויים, לוחצים על סיום.

gcloud

כשמעדכנים אשכול באמצעות ה-CLI של gcloud, צריך תמיד לכלול את השדות CLUSTER_NAME ו-GOOGLE_CLOUD_LOCATION, שמציינים ל-GKE on AWS איזה אשכול לעדכן. בפקודה הבאה, כוללים רק את השדות שרוצים לעדכן ומסירים את שאר השדות לפני שמריצים את הפקודה.

gcloud container aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --cluster-version=CLUSTER_VERSION \
    --admin-users=USERNAME_LIST \
    --root-volume-iops=ROOT_VOLUME_IOPS \
    --root-volume-size=ROOT_VOLUME_SIZE \
    --root-volume-type=ROOT_VOLUME_TYPE \
    --security-group-ids=SECURITY_GROUP_IDS

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

  • CLUSTER_NAME: השם של האשכול
  • GOOGLE_CLOUD_LOCATION (חובה): האזור הנתמך Google Cloud שמנהל את האשכול – לדוגמה, us-west1
  • CLUSTER_VERSION: גרסת האשכול הנתמכת החדשה
  • USERNAME_LIST: רשימה מופרדת בפסיקים של שמות משתמשים, לדוגמה, kai@example.com,hao@example.com,kalani@example.com. אלה כתובות האימייל של המשתמשים שאתם מעניקים להם הרשאות אדמין באשכול הזה. השמות בהגדרה הזו יחליפו כל רשימה קודמת של משתמשים עם הרשאות אדמין באשכול.
  • ROOT_VOLUME_IOPS: מספר פעולות הקלט/פלט המקסימלי לשנייה של נפח הבסיס
  • ROOT_VOLUME_SIZE: הגודל של נפח האחסון הבסיסי, בגיגה-בייט
  • ROOT_VOLUME_TYPE: סוג נפח ה-EBS של AWS של נפח הבסיס
  • SECURITY_GROUP_IDS: מזהי קבוצות האבטחה ב-AWS שרוצים להוסיף למופעים של מישור הבקרה באשכול
  • SECURITY_GROUP_IDS: מזהי קבוצות האבטחה ב-AWS שרוצים להוסיף למופעים של מישור הבקרה באשכול

API

כשמעדכנים אשכול באמצעות GKE Multi-Cloud API, צריך תמיד לכלול את השדות CLUSTER_NAME ו-GOOGLE_CLOUD_LOCATION בבקשת ה-HTTP. השדות האלה מציינים ל-GKE ב-AWS איזה אשכול לעדכן. צריך גם לכלול את נקודת קצה ל-API בבקשה. יוצרים קובץ JSON עם השדות שרוצים לעדכן. בקובץ ה-JSON וב-UPDATE_MASK, כוללים רק את השדות שרוצים לעדכן.

בדוגמה הבאה אפשר לראות איך מעדכנים את האשכול באמצעות ה-API. למידע נוסף, כולל רשימת השדות שאפשר לעדכן, אפשר לעיין במסמכי התיעוד של השיטה projects.locations.awsClusters.patch.

  1. יוצרים קובץ JSON בשם cluster_update.json עם השדות שרוצים לעדכן.

    {
        "controlPlane": {
           "version": "CLUSTER_VERSION",
        },
        "description": "CLUSTER_DESCRIPTION",
        "authorization": {
            "adminUsers": [
                {
                "username": USERNAME1,
                "username": USERNAME2,
                "username": USERNAME3
                }
            ]
        }
    }
    

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

    • CLUSTER_VERSION: גרסת האשכול הנתמכת החדשה. הערה: כשמשדרגים את האשכול, צריך לשדרג את כל הגרסאות המשניות.
    • CLUSTER_DESCRIPTION: התיאור החדש של האשכול
    • USERNAME1,USERNAME2,USERNAME3: כתובות האימייל של המשתמשים שאתם רוצים לתת להם הרשאות אדמין באשכול הזה. השמות בשדות האלה יחליפו כל רשימה קודמת של משתמשים עם הרשאות אדמין באשכול.
  2. מעדכנים את ההגדרות האלה באמצעות GKE Multi-Cloud API עם הפקודה הבאה.

    curl -d @cluster_update.json -X PATCH \
       ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/awsClusters/CLUSTER_NAME?update_mask=UPDATE_MASK
    

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

  • ENDPOINT (חובה): Google Cloud נקודת הקצה של השירות
  • PROJECT_ID (חובה): הפרויקט Google Cloud
  • GOOGLE_CLOUD_LOCATION (חובה): האזור הנתמך Google Cloud שמנהל את האשכול – לדוגמה, us-west1
  • CLUSTER_NAME (חובה): שם האשכול
  • UPDATE_MASK (חובה): רשימה מופרדת בפסיקים של דגל אחד או יותר מהדגלים הבאים, שמציינים אילו שדות רוצים לעדכן. בדוגמה הזו, מציינים את הפרטים הבאים.
    • controlPlane.version
    • description
    • authorization.admin_users

עדכון קבוצות האבטחה של האשכול

כדי לעדכן את קבוצות האבטחה של האשכול, לתפקיד של רמת הבקרה של האשכול צריכה להיות הרשאה ec2:ModifyNetworkInterfaceAttribute. מידע נוסף זמין במאמר בנושא יצירת תפקיד במישור הבקרה.

אפשר להשתמש בפקודה gcloud container aws clusters update כדי להוסיף קבוצות אבטחה נוספות למישור הבקרה של האשכול.

gcloud container aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --security-group-ids=SECURITY_GROUP_IDS

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

  • CLUSTER_NAME: השם של האשכול
  • GOOGLE_CLOUD_LOCATION: האזור הנתמך Google Cloud שמנהל את האשכול. לדוגמה, us-west1
  • SECURITY_GROUP_IDS: מזהי קבוצות האבטחה ב-AWS שרוצים להוסיף למופעים של מישור הבקרה באשכול

הסרת קבוצות אבטחה של מקבצים

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

gcloud container aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --clear-security-group-ids

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

עדכון פרטי נפח האחסון של האשכול

אפשר לעדכן את אמצעי האחסון של מישור הבקרה של האשכול באמצעות Google Cloud CLI. כדי לעדכן מפתחות KMS של נפח, ראו רוטציית מפתחות.

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

gcloud container aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --root-volume-iops=ROOT_VOLUME_IOPS
    --root-volume-size=ROOT_VOLUME_SIZE
    --root-volume-type=ROOT_VOLUME_TYPE

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

  • CLUSTER_NAME: השם של האשכול
  • GOOGLE_CLOUD_LOCATION: האזור הנתמך Google Cloud שמנהל את האשכול. לדוגמה, us-west1
  • ROOT_VOLUME_IOPS: פעולות הקלט/פלט של נפח הבסיס בשנייה
  • ROOT_VOLUME_SIZE: הגודל של נפח האחסון הבסיסי, בגיגה-בייט
  • ROOT_VOLUME_TYPE: סוג נפח ה-EBS של AWS של נפח הבסיס.

עדכון הגדרות הרישום ביומן

אפשר לעדכן את הגדרות התצורה של Cloud Logging באשכול באמצעות Google Cloud CLI. כדי לעדכן את הגדרות הרישום ביומן, מריצים את הפקודה הבאה:

gcloud container aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --logging=LOGGING_CONFIG \

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

  • CLUSTER_NAME: השם של האשכול
  • GOOGLE_CLOUD_LOCATION: האזור הנתמך Google Cloud שמנהל את האשכול. לדוגמה, us-west1
  • LOGGING_CONFIG: [מערכת] או [מערכת,עומס עבודה]

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