שדרוג GKE ב-AWS

כדי לשדרג את סביבת GKE on AWS, קודם משדרגים את שירות הניהול ואז משדרגים את אשכולות המשתמשים.

שירות ניהול

בקטעים הבאים נסביר איך לשדרג את שירות הניהול.

לפני שמתחילים

כדי להתחבר למשאבי GKE ב-AWS, מבצעים את השלבים הבאים. בוחרים אם יש לכם רשת VPC קיימת ב-AWS (או חיבור ישיר לרשת ה-VPC) או אם יצרתם רשת VPC ייעודית כשבניתם את שירות הניהול.

VPC קיים

אם יש לכם חיבור ישיר או חיבור VPN ל-VPC קיים, אל תכללו את השורה env HTTP_PROXY=http://localhost:8118 בפקודות שמופיעות בנושא הזה.

VPC ייעודי

כשיוצרים שירות ניהול ב-VPC ייעודי, GKE on AWS כולל מארח bastion בתת-רשת ציבורית.

כדי להתחבר לשירות הניהול:

  1. עוברים לספרייה עם ההגדרה של GKE ב-AWS. יצרתם את הספרייה הזו כשהתקנתם את שירות הניהול.

    cd anthos-aws

  2. כדי לפתוח את המנהרה, מריצים את הסקריפט bastion-tunnel.sh. המנהרה מעבירה את הנתונים אל localhost:8118.

    כדי לפתוח מנהרה ליעד המבוצר (bastion host), מריצים את הפקודה הבאה:

    ./bastion-tunnel.sh -N
    

    ההודעות ממנהרת ה-SSH מופיעות בחלון הזה. כשרוצים לסגור את החיבור, מפסיקים את התהליך באמצעות Control+C או סוגרים את החלון.

  3. פותחים טרמינל חדש ועוברים לספרייה anthos-aws.

    cd anthos-aws
  4. מוודאים שאפשר להתחבר לאשכול באמצעות kubectl.

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    הפלט כולל את כתובת ה-URL של שרת ה-API של שירות הניהול.

שדרוג שירות הניהול

כדי לשדרג את שירות הניהול, מורידים גרסה חדשה של anthos-gke, עורכים את anthos-gke.yaml ומחילים את השינויים.

הורדה של גרסה חדשה של anthos-gke

הגרסה האחרונה של הכלי anthos-gke היא aws-1.14.1-gke.0. כדי להוריד גרסה חדשה של anthos-gke, מבצעים את השלבים הבאים:

כלי שורת הפקודה anthos-gke תומך רק ב-Linux וב-macOS.

  1. מורידים את הקובץ הבינארי מ-Cloud Storage.

    Linux

    gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
    

    macOS

    gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
    
  2. עדכון ההרשאות של anthos-gke והעתקה שלו אל /usr/local/bin.

    chmod 755 anthos-gke
    sudo mv anthos-gke /usr/local/bin
    
  3. מוודאים שהגרסה היא aws-1.14.1-gke.0

    anthos-gke version
    

שדרוג שירות הניהול

כדי לשדרג את האשכול:

  1. עוברים לספרייה עם ההגדרה של GKE ב-AWS. יצרתם את הספרייה הזו כשהתקנתם את שירות הניהול.
    cd anthos-aws
  2. פותחים את קובץ anthos-gke.yaml בכלי לעריכת טקסט. משנים את הערך של spec.version ל-aws-1.14.1-gke.0.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSManagementService
    metadata:
     name: management
    spec:
     version: aws-1.14.1-gke.0
     region: aws-region
     ...
    
  3. מריצים את הפקודה anthos-gke aws management init כדי לאמת את האובייקט AWSManagementService ולעדכן את הקובץ anthos-gke.status.yaml.

    anthos-gke aws management init
    
  4. מריצים את הפקודה anthos-gke aws management apply כדי לעדכן את שירות הניהול ב-AWS.

    anthos-gke aws management apply
    

    הפקודה anthos-gke מתחילה לשדרג את שירות הניהול. יכולות לעבור עד עשר דקות עד שהשדרוג יושלם.

אשכולות משתמשים

בקטעים הבאים מוסבר איך לשדרג את אשכולות המשתמשים.

לפני שמתחילים

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

גרסאות נתמכות של Kubernetes

‫GKE ב-AWS‏ aws-1.14.1-gke.0 תומך בגרסאות הבאות של Kubernetes:

  • 1.23.15-gke.2000
  • 1.24.9-gke.2100
  • 1.25.5-gke.2100

מידע על גרסאות נתמכות קודמות זמין בנתוני הגרסה.

שדרוגים של רכיבים

בקטע הזה מוסבר איך לשדרג את AWSClusters ואת AWSNodePools.

AWSCluster

אתם יכולים לעדכן AWSCluster לגרסה חדשה של GKE ב-AWS בלי לעדכן את AWSNodePools.

AWSNodePools

אי אפשר לעדכן AWSNodePool לגרסה חדשה יותר מ-AWSCluster. כדי לעדכן את ה-AWSNodePools, צריך קודם לעדכן את ה-AWSCluster.

הגרסה של AWSNodePools צריכה להיות לפחות שתי גרסאות משניות מאחורי הגרסה של AWSCluster.

שדרוג של AWSCluster ו-AWSNodePool קיימים

כדי לשדרג את האשכול, מעדכנים את השדה version של אובייקטים מסוג AWSCluster ו-AWSNodePool בשירות הניהול.

AWSCluster

כדי לשדרג AWSCluster, פועלים לפי השלבים הבאים:

  1. בספרייה של anthos-aws, משתמשים ב-anthos-gke כדי להעביר את ההקשר לשירות הניהול.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. פותחים בכלי לעריכת טקסט את קובץ ה-YAML שיצר את ה-AWSCluster. אם אין לכם קובץ YAML ראשוני, אתם יכולים להשתמש ב-kubectl edit.

    עריכת YAML

    אם פעלתם לפי ההוראות במאמר יצירת אשכול משתמשים, קובץ ה-YAML נקרא cluster-0.yaml. פותחים את הקובץ בכלי לעריכת טקסט.

    kubectl edit

    כדי להשתמש ב-kubectl edit כדי לערוך את ה-AWSCluster, מריצים את הפקודה הבאה:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-name
    

    מחליפים את cluster-name ב-AWSCluster. לדוגמה, כדי לערוך את אשכול ברירת המחדל, cluster-0, מריצים את הפקודה הבאה:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. מעדכנים את השדה spec.controlPlane.version לגרסה חדשה של GKE ב-AWS. הגרסה העדכנית ביותר היא 1.25.5-gke.2100.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    metadata:
      name: cluster-0
    spec:
      region: us-east-1
      controlPlane:
        version: gke_version
        instanceType: t3.medium
      ...
    

    מחליפים את gke-version בגרסת Kubernetes הרצויה. גרסת Kubernetes העדכנית ביותר שנתמכת היא 1.25.5-gke.2100.

  4. שומרים את הקובץ. אם אתם משתמשים ב-kubectl edit, השינויים יחולו אוטומטית על ידי kubectl. אם עורכים את קובץ ה-YAML, מריצים את הפקודה הבאה כדי להחיל אותו על שירות הניהול:

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl apply -f cluster-0.yaml
    

    שירות הניהול מעדכן את ה-AWSCluster.

AWSNodePool

כדי לשדרג AWSNodePool, מבצעים את השלבים הבאים:

  1. בספרייה של anthos-aws, משתמשים ב-anthos-gke כדי להעביר את ההקשר לשירות הניהול.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. פותחים בכלי לעריכת טקסט את קובץ ה-YAML שיצר את ה-AWSNodePool. אם פעלתם לפי ההוראות במאמר יצירת אשכול משתמשים, שם הקובץ הוא cluster-0.yaml.

  3. מעדכנים את הערך של spec.version במשאבי AWSNodePool.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    metadata:
      name: cluster-0-pool-0
    spec:
      clusterName: cluster-0
      region: us-east-1
      version: gke-version
      ...
    

    מחליפים את gke-version בגרסת Kubernetes הרצויה. גרסת Kubernetes העדכנית ביותר שנתמכת היא 1.25.5-gke.2100.

  4. מחילים את ההגדרה החדשה על שירות הניהול באמצעות kubectl.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    

    שירות הניהול מעדכן את AWSNodePool, כלומר כל צומת בנפרד. לפני שצומת מושבת, ה-Pods שפועלים בצומת הזה מקבלים SIGTERM. אם ה-Pod לא נסגר אחרי תקופת חסד, הוא מקבל SIGKILL.

הצג סטטוס

כדי לקבל את סטטוס השדרוג, מריצים את הפקודה kubectl get AWSClusters בשירות הניהול.

env HTTPS_PROXY=http://localhost:8118 \
    kubectl get AWSClusters

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

NAME        STATE          AGE     VERSION         ENDPOINT
cluster-0   Upgrading   2m41s      1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com

השדרוג של אשכול המשתמשים מסתיים כשהמצב של האשכולות הוא Provisioned.