דרישות מוקדמות לשימוש בתחנת עבודה לאדמין

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

הדף הזה מיועד לאדמינים, לאדריכלים ולמפעילים שמגדירים, עוקבים ומנהלים את מחזור החיים של התשתית הטכנולוגית הבסיסית. במאמר תפקידים ומשימות נפוצים של משתמשי GKE תוכלו לקרוא מידע נוסף על תפקידים נפוצים ודוגמאות למשימות שאנחנו מתייחסים אליהן בתוכן שלGoogle Cloud .

אתם מורידים ומפעילים כלים, כמו bmctl ו-Google Cloud CLI, בתחנת העבודה של האדמין כדי לקיים אינטראקציה עם אשכולות ומשאבי Google Cloud . תחנת העבודה של האדמין מארחת קובצי תצורה להקצאת אשכולות במהלך ההתקנה, השדרוגים והעדכונים. אחרי ההתקנה, תחנת העבודה של האדמין מארחת קובצי kubeconfig כדי שתוכלו להשתמש ב-kubectl לאינטראקציה עם אשכולות שהוקצו. אתם יכולים גם לגשת ליומנים של פעולות קריטיות באשכול בתחנת העבודה של האדמין. אפשר להשתמש בתחנת עבודה אחת של אדמין כדי ליצור ולנהל אשכולות רבים.

חשוב לוודא שתחנת העבודה של האדמין עומדת בדרישות המוקדמות שמתוארות בקטעים הבאים.

מערכת הפעלה ותוכנה

כדי להריץ את bmctl ולפעול כצומת של מישור הבקרה, תחנת העבודה של האדמין צריכה לעמוד באותן דרישות של מערכת ההפעלה (OS) כמו הצמתים. בסביבת העבודה של האדמין נדרש Docker, אבל לא לשימוש כסביבת זמן ריצה של קונטיינר. כשיוצרים אשכולות ב-Google Distributed Cloud, נפרס אשכול Kubernetes in Docker (kind) בתחנת העבודה של האדמין. אשכול ה-bootstrap הזה מארח את בקרי Kubernetes שנדרשים כדי ליצור אשכולות. אם לא תציינו אחרת, אשכול ה-bootstrap יוסר כשיצירת האשכול תסתיים בהצלחה. כדי למשוך קובצי אימג' של קונטיינרים, אשכול ה-bootstrap צריך את Docker.

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

  • מערכת ההפעלה היא הפצת Linux נתמכת.

    במאמר בחירת מערכת ההפעלה תוכלו למצוא רשימה של גרסאות ומערכות הפעלה נתמכות של Linux. בדף הזה יש קישורים להוראות הגדרה, כולל הגדרת Docker, לכל מערכת הפעלה.

  • ‫Docker בגרסה 19.03 ואילך מותקן. עם זאת, אם המערכת משתמשת ב-cgroup v2, גרסת Docker שמותקנת בתחנת העבודה של האדמין צריכה להיות 20.10.0 ואילך. (כדי לדעת אם המערכת משתמשת ב-cgroup v2, בודקים אם הקובץ /sys/fs/cgroup/cgroup.controllers קיים).

  • משתמש שאינו משתמש Root הוא חבר בקבוצה docker (להוראות, ראו ניהול Docker כמשתמש שאינו משתמש Root).

  • ‫Google Cloud CLI מותקן.

    אתם משתמשים בכלים של kubectl ו-bmctl כדי ליצור ולנהל אשכולות. כדי להתקין את הכלים האלה, צריך את הכלי gcloud. כלי שורת הפקודה gcloud ו-kubectl הם רכיבים של ה-CLI של gcloud. במאמר התקנת ה-CLI של gcloud תוכלו לקרוא הוראות להתקנה, כולל הוראות להתקנת רכיבים.

  • ‫kubectl מותקנת. משתמשים ב-CLI של gcloud כדי להתקין את kubectl באמצעות הפקודה הבאה:

    gcloud components install kubectl
    
  • ‫bmctl מותקן בגרסה של האשכול שאתם יוצרים או מפעילים.

    כדי להתקין, צריך להשתמש ב-gcloud כדי להוריד קובץ הרצה או חבילת קובצי אימג' של bmctl. הוראות מפורטות זמינות במאמר הורדות של תוכנת Google Distributed Cloud לשרת פיזי בלבד.

דרישות למשאבי חומרה

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

כברירת מחדל, פעולות השדרוג והיצירה של אשכולות משתמשות באשכול בוטסטראפ. כשמשתמשים באשכול Bootstrap, יש עלייה משמעותית בשימוש במעבד (CPU) ובשימוש בזיכרון. אם אתם מתכוונים להשתמש בתחנת העבודה של האדמין כצומת במישור הבקרה, השתמשו בכמות המומלצת הגבוהה יותר של מעבדים ו-RAM כדי למנוע מהפעילויות בתחנת העבודה של האדמין לשבש את הפונקציות של מישור הבקרה באשכול.

בהתאם לגודל של מסד הנתונים etcd ולמספר הצמתים במישור הבקרה, פעולות הגיבוי והשחזור של האשכול צורכות כמות משמעותית של זיכרון RAM. ההערכה הגסה של זיכרון ה-RAM שנדרש לגיבויים היא 3-5 GiB לכל צומת במישור הבקרה. תהליך הגיבוי נכשל כי אין מספיק זיכרון. תכננו את דרישות ה-RAM בהתאם.

בטבלה הבאה מפורטות דרישות החומרה המינימליות והמומלצות לתחנת עבודה של אדמין:

משאב מינימום מומלץ
מעבדים (CPU) או מעבדים וירטואליים (vCPU)* ‫2 ליבות ‫4 ליבות
RAM ‫Ubuntu: ‏4 GiB

‫RHEL: ‏ 6GiB

‫Ubuntu: ‏ 8GiB

‫RHEL: ‏ 12GiB

אחסון ‎128 GiB ‫256 GiB

* Google Distributed Cloud תומך רק במעבדי x86-64 ובמעבדי vCPU ברמת מיקרו-ארכיטקטורה של מעבד v3‏ (x86-64-v3) ומעלה.

דרישות רשת

לתחנת העבודה של האדמין צריכה להיות גישה ל- Google Cloud ולכל הצמתים באשכול.

גישה אל Google Cloud

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

הגישה אל Google Cloud יכולה להיות ישירה או דרך שרת proxy. במאמר התחברות ל-Google מוסבר על הדרכים השונות להתחברות אל Google Cloud. מידע על הגדרת שרת proxy מופיע במאמר התקנה מאחורי שרת proxy.

במאמר ההשפעה של ניתוק זמני מ- Google Cloud מוסבר מה קורה אם הגישה ל- Google Cloudנקטעת.

גישה לצמתים

כדי ליצור ולנהל אשכולות מתחנת העבודה של האדמין, אתם צריכים את הגישה הבאה למכונות הצומת:

  • קישוריות שכבה 3 לכל מכונות הצמתים באשכול.
  • גישת SSH ללא סיסמה לכל מכונות הצמתים באשכול, בתור root או בתור משתמש שאינו משתמש Root עם sudo הרשאות ללא סיסמה. כלי האוטומציה דורשים את רמת ההרשאות הגבוהה הזו כדי לבצע משימות ברמת הצומת, שמקצות את הצמתים במהלך התקנת האשכול.

  • גישה ל-VIP של מישור הבקרה.

העברת IP

צריך להפעיל העברת IP בתחנת העבודה של האדמין. בלי העברת IP, אי אפשר ליצור את אשכול ה-bootstrap, מה שמונע את יצירת האשכול. אם העברת IP מושבתת, תופיע שגיאה כמו זו כשמנסים ליצור אשכול:

Error message: E0202 14:53:25.979322 225917 console.go:110] Error creating cluster: create kind cluster failed: error creating bootstrap cluster: failed to init node with kubeadm: command "docker exec --privileged bmctl-control-plane kubeadm init --skip-phases=preflight --config=/kind/kubeadm.conf --skip-token-print --v=6" failed with error: exit status 1

כדי לבדוק את הגדרת העברת ה-IP, מריצים את הפקודה הבאה:

cat /proc/sys/net/ipv4/ip_forward

הערך 1 מציין שהעברת IP מופעלת. אם העברת ה-IP מושבתת (0), משתמשים בפקודה הבאה כדי להפעיל אותה:

echo '1' | sudo tee /proc/sys/net/ipv4/ip_forward

הגדרת גישת SSH של root לצמתים

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

  1. מפעילים אימות סיסמת SSH של root בכל מכונה של צומת באשכול. כדי לעשות את זה, מבטלים את ההערה או מוסיפים את השורות PermitRootLogin ו-PasswordAuthentication בקובץ /etc/ssh/sshd_config ומגדירים את הערכים ל-yes.

    # $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
    
    # This is the sshd server system-wide configuration file.  See
    # sshd_config(5) for more information.
    
    ...
    
    # Authentication:
    
    #LoginGraceTime 2m
    PermitRootLogin yes
    #StrictModes yes
    #MaxAuthTries 6
    #MaxSessions 10
    
    ...
    
    PasswordAuthentication yes
    

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

  2. כדי להחיל את השינויים בהגדרות ה-SSH, מפעילים מחדש את שירות ה-SSH:

    sudo systemctl restart ssh.service
    
  3. יוצרים זוג מפתחות פרטיים וציבוריים בתחנת העבודה של האדמין. אל תגדירו ביטוי סיסמה למפתחות. יוצרים את המפתחות באמצעות הפקודה הבאה:

    ssh-keygen -t rsa
    

    אפשר גם להשתמש בגישת משתמש sudo למכונות של צומתי האשכול כדי להגדיר SSH. עם זאת, בחיבורים של משתמשים שאינם משתמשי Root ללא סיסמה, צריך לעדכן את קובץ התצורה של האשכול באמצעות השדה spec.nodeAccess.loginUser. השדה הזה מסומן כהערה כברירת מחדל. אפשר לציין את שם המשתמש שאינו ברמת הבסיס באמצעות loginUser במהלך יצירת האשכול או בכל שלב לאחר מכן. מידע נוסף זמין במאמר loginUser.

  4. מוסיפים את המפתח הציבורי שנוצר למכונות של צומתי האשכול:

    ssh-copy-id -i PATH_TO_IDENTITY_FILE root@CLUSTER_NODE_IP
    

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

    • ‫PATH_TO_IDENTITY_FILE: הנתיב לקובץ שמכיל את מפתח ציבורי SSH. כברירת מחדל, הנתיב לקובץ הזהות שמכיל את המפתח הציבורי הוא /home/USERNAME/.ssh/id_rsa.pub.
    • ‫CLUSTER_NODE_IP: כתובת ה-IP של מכונת הצומת שאליה מוסיפים את המפתח הציבורי SSH.
  5. משביתים את אימות הסיסמה של SSH במכונות של צומתי האשכול. כדי לעשות את זה, מגדירים את PasswordAuthentication ל-no בקובץ sshd_config ומפעילים מחדש את שירות ה-SSH.

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

    ssh -o IdentitiesOnly=yes -i PATH_TO_IDENTITY_FILE root@CLUSTER_NODE_IP
    

    כשה-SSH מוגדר כמו שצריך, אתם יכולים להתחבר למכונת הצומת מתחנת העבודה של האדמין (בתור root) בלי להזין סיסמה.

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