שדרוג של אדמין או של אשכול משתמשים באמצעות לקוחות GKE On-Prem API

שדרוג האשכולות של 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:

  1. מוודאים שמשתמשים בגרסה העדכנית של ה-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. אי אפשר לשדרג לגרסה שהיא יותר מגרסה משנית אחת אחרי הגרסה המותקנת.

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

שדרוג אשכול אדמין

המסוף

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

    כניסה לאשכולות GKE

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

  3. בחלונית פרטים, לוחצים על פרטים נוספים.

  4. בקטע Cluster basics, לוחצים על Upgrade.

  5. ברשימה Choose target version, בוחרים את הגרסה שאליה רוצים לשדרג. מומלץ לשדרג לגרסה האחרונה עם התיקון.

  6. לוחצים על שדרוג.

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

כדי לראות את סטטוס השדרוג, לוחצים על Show Details בכרטיסייה Cluster Details.

‫CLI של gcloud

  1. אפשר להציג את כל אשכולות הניהול הרשומים בפרויקט כדי לאשר את שם האשכול והאזור:

    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 באמצעות החשבון שיש לו גישה לפרויקט.

  2. מקבלים רשימה של הגרסאות שאפשר לשדרג אליהן:

    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 פועל ומאחסן את המטא-נתונים של האשכול.

  3. משדרגים את אשכול האדמין:

    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.

שדרוג אשכול משתמש

המסוף

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

    כניסה לאשכולות GKE

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

  3. בחלונית פרטים, לוחצים על פרטים נוספים.

  4. בקטע Cluster basics, לוחצים על Upgrade.

  5. ברשימה Choose target version, בוחרים את הגרסה שאליה רוצים לשדרג.

  6. לוחצים על שדרוג.

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

כדי לראות את סטטוס השדרוג, לוחצים על Show Details בכרטיסייה Cluster Details.

‫CLI של gcloud

  1. אפשר להציג את כל אשכולות המשתמשים הרשומים בפרויקט כדי לאמת את שם האשכול והאזור:

    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 באמצעות החשבון שיש לו גישה לפרויקט.

  2. מקבלים רשימה של הגרסאות שאפשר לשדרג אליהן:

    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.

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

    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 שבה השתמשתם כדי ליצור את האשכול.

  1. עוברים לספרייה שבה נמצא קובץ התצורה של Terraform.

  2. מקבלים רשימה של הגרסאות שאפשר לשדרג אליהן:

    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 באמצעות החשבון שיש לו גישה לפרויקט.

  3. בהגדרות של Terraform, משנים את הערך של bare_metal_version לגרסה של Google Distributed Cloud שרוצים לשדרג אליה. מציינים גרסה מהפלט של הפקודה הקודמת. מומלץ לשדרג לגרסה האחרונה עם התיקון.

  4. מאתחלים ויוצרים את התוכנית ב-Terraform:

    terraform init
    

    ‫Terraform מתקין את כל הספריות הנדרשות, כמו הספק Google Cloud.

  5. בודקים את ההגדרות ומשנים אותן לפי הצורך:

    terraform plan
    
  6. מפעילים את התוכנית של Terraform כדי ליצור את אשכול המשתמש:

    terraform apply
    

למידע על המשאב google_gkeonprem_bare_metal_cluster, קראו את מאמרי העזרה.