בנושא הזה מוסבר איך לעדכן את ההגדרה של אשכול משתמשים קיים.
סקירה כללית
במקרה של אשכולות משתמשים שמופעלת בהם גרסה 1.20 של Kubernetes ומעלה, אפשר לשנות את המאפיינים הבאים:
- קבוצות האבטחה של אשכול משתמשים, שמתוארות בנושא הזה.
- גרסאות של אשכולות ומאגרי צמתים. מידע נוסף זמין במאמר שדרוג GKE ב-AWS.
- הגדרות שרת ה-proxy. מידע נוסף מופיע במאמר בנושא שינוי הגדרות לשרת proxy.
- גודל מאגר הצמתים. מידע נוסף זמין במאמר בנושא שינוי הגודל של מאגר צמתים.
ב-Kubernetes 1.22 ואילך, אפשר לעדכן את סוגי המופעים של EC2.
כדי לעדכן את המשאבים האלה, עורכים את המשאבים AWSCluster ו-AWSNodePool.
אחרי שמעדכנים את ההגדרות, GKE ב-AWS מעביר את האשכול או את מאגר הצמתים למצב Updating. כשהעדכון יסתיים, האשכול או מאגר הצמתים יחזרו למצב Provisioned.
לפני שמתחילים
כדי לשנות את אשכולות המשתמשים, האשכול ומאגר הצמתים צריכים להריץ Kubernetes בגרסה 1.20 ומעלה. אם האשכול שלכם לא מריץ Kubernetes 1.20, קודם צריך לשדרג את אשכול המשתמשים.
כדי לשנות את קבוצות האבטחה של האשכול, לתפקיד AWS IAM (שמוגדר כ-spec.authentication.awsIAM.adminIdentityARNs ב-anthos-gke.yaml) שמנהל את אשכולות המשתמשים של GKE ב-AWS, צריכה להיות ההרשאה ec2:ModifyNetworkInterfaceAttribute.
עדכון קבוצות אבטחה
בקטע הזה מעדכנים את קבוצות האבטחה של אשכול ושל מאגר צמתים. כדי לעדכן את קבוצות האבטחה, פועלים לפי השלבים הבאים:
בספרייה של
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.securityGroupIDsשלAWSCluster.apiVersion: multicloud.cluster.gke.io/v1 kind: AWSCluster ... spec: controlPlane: securityGroupIDs: - SECURITY_GROUP_ID ...מחליפים את SECURITY_GROUP_ID במזהה של קבוצת האבטחה החדשה. כדי להוסיף כמה קבוצות אבטחה, מוסיפים ערכים נוספים למערך בקטע
spec.controlPlane.securityGroupIDs.בדוגמה הבאה נכללות קבוצות האבטחה
sg-12345678abו-sg-abcdef1234:apiVersion: multicloud.cluster.gke.io/v1 kind: AWSCluster spec: controlPlane: securityGroupIDs: - sg-12345678ab - sg-abcdef1234 ...עורכים את השדה
spec.securityGroupIDsבמשאביAWSNodePool.apiVersion: multicloud.cluster.gke.io/v1 kind: AWSNodePool spec: securityGroupIDs: - SECURITY_GROUP_ID ...שומרים את הקובץ. אם אתם משתמשים ב-
kubectl edit, השינויים יחולו אוטומטית על ידיkubectl. אם עורכים את קובץ ה-YAML, מריצים את הפקודה הבאה כדי להחיל אותו על שירות הניהול:env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yamlצריך לבדוק את סטטוס העדכון עם
kubectl. בסיום העדכון, המצב של האובייקט משתנה מ-Updatingל-Provisioned.env HTTPS_PROXY=http://localhost:8118 \ kubectl get AWSClusters,AWSNodePoolsלדוגמה, בזמן שהאשכול נמצא במצב עדכון, הפלט נראה כך:
NAME STATE AGE VERSION ENDPOINT cluster-0 Updating 10m41s 1.25.5-gke.2100 gke-xyz.elb.us-east-1.amazonaws.com NAME CLUSTER STATE AGE VERSION cluster-0-pool-0 cluster-0 Updating 10m40s 1.25.5-gke.2100
עדכון סוגי המכונות
בקטע הזה מעדכנים את סוגי המופעים של אשכול ומאגר צמתים. כדי לעדכן את סוגי המופעים:
בספרייה של
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.instanceTypeשלAWSCluster.apiVersion: multicloud.cluster.gke.io/v1 kind: AWSCluster ... spec: controlPlane: instanceType: AWS_INSTANCE_TYPE ...מחליפים את AWS_INSTANCE_TYPE בסוג המכונה החדש. מידע נוסף זמין במאמר סוגי מופעים נתמכים.
עורכים את השדה
spec.instanceTypeבמשאביAWSNodePool.apiVersion: multicloud.cluster.gke.io/v1 kind: AWSNodePool spec: instanceType: AWS_INSTANCE_TYPE ...שומרים את הקובץ. אם אתם משתמשים ב-
kubectl edit, השינויים יחולו אוטומטית על ידיkubectl. אם עורכים את קובץ ה-YAML, מריצים את הפקודה הבאה כדי להחיל אותו על שירות הניהול:env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yamlצריך לבדוק את סטטוס העדכון עם
kubectl. בסיום העדכון, המצב של האובייקט משתנה מ-Updatingל-Provisioned.env HTTPS_PROXY=http://localhost:8118 \ kubectl get AWSClusters,AWSNodePoolsלדוגמה, בזמן שהאשכול נמצא במצב עדכון, הפלט נראה כך:
NAME STATE AGE VERSION ENDPOINT cluster-0 Updating 10m41s 1.25.5-gke.2100 gke-xyz.elb.us-east-1.amazonaws.com NAME CLUSTER STATE AGE VERSION cluster-0-pool-0 cluster-0 Updating 10m40s 1.25.5-gke.2100
המאמרים הבאים
- מידע נוסף על שדרוג אשכול משתמשים זמין במאמר שדרוג GKE ב-AWS.