תחנת העבודה של האדמין מארחת כלי ממשק שורת פקודה (CLI) וקבצי הגדרה להקצאת אשכולות במהלך ההתקנה, וכלי CLI לאינטראקציה עם אשכולות שהוקצו לאחר ההתקנה.
הדף הזה מיועד לאדמינים, לארכיטקטים ולמפעילים שמגדירים, מנטרים ומנהלים את מחזור החיים של התשתית הטכנולוגית הבסיסית. כדי לקבל מידע נוסף על תפקידים נפוצים ועל משימות לדוגמה שאנחנו מתייחסים אליהן בGoogle Cloud תוכן, אפשר לעיין במאמר תפקידים נפוצים של משתמשי GKE ומשימות.
אתם מורידים ומפעילים כלים כמו bmctl ו-Google Cloud CLI בתחנת העבודה של האדמין כדי ליצור אינטראקציה עם אשכולות ומשאבים. Google Cloud תחנת העבודה של האדמין מארחת קובצי תצורה להקצאת אשכולות במהלך התקנה, שדרוגים ועדכונים. אחרי ההתקנה, תחנת העבודה של האדמין מארחת קובצי kubeconfig כדי שתוכלו להשתמש ב-kubectl כדי ליצור אינטראקציה עם אשכולות שהוקצו. בנוסף, תוכלו לגשת ליומנים של פעולות קריטיות באשכול בתחנת העבודה של האדמין. אפשר להשתמש בתחנת עבודה אחת לאדמין כדי ליצור ולנהל הרבה אשכולות.
חשוב לוודא שתחנת העבודה של האדמין עומדת בדרישות הסף שמתוארות בסעיפים הבאים.
מערכת הפעלה ותוכנה
כדי להריץ את bmctl ולפעול כצומת של מישור בקרה, תחנת העבודה של האדמין צריכה לעמוד בדרישות של מערכת ההפעלה (OS) כמו הצמתים. תחנת העבודה של האדמין דורשת את Docker, אבל לא לשימוש כזמן ריצה של קונטיינר. כש-Google Distributed Cloud יוצר אשכולות, הוא פורס אשכול Kubernetes in Docker (kind) בתחנת העבודה של האדמין. באשכול bootstrap הזה מתארחים בקרי Kubernetes שנדרשים ליצירת אשכולות. אלא אם מציינים אחרת, מקבץ האתחול מוסר כשיצירת המקבץ מסתיימת בהצלחה. אשכול ה-bootstrap דורש את Docker כדי לשלוף קובצי אימג' של קונטיינרים.
כדי להתקין אשכול, תחנת העבודה של האדמין צריכה לעמוד בדרישות הבאות:
מערכת ההפעלה היא הפצת Linux נתמכת.
רשימת מערכות הפעלה וגרסאות של Linux שנתמכות זמינה במאמר בנושא בחירת מערכת ההפעלה. בדף הזה יש קישורים להוראות הגדרה, כולל הגדרת Docker, לכל מערכת הפעלה.
גרסה 19.03 ואילך של Docker מותקנת. עם זאת, אם המערכת שלכם משתמשת ב-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. כשמשתמשים באשכול bootstrap, יש עלייה משמעותית בשימוש במעבד ובשימוש בזיכרון. אם אתם מתכוונים להשתמש בתחנת העבודה של האדמין כצומת של מישור הבקרה, אל תשתמשו בפחות מהכמות המומלצת הגבוהה של מעבדים וזיכרון RAM כדי למנוע מפעילויות של תחנת העבודה של האדמין לשבש את הפונקציות של מישור הבקרה של האשכול.
בהתאם לגודל מסד הנתונים etcd ולמספר הצמתים במישור הבקרה, פעולות הגיבוי והשחזור של האשכול צורכות כמות משמעותית של זיכרון RAM. ההערכה הגסה של זיכרון ה-RAM שנדרש לגיבויים היא 3-5 GiB לכל צומת של מישור הבקרה. תהליך הגיבוי נכשל כי אין מספיק זיכרון. חשוב לתכנן את דרישות ה-RAM בהתאם.
בטבלה הבאה מפורטות דרישות החומרה המינימליות והמומלצות לתחנת העבודה של האדמין:
| משאב | מינימום | מומלץ |
|---|---|---|
| מעבדים / מעבדי vCPU* | 2 ליבות | 4 ליבות |
| RAM | Ubuntu: 4 GiB RHEL: 6 GiB |
Ubuntu: 8 GiB RHEL: 12 GiB |
| אחסון | 128 GiB | 256 GiB |
* Google Distributed Cloud תומך רק במעבדי x86-64 ובמעבדים וירטואליים ברמת המיקרו-ארכיטקטורה של המעבד v3 (x86-64-v3) ומעלה.
דרישות הרשת
לתחנת העבודה של האדמין צריכה להיות גישה אל Google Cloud ואל כל הצמתים באשכול.
גישה אל Google Cloud
תחנת העבודה של האדמין ניגשת אל Google Cloud כדי להוריד ולהתקין כלים ותמונות, לעבד בקשות הרשאה, ליצור חשבונות שירות, לנהל רישום ביומן ומעקב ועוד. אי אפשר ליצור אשכולות בלי גישה ל-Google Cloud.
הגישה אל Google Cloud יכולה להיות ישירה או דרך שרת proxy. מידע על דרכים שונות להתחבר אל Google Cloudזמין במאמר התחברות אל Google. מידע על הגדרת שרת proxy מופיע במאמר בנושא התקנה מאחורי שרת proxy.
מידע על ההשלכות של שיבוש בגישה ל- Google Cloudזמין במאמר ההשפעה של ניתוק זמני מ- Google Cloud.
גישה לצמתים
כדי ליצור ולנהל אשכולות מתחנת העבודה של האדמין, צריך את הגישה הבאה למכונות הצמתים:
- קישוריות בשכבה 3 לכל המכונות של צומתי האשכול.
גישת SSH ללא סיסמה לכל המכונות של צומתי האשכול, בתור
rootאו בתור משתמש שאינו root עם הרשאותsudoללא סיסמה. ההרשאות ברמה הגבוהה הזו נדרשות לכלים לאוטומציה כדי לבצע משימות ברמת הצומת שמקצות את הצמתים במהלך התקנת האשכול.גישה ל-VIP של מישור הבקרה.
העברת IP
צריך להפעיל את העברת כתובות IP בתחנת העבודה של האדמין. בלי העברת IP, אי אפשר ליצור את אשכול האתחול, ולכן אי אפשר ליצור את האשכול. אם העברת ה-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 בתחנת העבודה של האדמין ולשתף את המפתח הציבורי עם צמתים של האשכול.
מפעילים את
rootאימות סיסמה של SSH בכל מכונת צומת באשכול על ידי ביטול ההערה או הוספה של השורות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) בלי להזין סיסמה.