שדרוג האשכולות של Google Distributed Cloud מאפשר לפרוס את התכונות, עדכוני האבטחה ותיקוני הבאגים האחרונים של Kubernetes. אתם יכולים לשדרג אשכולות של אדמינים או של משתמשים שרשומים ל-GKE On-Prem API באמצעות מסוף Google Cloud או Google Cloud CLI. אם יצרתם את אשכול המשתמשים באמצעות Terraform, אתם יכולים גם לשדרג אותו באמצעות Terraform.
לפני שמתחילים, כדאי לקרוא את השיטות המומלצות לשדרוג ואת מחזור החיים והשלבים של שדרוגי אשכולות כדי לקבל מידע נוסף על תהליך השדרוג, הדרישות והשיטות המומלצות.
מה זה GKE On-Prem API?
GKE On-Prem API הוא ממשק API שמתארח ב-Google Cloud ומאפשר לנהל את מחזור החיים של האשכולות המקומיים באמצעות Terraform וכלים סטנדרטיים שלGoogle Cloud . GKE On-Prem API פועל בתשתית של Google Cloud. Terraform, מסוף Google Cloud וה-CLI של Google Cloud הם לקוחות של ה-API, והם משתמשים בו כדי ליצור, לעדכן, לשדרג ולמחוק אשכולות במרכז הנתונים שלכם. אם יצרתם את האשכול באמצעות לקוח רגיל, האשכול רשום ב-GKE On-Prem API, כלומר אתם יכולים להשתמש בלקוחות הרגילים כדי לנהל את מחזור החיים של האשכול (עם כמה חריגים).
אם יצרתם את האשכול באמצעות bmctl, תוכלו לרשום את האשכול ב-GKE On-Prem API, וכך להשתמש בלקוחות הרגילים.
לפני שמתחילים
הגדרת ה-CLI של gcloud
כדי לשדרג אשכול באמצעות ה-CLI של gcloud או Terraform:
מוודאים שמשתמשים בגרסה העדכנית של ה-CLI של gcloud. מעדכנים את הרכיבים של ה-CLI של gcloud, אם צריך:
gcloud components update
דרישות IAM
אם אתם לא בעלי הפרויקט, צריך להקצות לכם את התפקיד roles/gkeonprem.admin בממשק לניהול הזהויות והרשאות הגישה (IAM) בפרויקט ב- Google Cloud שבו נוצר האשכול. במסמכי התיעוד של IAM, במאמר תפקידים ב-GKE on-prem, מפורטות ההרשאות שכלולות בתפקיד הזה.
כדי לשדרג את האשכול באמצעות המסוף, צריך לפחות את הדברים הבאים:
roles/container.viewer. התפקיד הזה מאפשר למשתמשים לראות את הדף GKE Clusters ומשאבים אחרים של קונטיינרים במסוף. במסמכי התיעוד של IAM, במאמר תפקידים ב-Kubernetes Engine, מפורטות ההרשאות שכלולות בתפקיד הזה, ומוסבר איך להקצות תפקיד עם הרשאות קריאה/כתיבה.
roles/gkehub.viewer. התפקיד הזה מאפשר למשתמשים לראות אשכולות במסוף. לפרטים על ההרשאות שכלולות בתפקיד הזה, או כדי להקצות תפקיד עם הרשאות קריאה/כתיבה,קראו את המאמר תפקידים ב-GKE Hub במסמכי התיעוד של IAM.
דרישות לגבי הגרסה
גרסה חדשה של Google Distributed Cloud תהיה זמינה ב-GKE On-Prem API תוך 7 עד 14 ימים אחרי שהיא תפורסם.
אתם יכולים לשדרג ישירות לגרסה שנמצאת באותה גרסת משנה או בגרסת המשנה הבאה. לדוגמה, אפשר לשדרג מגרסה 1.36.100 לגרסה 1.36.200, או מגרסה 1.35.100 לגרסה 1.36.200. אי אפשר לשדרג לגרסה שהיא יותר מגרסה משנית אחת אחרי הגרסה המותקנת.
אשכול אדמין יכול לנהל אשכולות משתמשים שנמצאים באותה גרסה משנית או בגרסה משנית קודמת. אשכולות מנוהלים של משתמשים לא יכולים להיות נמוכים ביותר מגרסה משנית אחת מאשכול הניהול. לכן, לפני שמשדרגים אשכול ניהול לגרסה משנית חדשה, צריך לוודא שכל אשכולות המשתמשים המנוהלים נמצאים באותה גרסה משנית כמו אשכול הניהול.
שדרוג אשכול אדמין
המסוף
נכנסים לדף Google Kubernetes Engine clusters overview במסוף.
בוחרים את הפרויקט Google Cloud ואז בוחרים את האשכול שרוצים לשדרג.
בחלונית פרטים, לוחצים על פרטים נוספים.
בקטע Cluster basics, לוחצים על Upgrade.
ברשימה Choose target version, בוחרים את הגרסה שאליה רוצים לשדרג. מומלץ לשדרג לגרסה האחרונה עם התיקון.
לוחצים על שדרוג.
לפני שמשדרגים את האשכול, מריצים בדיקות מקדימות כדי לאמת את סטטוס האשכול ואת תקינות הצומת. אם הבדיקות המקדימות עוברות, אשכול האדמין משודרג. השדרוג נמשך 30 דקות או יותר, בהתאם לגודל האשכול.
כדי לראות את סטטוס השדרוג, לוחצים על Show Details בכרטיסייה Cluster Details.
CLI של gcloud
אפשר להציג את כל אשכולות הניהול הרשומים בפרויקט כדי לאשר את שם האשכול והאזור:
gcloud container bare-metal admin-clusters list \ --project=PROJECT_ID \ --location=-
מחליפים את
PROJECT_IDבמזהה של הפרויקט המארח של ה-Fleet שבו האשכול חבר. אם יצרתם את האשכול באמצעותbmctl, זהו מזהה הפרויקט בשדהgkeConnect.projectIDבקובץ התצורה של האשכול.כשמגדירים את
--location=-, המשמעות היא שכל האשכולות בכל האזורים יופיעו ברשימה. אם אתם צריכים לצמצם את הרשימה, הגדירו את--locationלאזור ספציפי.
אם מופיעה השגיאה
PERMISSION_DENIED, צריך לבדוק שוב את מזהה הפרויקט שהזנתם. אם מזהה הפרויקט נכון, מריצים את הפקודהgcloud auth loginכדי להיכנס ל-Google Cloud CLI באמצעות החשבון שיש לו גישה לפרויקט.מקבלים רשימה של הגרסאות שאפשר לשדרג אליהן:
gcloud container bare-metal admin-clusters query-version-config \ --admin-cluster=ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION
מחליפים את מה שכתוב בשדות הבאים:
ADMIN_CLUSTER_NAME: השם של אשכול האדמין.
PROJECT_ID: המזהה של הפרויקט המארח של ה-Fleet שבו האשכול חבר.
REGION: האזור ב- Google Cloud שבו GKE On-Prem API פועל ומאחסן את המטא-נתונים של האשכול.
משדרגים את אשכול האדמין:
gcloud container bare-metal admin-clusters update ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --version=VERSION
מחליפים את
VERSIONבגרסה של Google Distributed Cloud שרוצים לשדרג אליה. מציינים גרסה מהפלט של הפקודה הקודמת. מומלץ לשדרג לגרסה האחרונה עם התיקון.הפלט של הפקודה אמור להיראות כך:
Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
בפלט לדוגמה, המחרוזת
operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179היא ה-OPERATION_IDשל הפעולה שרצה לאורך זמן.כדי לבדוק את סטטוס הפעולה, מעתיקים את הערך של
OPERATION_IDמהפלט לפקודה הבאה. פותחים חלון טרמינל אחר ומריצים את הפקודה.gcloud container bare-metal operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=REGION
השדרוג נמשך 30 דקות או יותר, בהתאם לגודל האשכול. בזמן שהאשכול משודרג, אפשר להריץ את הפקודה הקודמת מדי פעם כדי לקבל את הסטטוס הנוכחי.
בסיום השדרוג, בחלון הטרמינל שבו הרצתם את הפקודה gcloud ... update יופיע משהו דומה לזה:
Updated Anthos on bare metal Admin Cluster [https://gkeonprem.googleapis.com/v1/projects/example-project-1234/locations/us-central1/bareMetalAdminClusters/abm-admin-cluster]. NAME LOCATION VERSION MEMBERSHIP STATE abm-admin-cluster us-central1 1.36.200-gke.118 abm-admin-cluster RUNNING
למידע נוסף על השדות והדגלים, ראו gcloud container bare-metal admin-clusters reference.
שדרוג אשכול משתמש
המסוף
נכנסים לדף Google Kubernetes Engine clusters overview במסוף.
בוחרים את הפרויקט Google Cloud ואז בוחרים את האשכול שרוצים לשדרג.
בחלונית פרטים, לוחצים על פרטים נוספים.
בקטע Cluster basics, לוחצים על Upgrade.
ברשימה Choose target version, בוחרים את הגרסה שאליה רוצים לשדרג.
לוחצים על שדרוג.
לפני שמשדרגים את האשכול, מריצים בדיקות מקדימות כדי לאמת את סטטוס האשכול ואת תקינות הצומת. אם הבדיקות המקדימות עוברות בהצלחה, אשכול המשתמש משודרג. השדרוג נמשך 30 דקות או יותר, בהתאם לגודל האשכול.
כדי לראות את סטטוס השדרוג, לוחצים על Show Details בכרטיסייה Cluster Details.
CLI של gcloud
אפשר להציג את כל אשכולות המשתמשים הרשומים בפרויקט כדי לאמת את שם האשכול והאזור:
gcloud container bare-metal clusters list \ --project=PROJECT_ID \ --location=-
מחליפים את
PROJECT_IDבמזהה של הפרויקט המארח של ה-Fleet שבו האשכול חבר. אם יצרתם את האשכול באמצעותbmctl, זהו מזהה הפרויקט בשדהgkeConnect.projectIDבקובץ התצורה של האשכול.כשמגדירים את
--location=-, המשמעות היא שכל האשכולות בכל האזורים יופיעו ברשימה. אם אתם צריכים לצמצם את הרשימה, הגדירו את--locationלאזור ספציפי.
הפלט של הפקודה אמור להיראות כך:
NAME LOCATION VERSION ADMIN_CLUSTER STATE abm-user-cluster us-central1 1.36.200-gke.118 abm-admin-cluster RUNNING
אם מופיעה השגיאה
PERMISSION_DENIED, צריך לבדוק שוב את מזהה הפרויקט שהזנתם. אם מזהה הפרויקט נכון, מריצים את הפקודהgcloud auth loginכדי להיכנס ל-Google Cloud CLI באמצעות החשבון שיש לו גישה לפרויקט.מקבלים רשימה של הגרסאות שאפשר לשדרג אליהן:
gcloud container bare-metal clusters query-version-config \ --cluster=USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION
מחליפים את מה שכתוב בשדות הבאים:
USER_CLUSTER_NAME: השם של אשכול המשתמש שרוצים לשדרג.
PROJECT_ID: המזהה של הפרויקט המארח של ה-Fleet שבו האשכול חבר.
REGION: האזור ב- Google Cloud שבו GKE On-Prem API פועל ומאחסן את המטא-נתונים של האשכול.
הפלט של הפקודה אמור להיראות כך:
versions: - hasDependencies: true version: 1.15.2 - hasDependencies: true version: 1.15.1 - hasDependencies: true version: 1.15.0 - version: 1.14.6
בוחרים גרסה שלא מופיעה בקטע
- hasDependencies: true. בדוגמה הזו, הגרסה היחידה שאפשר לשדרג אליה את אשכול המשתמש היא1.14.6.משדרגים את אשכול המשתמש:
gcloud container bare-metal clusters update USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --version=VERSION
מחליפים את
VERSIONבגרסה של Google Distributed Cloud שרוצים לשדרג אליה. מציינים גרסה מהפלט של הפקודה הקודמת. מומלץ לשדרג לגרסה האחרונה עם התיקון.הפלט של הפקודה אמור להיראות כך:
Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
בפלט לדוגמה, המחרוזת
operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179היא ה-OPERATION_IDשל הפעולה שרצה לאורך זמן.כדי לבדוק את סטטוס הפעולה, מעתיקים את הערך של
OPERATION_IDמהפלט לפקודה הבאה. פותחים חלון טרמינל אחר ומריצים את הפקודה.gcloud container bare-metal operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=REGION
השדרוג נמשך 30 דקות או יותר, בהתאם לגודל האשכול. בזמן שהאשכול משודרג, אפשר להריץ את הפקודה הקודמת מדי פעם כדי לקבל את הסטטוס הנוכחי.
למידע נוסף על השדות והדגלים, ראו חומר עזר בנושא אשכולות של Bare Metal ב-gcloud container.
Terraform
כדי לשדרג אשכול באמצעות Terraform, משתמשים באותה תצורה של Terraform שבה השתמשתם כדי ליצור את האשכול.
עוברים לספרייה שבה נמצא קובץ התצורה של Terraform.
מקבלים רשימה של הגרסאות שאפשר לשדרג אליהן:
gcloud container bare-metal clusters query-version-config \ --cluster=USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION
מחליפים את מה שכתוב בשדות הבאים:
USER_CLUSTER_NAME: השם של אשכול המשתמש שרוצים לשדרג.
PROJECT_ID: המזהה של הפרויקט המארח של ה-Fleet שבו אשכול המשתמש הזה חבר.
REGION: האזור ( Google Cloud ) שבו פועל GKE On-Prem API ושבו מאוחסנים המטא-נתונים שלו.
אם מופיעה השגיאה
PERMISSION_DENIED, צריך לבדוק שוב את מזהה הפרויקט שהזנתם. אם מזהה הפרויקט נכון, מריצים את הפקודהgcloud auth loginכדי להיכנס ל-Google Cloud CLI באמצעות החשבון שיש לו גישה לפרויקט.בהגדרות של Terraform, משנים את הערך של
bare_metal_versionלגרסה של Google Distributed Cloud שרוצים לשדרג אליה. מציינים גרסה מהפלט של הפקודה הקודמת. מומלץ לשדרג לגרסה האחרונה עם התיקון.מאתחלים ויוצרים את התוכנית ב-Terraform:
terraform initTerraform מתקין את כל הספריות הנדרשות, כמו הספק Google Cloud.
בודקים את ההגדרות ומשנים אותן לפי הצורך:
terraform planמפעילים את התוכנית של Terraform כדי ליצור את אשכול המשתמש:
terraform apply
למידע על המשאב google_gkeonprem_bare_metal_cluster, קראו את מאמרי העזרה.