בדף הזה מוסבר איך לעדכן את ההגדרות של אשכול GKE ב-AWS. אפשר להשתמש בהוראות האלה כדי לעדכן כל הגדרה שניתנת לעדכון באשכול, כולל גרסת Kubernetes. שדרוג הגרסה הוא אחד מהעדכונים הנפוצים ביותר באשכולות, ולכן יש דף נפרד בנושא שדרוג האשכול שבו מוסבר איך לשדרג את גרסת האשכול.
סיבות לעדכון אשכול
יכול להיות שתצטרכו לעדכן אשכול מהסיבות הבאות:
- כדי לעדכן את תיאור האשכול.
- כדי לעדכן את ההערות של האשכול.
- כדי לעדכן את רשימת המשתמשים עם הרשאות אדמין באשכול.
- כדי לעדכן את הגדרות הרישום של האשכול.
- כדי לבצע רוטציה של מפתחות ההצפנה.
- כדי לעדכן את קבוצות האבטחה של מישור הבקרה באשכול.
אפשר גם לעדכן שדות אחרים באשכולות שלא מפורטים כאן.
רשימה מלאה של השדות שאפשר לעדכן מופיעה במסמכי העזרה בנושא gcloud container aws clusters update וprojects.locations.awsClusters.patch.
דרישות מוקדמות
כדי לעדכן שדות באשכול, אתם צריכים הרשאה לניהול זהויות והרשאות גישה (IAM)
gkemulticloud.googleapis.com/awsClusters.update.כדי לעדכן את קבוצות האבטחה של האשכול, לתפקיד של רמת הבקרה של האשכול צריכה להיות הרשאה
ec2:ModifyNetworkInterfaceAttribute. מידע נוסף זמין במאמר בנושא יצירת תפקיד במישור הבקרה.בנוסף, כדי לעדכן את התגים של האשכול, לתפקיד ה-API של האשכול צריכות להיות ההרשאות הבאות ב-AWS:
autoscaling:CreateOrUpdateTagsautoscaling:DeleteTagsec2:CreateTagsec2:DescribeLaunchTemplatesec2:DescribeSecurityGroupRulesec2:DeleteTagselasticloadbalancing:AddTagselasticloadbalancing:RemoveTags
במאמר יצירת תפקידים ב-AWS IAM מוסבר איך ליצור תפקיד API ולהוסיף לו הרשאות עבור האשכול.
תהליך העדכון
תהליך העדכון של אשכול ב-GKE on AWS משתנה בהתאם לסוג העדכון. במקרים מסוימים, GKE on AWS יכול לעדכן אשכול בלי להפעיל מחדש או ליצור מחדש משאבים – לדוגמה, עדכון התיאור של אשכול. ב-GKE ב-AWS השינויים האלה מתעדכנים באופן מיידי.
שינויים אחרים מחייבים הפעלה מחדש של הצמתים במישור הבקרה – למשל, עדכון גרסת Kubernetes. במקרים כאלה, מערכת GKE ב-AWS מבצעת 'עדכון בהדרגה (rolling)' שכולל את השלבים הבאים:
- בוחרים מופע אחד של מישור הבקרה לעדכון. GKE ב-AWS מעדכן מקרים לא תקינים, אם יש כאלה, לפני מקרים תקינים.
- יוצרים תבנית השקה חדשה למופע.
- מעדכנים את תבנית ההפעלה של קבוצת ה-Auto Scaling.
- מוחקים את המכונה. AWS יוצר מחדש את המופע והמופע מופעל עם ההגדרה החדשה.
- מבצעים בדיקות תקינות במופע החדש.
- אם בדיקות התקינות מצליחות, בוחרים מופע אחר ומבצעים בו את אותם השלבים. חוזרים על התהליך הזה עד שכל המופעים יופעלו מחדש או ייצרו מחדש. אם בדיקת תקינות נכשלת, GKE ב-AWS מעביר את האשכול למצב
DEGRADEDומפסיק את העדכון. מידע נוסף מפורט בקטע הבא. - מוחקים את תבנית ההפעלה המקורית.
מה קורה כשעדכון נכשל
אחרי עדכון, 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. יש שדות שאפשר לעדכן רק באמצעות מנגנון אחד. אם רוצים להשתמש במסוף כדי לעדכן אשכול, קודם צריך לבחור ולהגדיר שיטת אימות לכניסה לאשכול. מידע נוסף זמין במאמר התחברות לאשכול ואימות.
המסוף
במסוף Google Cloud , נכנסים לדף Google Kubernetes Engine clusters overview.
בוחרים את הפרויקט Google Cloud שבו נמצא האשכול.
ברשימת האשכולות, בוחרים את שם האשכול ואז בוחרים באפשרות הצגת פרטים בחלונית הצדדית.
בכרטיסייה פרטים, לוחצים על עריכה בשדה שרוצים לשנות.
לדוגמה, כדי להעניק הרשאות אדמין של אשכול למשתמשים אחרים, בוחרים באפשרות עריכה לצד משתמשי אדמין ומזינים את כתובת האימייל של המשתמש.
כשמסיימים לבצע שינויים, לוחצים על סיום.
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.
יוצרים קובץ 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: כתובות האימייל של המשתמשים שאתם רוצים לתת להם הרשאות אדמין באשכול הזה. השמות בשדות האלה יחליפו כל רשימה קודמת של משתמשים עם הרשאות אדמין באשכול.
-
מעדכנים את ההגדרות האלה באמצעות 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
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול -
GOOGLE_CLOUD_LOCATION: האזור הנתמך Google Cloud שמנהל את האשכול. לדוגמה,us-west1
עדכון פרטי נפח האחסון של האשכול
אפשר לעדכן את אמצעי האחסון של מישור הבקרה של האשכול באמצעות 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: [מערכת] או [מערכת,עומס עבודה]
המאמרים הבאים
- כדי לעדכן מפתחות KMS של נפח, ראו רוטציית מפתחות
- מידע נוסף על שדות שאפשר לעדכן מופיע במאמרי העזרה של
gcloud container aws clusters update. - מידע נוסף זמין במאמרי העזרה של
projects.locations.awsClusters.patchAPI בארכיטקטורת REST.