תחנת העבודה של האדמין מארחת את הכלים של ממשק שורת הפקודה (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 בתחנת הניהול ולשתף את המפתח הציבורי עם צומתי האשכול.
מפעילים אימות סיסמת 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 במכונות של צומתי האשכול המרוחק כדי לשתף מפתחות מתחנת העבודה של האדמין.
כדי להחיל את השינויים בהגדרות ה-SSH, מפעילים מחדש את שירות ה-SSH:
sudo systemctl restart ssh.serviceיוצרים זוג מפתחות פרטיים וציבוריים בתחנת העבודה של האדמין. אל תגדירו ביטוי סיסמה למפתחות. יוצרים את המפתחות באמצעות הפקודה הבאה:
ssh-keygen -t rsaאפשר גם להשתמש בגישת משתמש
sudoלמכונות של צומתי האשכול כדי להגדיר SSH. עם זאת, בחיבורים של משתמשים שאינם משתמשי Root ללא סיסמה, צריך לעדכן את קובץ התצורה של האשכול באמצעות השדהspec.nodeAccess.loginUser. השדה הזה מסומן כהערה כברירת מחדל. אפשר לציין את שם המשתמש שאינו ברמת הבסיס באמצעותloginUserבמהלך יצירת האשכול או בכל שלב לאחר מכן. מידע נוסף זמין במאמרloginUser.מוסיפים את המפתח הציבורי שנוצר למכונות של צומתי האשכול:
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.
-
משביתים את אימות הסיסמה של SSH במכונות של צומתי האשכול. כדי לעשות את זה, מגדירים את
PasswordAuthenticationל-noבקובץsshd_configומפעילים מחדש את שירות ה-SSH.כדי לוודא שאימות המפתח הציבורי פועל בין תחנת העבודה למכונות הצומת, משתמשים בפקודה הבאה בתחנת העבודה של האדמין.
ssh -o IdentitiesOnly=yes -i PATH_TO_IDENTITY_FILE root@CLUSTER_NODE_IPכשה-SSH מוגדר כמו שצריך, אתם יכולים להתחבר למכונת הצומת מתחנת העבודה של האדמין (בתור
root) בלי להזין סיסמה.