בדף הזה מוסבר איך משדרגים אשכול אדמין או אשכול משתמשים ב-Google Distributed Cloud שרשום ב-GKE On-Prem API באמצעות מסוף Google Cloud או Google Cloud CLI. אם יצרתם את אשכול המשתמשים באמצעות Terraform, תוכלו להשתמש ב-Terraform כדי לשדרג את אשכול המשתמשים. לפני שממשיכים, מומלץ לעיין במאמרים שיטות מומלצות לשדרוג ומחזור החיים ושלבי השדרוג של אשכולות כדי לקבל מידע נוסף על תהליך השדרוג ועל הדרישות לשדרוג. Google Cloud
מה זה GKE On-Prem API?
GKE On-Prem API הוא API שמתארח ב-Google Cloud ומאפשר לכם לנהל את מחזור החיים של אשכולות מקומיים באמצעות Terraform וGoogle Cloud כלים סטנדרטיים. GKE On-Prem API פועל בתשתית של Google Cloud. Terraform, Google Cloud console ו-Google Cloud CLI הם לקוחות של ה-API, והם משתמשים ב-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 במאמר תפקידים ב-GKE On-Prem שבמסמכי IAM מפורטות ההרשאות שכלולות בתפקיד הזה.
כדי להשתמש במסוף לשדרוג האשכול, אתם צריכים לפחות את הדברים הבאים:
roles/container.viewer. התפקיד הזה מאפשר למשתמשים לראות את הדף GKE Clusters ואת משאבי הקונטיינר האחרים במסוף. במאמר תפקידים ב-Kubernetes Engine במסמכי ה-IAM מפורטות ההרשאות שכלולות בתפקיד הזה, ומוסבר איך להעניק תפקיד עם הרשאות קריאה/כתיבה.
roles/gkehub.viewer. התפקיד הזה מאפשר למשתמשים להציג אשכולות במסוף. פרטים על ההרשאות שכלולות בתפקיד הזה או על הענקת תפקיד עם הרשאות קריאה/כתיבה זמינים במאמר תפקידים ב-GKE Hub במאמרי העזרה בנושא IAM.
דרישות לגבי גרסה
אחרי פרסום של Google Distributed Cloud, עוברים בערך 7 עד 14 ימים עד שהגרסה זמינה ב-GKE On-Prem API.
אפשר לשדרג ישירות לגרסה שנמצאת באותו מהדורת משנה או במהדורת המשנה הבאה. לדוגמה, אפשר לשדרג מגרסה 1.35.100 לגרסה 1.35.200, או מגרסה 1.34.100 לגרסה 1.35.200. אי אפשר לשדרג לגרסה שמהדורת המשנה שלה גבוהה ביותר ממהדורת משנה אחת מהגרסה המותקנת.
אשכול אדמין יכול לנהל אשכולות משתמשים שנמצאים באותו גרסה משנית או בגרסה משנית קודמת. הגרסה המשנית של אשכולות משתמשים מנוהלים לא יכולה להיות נמוכה יותר מגרסת האדמין ביותר מגרסה משנית אחת. לכן, לפני שמשדרגים אשכול אדמין לגרסה משנית חדשה, צריך לוודא שכל אשכולות המשתמשים המנוהלים הם באותה גרסה משנית כמו אשכול האדמין.
שדרוג אשכול אדמין
המסוף
במסוף, נכנסים לדף Google Kubernetes Engine clusters overview.
בוחרים את Google Cloud הפרויקט, ואז בוחרים את האשכול שרוצים לשדרג.
בחלונית פרטים, לוחצים על פרטים נוספים.
בקטע Cluster basics, לוחצים על Upgrade.
ברשימה Choose target version, בוחרים את הגרסה שאליה רוצים לשדרג. מומלץ לשדרג לגרסה האחרונה עם התיקון.
לוחצים על שדרוג.
לפני שמשדרגים את האשכול, מתבצעות בדיקות מקדימות כדי לאמת את סטטוס האשכול ואת תקינות הצומת. אם הבדיקות המקדימות עוברות בהצלחה, האשכול לניהול משודרג. השדרוג נמשך 30 דקות או יותר, בהתאם לגודל האשכול.
כדי לראות את סטטוס השדרוג, לוחצים על הצגת פרטים בכרטיסייה פרטי האשכול.
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: האזור שבו פועל GKE On-Prem API ושבו מאוחסנים המטא-נתונים של האשכול. Google Cloud
משדרגים את אשכול האדמין:
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.35.100 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 דקות או יותר, בהתאם לגודל האשכול.
כדי לראות את סטטוס השדרוג, לוחצים על הצגת פרטים בכרטיסייה פרטי האשכול.
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.35.100 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: האזור שבו פועל GKE On-Prem API ושבו מאוחסנים המטא-נתונים של האשכול. Google Cloud
הפלט של הפקודה אמור להיראות כך:
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 דקות או יותר, בהתאם לגודל האשכול. בזמן השדרוג של האשכול, אפשר להריץ את הפקודה הקודמת מדי פעם כדי לקבל את הסטטוס הנוכחי.
למידע נוסף על השדות והדגלים, ראו gcloud container bare-metal clusters reference.
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: האזור שבו פועל GKE On-Prem API ושבו מאוחסנים המטא-נתונים שלו. Google Cloud
אם מופיעה השגיאה
PERMISSION_DENIED, צריך לבדוק שוב את מזהה הפרויקט שהזנתם. אם מזהה הפרויקט נכון, מריצים את הפקודהgcloud auth loginכדי להיכנס ל-Google Cloud CLI באמצעות החשבון שיש לו גישה לפרויקט.בהגדרות של Terraform, משנים את
bare_metal_versionלגרסה של Google Distributed Cloud שרוצים לשדרג אליה. מציינים גרסה מהפלט של הפקודה הקודמת. מומלץ לשדרג לגרסה האחרונה עם התיקון.מפעילים את Terraform ויוצרים תוכנית ב-Terraform:
terraform initTerraform מתקין את כל הספריות הנדרשות, כמו פלאגין שמתממשק עם שירותים חיצוניים Google Cloud.
בודקים את ההגדרות ומבצעים שינויים לפי הצורך:
terraform planמחילים את התוכנית של Terraform כדי ליצור את אשכול המשתמשים:
terraform apply
מידע על המשאב google_gkeonprem_bare_metal_cluster מופיע במאמרי העזרה.