כדי להשתמש ב-Google Distributed Cloud, צריך להגדיר את מערכת ההפעלה הבסיסית Red Hat Enterprise Linux (RHEL) במכונות הצומת. כדי להכין את הצמתים לפריסת האשכול, צריך להגדיר את מנהלי החבילות, הפרמטרים של הליבה ושירותי המערכת הנדרשים. לקבלת עזרה בפתרון בעיות, אפשר לעיין בבעיות מוכרות.
לפני שמתחילים
ודאו שאתם משתמשים בגרסה נתמכת של מערכת ההפעלה. רשימה של הגרסאות הנתמכות מופיעה במאמר בחירת מערכת ההפעלה.
הפעלת cgroupsv2
בגרסה 1.35 ואילך של Google Distributed Cloud לשרת פיזי, צריך את cgroupsv2. כדי ליצור או לשדרג אשכולות, מערכת ההפעלה צריכה לתמוך ב-cgroupsv2.
ב-Google Distributed Cloud אי אפשר ליצור או לשדרג אשכולות אם cgroupsv1 מזוהה במהלך בדיקות טרום-הפעלה. הוראות להעברת מערכת ההפעלה ל-cgroupsv2 מפורטות במאמר העברה ל-cgroup v2 במסמכי התיעוד של Kubernetes.
הוראות להפעלת cgroupsv2 ב-RHEL מופיעות במאמר הפעלת cgroup v2 במאגר הידע של Red Hat.
אימות גרסת Python
לפני שמפעילים או משדרגים צומת עם תוכנת Google Distributed Cloud רק ל-bare metal בגרסה 1.35 ואילך, מריצים את הפקודה python3 --version כדי לאמת את הגרסה הנוכחית של Python.
אם גרסת Python היא 3.8 או גרסה קודמת, צריך להתקין את Python 3.9 בצומת הזה.
כדי להתקין את Python 3.9 ואילך ולוודא שהצומת מאותחל או מתעדכן כצפוי, מבצעים את הפעולות הבאות:
מתקינים את Python 3.9:
sudo dnf install -y python39מוודאים שהקובץ של Python 3.9 נמצא בנתיב
/usr/bin/python3.9.
הפעלת מהדר BPF Just In Time
בליבה של מערכת ההפעלה, צריך להפעיל את האפשרות של מהדר BPF Just In Time (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 באמצעות התקנה מינימלית עם ניהול ללא GUI. בנוסף, חשוב להפעיל את החיבור לרשת ולהשתמש ב-DHCP שמוגדר כברירת מחדל או לספק כתובת IP סטטית תקינה ופרטי רשת. מוודאים שהמכונה יכולה להתחבר למשאבים החיצוניים הנדרשים, כמו cloud.google.com.
אם Docker לא פועל, בודקים אם ה-daemon של Docker פועל באמצעות הפקודה הבאה:
sudo systemctl start docker