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

אשכול משתמשים ב-GKE on AWS מארח את עומסי העבודה של Kubernetes. במאמר הזה מוסבר איך ליצור אשכול משתמשים בסיסי. אם רוצים להגדיר עוד הגדרות באשכול משתמשים, אפשר לעיין במאמר בנושא יצירת אשכול משתמשים בהתאמה אישית.

אתם מקצים אשכול משתמשים של GKE ב-AWS באמצעות AWSCluster ו-AWSNodePool משאבים מותאמים אישית.

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

כדי ליצור אשכול משתמשים, קודם צריך להתקין שירות ניהול.

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

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 של שירות הניהול.

בחירת גודל של מופע מישור הבקרה

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

גודל האשכול (צמתים) סוג המכונה של מישור הבקרה
‫1 – 10 m5.large
‫11 – 100 m5.xlarge
‫101 – 200 m5.2xlarge

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

בדוגמה הזו, משתמשים ב-terraform כדי ליצור הגדרה ליצירת אשכול בסיסי. לאחר מכן, מפעילים את ההגדרה באמצעות kubectl apply.

  1. פותחים את הטרמינל, ובמקרה הצורך, מתחברים ליעד המבוצר (bastion host).

  2. עוברים לתיקייה שיצרתם כשהתקנתם את שירות הניהול.

  3. משתמשים ב-Terraform כדי ליצור מניפסט להגדרת אשכול לדוגמה ושומרים אותו בקובץ YAML. בוחרים את הגרסה של Terraform ומריצים את הפקודות הבאות:

    ‫Terraform 0.12, ‏ 0.13

    terraform output cluster_example > cluster-0.yaml
    

    ‫Terraform 0.14.3 ואילך

    terraform output -raw cluster_example > cluster-0.yaml
    

    מידע נוסף על תוכן הקובץ מופיע במאמרי העזרה בנושא AWSCluster ו-AWSNodePool.

  4. פותחים את הקובץ בכלי לעריכת טקסט ועורכים אותו אם צריך. כברירת מחדל, ‫GKE ב-AWS יוצר מאגרי צמתים בכל אזור זמינות שצוין ב-anthos-gke.yaml. אתם יכולים לשנות את הגודל ואת מספר מאגרי הצמתים כדי להתאים אותם לאשכול הרצוי. אפשר גם לבצע שינויים נוספים בהגדרה. לדוגמה, אפשר לשנות את סוגי המופעים של הצמתים ב-GKE on AWS, או להפעיל רישום ביומן ומעקב בצמתים של מישור הבקרה.

  5. מחילים את הקובץ על שירות הניהול.

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

יצירת קובץ kubeconfig

בזמן שה-user cluster מתחיל, אתם יכולים ליצור kubeconfigקונטקסט ל-user cluster החדש. ההקשר משמש לאימות למשתמש או לאשכול ניהול.

  1. משתמשים ב-anthos-gke aws clusters get-credentials כדי ליצור kubeconfig לאשכול המשתמשים ב-~/.kube/config.

    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters get-credentials CLUSTER_NAME
    

    מחליפים את CLUSTER_NAME בשם האשכול. לדוגמה, cluster-0.

  2. משתמשים ב-kubectl כדי לבצע אימות לאשכול המשתמשים החדש.

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

    אם האשכול מוכן, הפלט כולל את כתובות ה-URL של רכיבי Kubernetes באשכול.

צפייה בסטטוס של האשכול

שירות הניהול מקצה משאבי AWS כשמחילים את AWSCluster או את AWSNodePool.

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

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

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

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

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

    לדוגמה, הפלט הבא כולל רק AWSCluster אחד בשם cluster-0:

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

הצגת האירועים של האשכול

כדי לראות אירועי Kubernetes מהזמן האחרון באשכול המשתמשים, משתמשים ב-kubectl get events.

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

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

  2. מריצים את kubectl get events.

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

הפלט כולל מידע, אזהרות ושגיאות שקשורים לשירות הניהול.

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

כדי למחוק אשכול משתמשים, מבצעים את השלבים הבאים:

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

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

  2. משתמשים ב-kubectl delete כדי למחוק את קובץ המניפסט שמכיל את אשכולות המשתמשים.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete -f CLUSTER_FILE
    

    מחליפים את CLUSTER_FILE בשם המניפסט שמכיל את האובייקטים AWScluster ו-AWSNodePool. לדוגמה, cluster-0.yaml.

מחיקת כל אשכולות המשתמשים

כדי למחוק את כל אשכולות המשתמשים:

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

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

  2. משתמשים ב-kubectl delete כדי למחוק את AWSNodePools ואת AWSClusters משירות הניהול.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete AWSNodePool --all
    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete AWSCluster --all
    

מידע נוסף זמין במאמר הסרת ההתקנה של GKE ב-AWS.

המאמרים הבאים