כדי לשדרג את סביבת GKE on AWS, קודם משדרגים את שירות הניהול ואז משדרגים את אשכולות המשתמשים.
שירות ניהול
בקטעים הבאים נסביר איך לשדרג את שירות הניהול.
לפני שמתחילים
כדי להתחבר למשאבי GKE ב-AWS, מבצעים את השלבים הבאים. בוחרים אם יש לכם רשת VPC קיימת ב-AWS (או חיבור ישיר לרשת ה-VPC) או אם יצרתם רשת VPC ייעודית כשבניתם את שירות הניהול.
VPC קיים
אם יש לכם חיבור ישיר או חיבור VPN ל-VPC קיים, אל תכללו את השורה env HTTP_PROXY=http://localhost:8118 בפקודות שמופיעות בנושא הזה.
VPC ייעודי
כשיוצרים שירות ניהול ב-VPC ייעודי, GKE on AWS כולל מארח bastion בתת-רשת ציבורית.
כדי להתחבר לשירות הניהול:
עוברים לספרייה עם ההגדרה של GKE ב-AWS. יצרתם את הספרייה הזו כשהתקנתם את שירות הניהול.
cd anthos-aws
כדי לפתוח את המנהרה, מריצים את הסקריפט
bastion-tunnel.sh. המנהרה מעבירה את הנתונים אלlocalhost:8118.כדי לפתוח מנהרה ליעד המבוצר (bastion host), מריצים את הפקודה הבאה:
./bastion-tunnel.sh -Nההודעות ממנהרת ה-SSH מופיעות בחלון הזה. כשרוצים לסגור את החיבור, מפסיקים את התהליך באמצעות Control+C או סוגרים את החלון.
פותחים טרמינל חדש ועוברים לספרייה
anthos-aws.cd anthos-aws
מוודאים שאפשר להתחבר לאשכול באמצעות
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.
מורידים את הקובץ הבינארי מ-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 .עדכון ההרשאות של
anthos-gkeוהעתקה שלו אל/usr/local/bin.chmod 755 anthos-gke sudo mv anthos-gke /usr/local/binמוודאים שהגרסה היא
aws-1.14.1-gke.0anthos-gke version
שדרוג שירות הניהול
כדי לשדרג את האשכול:
- עוברים לספרייה עם ההגדרה של GKE ב-AWS.
יצרתם את הספרייה הזו כשהתקנתם את שירות הניהול.
cd anthos-aws
פותחים את קובץ
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 ...מריצים את הפקודה
anthos-gke aws management initכדי לאמת את האובייקטAWSManagementServiceולעדכן את הקובץanthos-gke.status.yaml.anthos-gke aws management initמריצים את הפקודה
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, פועלים לפי השלבים הבאים:
בספרייה של
anthos-aws, משתמשים ב-anthos-gkeכדי להעביר את ההקשר לשירות הניהול.cd anthos-aws anthos-gke aws management get-credentials
פותחים בכלי לעריכת טקסט את קובץ ה-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מעדכנים את השדה
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.
שומרים את הקובץ. אם אתם משתמשים ב-
kubectl edit, השינויים יחולו אוטומטית על ידיkubectl. אם עורכים את קובץ ה-YAML, מריצים את הפקודה הבאה כדי להחיל אותו על שירות הניהול:env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yamlשירות הניהול מעדכן את ה-AWSCluster.
AWSNodePool
כדי לשדרג AWSNodePool, מבצעים את השלבים הבאים:
בספרייה של
anthos-aws, משתמשים ב-anthos-gkeכדי להעביר את ההקשר לשירות הניהול.cd anthos-aws anthos-gke aws management get-credentials
פותחים בכלי לעריכת טקסט את קובץ ה-YAML שיצר את ה-AWSNodePool. אם פעלתם לפי ההוראות במאמר יצירת אשכול משתמשים, שם הקובץ הוא
cluster-0.yaml.מעדכנים את הערך של
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.
מחילים את ההגדרה החדשה על שירות הניהול באמצעות
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.