צריך להגדיר את מערכת ההפעלה הבסיסית של מכונות הצמתים כדי להשתמש ב-Google Distributed Cloud. בדף הזה מפורטים השלבים שצריך לבצע כדי להשלים את ההגדרה הנדרשת. למידע נוסף על פתרון בעיות ב-Google Distributed Cloud, אפשר לעיין במדריכים לפתרון בעיות.
לפני שמתחילים
חשוב לוודא שאתם משתמשים בגרסה נתמכת של מערכת ההפעלה. רשימת הגרסאות הנתמכות זמינה במאמר בחירת מערכת ההפעלה.
הפעלת cgroupsv2
תוכנת Google Distributed Cloud בלבד לשרת פיזי מגרסה 1.35 ואילך דורשת
cgroupsv2. מערכת ההפעלה שלכם צריכה לתמוך ב-cgroupsv2 כדי ליצור אשכולות או לשדרג אותם.
Google Distributed Cloud מונע יצירה או שדרוג של אשכולות אם מזוהה cgroupsv1 במהלך בדיקות קדם-הפעלה. הוראות להעברת מערכת ההפעלה אל cgroupsv1 זמינות במאמר העברה ל-cgroup v2 במסמכי Kubernetes.cgroupsv2
הוראות להפעלת cgroupsv2 ב-RHEL מופיעות במאמר Enabling cgroup v2 במאגר הידע של Red Hat.
הפעלת מהדר BPF Just In Time
הליבה של מערכת ההפעלה צריכה לכלול את האפשרות BPF Just In Time compiler (מהדר JIT של BPF) (CONFIG_BPF_JIT=y).
כדי לבדוק אם האפשרות הזו מופעלת, מריצים את הפקודה הבאה:
grep CONFIG_BPF_JIT /boot/config-$(uname -r)
אימות מנהל החבילות
מוודאים שיש לכם שם משתמש וסיסמה ב-RedHat, ושיש לכם גישת root למכונות שאתם מגדירים. כדי לאמת את מנהל החבילות, מבצעים את השלבים הבאים:
אם לא רשמתם את מערכת ההפעלה, צריך להירשם ב-RedHat באמצעות שם המשתמש והסיסמה שלכם ב-RedHat כדי להוריד עדכונים:
sudo subscription-manager register sudo subscription-manager refresh sudo subscription-manager attach --autoבודקים אם יש עדכונים:
sudo dnf check-updateמוודאים שהפלט לא מכיל שגיאות וכולל את הבדיקה האחרונה של תפוגת המטא-נתונים. לדוגמה:
Updating Subscription Management repositories. ... # Last metadata expiration check: ... ...
הגדרה או השבתה של firewalld
אפשר להגדיר את firewalld לשימוש ב-Google Distributed Cloud או להשבית אותו. מידע על הגדרת firewalld זמין במאמר הגדרת יציאות של firewalld בדף דרישות הרשת.
ההוראות הבאות משביתות את firewalld.
משביתים את firewalld:
sudo systemctl stop firewalld sudo systemctl disable firewalldבודקים את הסטטוס של firewalld כדי לוודא שהוא מושבת:
sudo systemctl status firewalld | grep "Active" # Output # Active: inactive (dead)
הגדרת Docker בתחנת העבודה
כדי להתקין את Docker באופן ידני:
מסירים את הגרסה הקודמת של Docker:
sudo dnf remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engineמסירים את podman-manpages:
sudo dnf remove podman-manpagesמתקינים את Docker 20.10.0 ואילך:
sudo dnf install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/rhel/docker-ce.repo sudo dnf install -y --allowerasing docker-ce docker-ce-cli containerd.io sudo systemctl start dockerמוודאים שאתם מריצים עכשיו את גרסה 20.10.0 ואילך:
sudo docker versionכדי לוודא שגרסאות הלקוח והשרת הן 20.10.0 ומעלה, משווים את הפלט לדוגמה הבאה:
Client: Docker Engine - Community Version: 25.0.3 ... Server: Docker Engine - Community Engine: Version: 25.0.3אימות הפעלת Docker:
docker run hello-worldהפלט אמור להיראות כך:
Hello from Docker!ההודעה הזו מציינת שההתקנה שלכם פועלת כראוי.
הגדרת סנכרון זמן
סנכרון הזמן כולל הגדרה של השעונים במכונות הצמתים, באמצעות הפניה חיצונית ייעודית לזמן. סנכרון הזמן חשוב לפעילויות של אשכולות שרגישות לזמן, כמו רישום אירועים ואיסוף מדדים.
הליבה של מכונת הצומת שולטת בשעון בקונטיינרים שפועלים בצומת. כדי לוודא שהשעון מסונכרן בצורה תקינה, צריך להתקין במחשבים שירות פרוטוקול זמן רשת (NTP) באמצעות אחד מהשירותים הזמינים: chrony, systemd-timesyncd, ntp או ntpdate. מריצים את הפקודה timedatectl כדי לוודא ששעון המערכת מסונכרן. הפלט של timedatectl צריך לכלול את הסטטוס הבא:
System clock synchronized: yes
מוודאים שהמגבלות של ליבת Linux inotify הן ברמה המינימלית או מעליה
במכונות שמופעלות באמצעות RHEL 9 ו-8.10, המגבלות של ליבת Linux inotify לגבי מספר מקסימלי של מופעי משתמשים וצפיות של משתמשים צריכות להיות גדולות מהערכים הבאים או שוות להם:
fs.inotify.max_user_instances:8192fs.inotify.max_user_watches:524288
מוודאים שהערכים האלה מוגדרים בצורה נכונה במכונות הצומת:
בודקים את הערך של
max_user_instances:cat /proc/sys/fs/inotify/max_user_instancesאם צריך, מעדכנים את
max_user_instancesלערך המינימלי:echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.confבודקים את הערך של
max_user_watches:cat /proc/sys/fs/inotify/max_user_watchesאם צריך, מעדכנים את
max_user_watchesלערך המינימלי:echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.confאם עדכנתם את אחד מהערכים, הפעילו מחדש את המחשב.
שיטות מומלצות
כדי לפשט את ההתקנה, מומלץ להגדיר את RHEL באמצעות התקנה מינימלית עם ניהול ללא ראש. בנוסף, חשוב להפעיל את החיבור לרשת ולהשתמש ב-DHCP שמוגדר כברירת מחדל או לספק כתובת IP סטטית ופרטי רשת תקינים. מוודאים שהמכונה יכולה להתחבר למקורות חיצוניים נדרשים, כמו cloud.google.com.
אם Docker לא פועל, בודקים שהדמון של Docker פועל באמצעות הפקודה הבאה:
sudo systemctl start docker