הגדרת RHEL

צריך להגדיר את מערכת ההפעלה הבסיסית של מכונות הצמתים כדי להשתמש ב-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 למכונות שאתם מגדירים. כדי לאמת את מנהל החבילות, מבצעים את השלבים הבאים:

  1. אם לא רשמתם את מערכת ההפעלה, צריך להירשם ב-RedHat באמצעות שם המשתמש והסיסמה שלכם ב-RedHat כדי להוריד עדכונים:

    sudo subscription-manager register
    
    sudo subscription-manager refresh
    
    sudo subscription-manager attach --auto
    
  2. בודקים אם יש עדכונים:

    sudo dnf check-update
    

    מוודאים שהפלט לא מכיל שגיאות וכולל את הבדיקה האחרונה של תפוגת המטא-נתונים. לדוגמה:

    Updating Subscription Management repositories.
    ...
    # Last metadata expiration check: ...
    ...
    

הגדרה או השבתה של firewalld

אפשר להגדיר את firewalld לשימוש ב-Google Distributed Cloud או להשבית אותו. מידע על הגדרת firewalld זמין במאמר הגדרת יציאות של firewalld בדף דרישות הרשת.

ההוראות הבאות משביתות את firewalld.

  1. משביתים את firewalld:

    sudo systemctl stop firewalld
    
    sudo systemctl disable firewalld
    
  2. בודקים את הסטטוס של firewalld כדי לוודא שהוא מושבת:

    sudo systemctl status firewalld | grep "Active"
    # Output
    # Active: inactive (dead)
    

הגדרת Docker בתחנת העבודה

כדי להתקין את Docker באופן ידני:

  1. מסירים את הגרסה הקודמת של Docker:

    sudo dnf remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine
    
  2. מסירים את podman-manpages:

    sudo dnf remove podman-manpages
    
  3. מתקינים את 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
    
  4. מוודאים שאתם מריצים עכשיו את גרסה 20.10.0 ואילך:

    sudo docker version
    
  5. כדי לוודא שגרסאות הלקוח והשרת הן 20.10.0 ומעלה, משווים את הפלט לדוגמה הבאה:

    Client: Docker Engine - Community
    Version:           25.0.3
    ...
    Server: Docker Engine - Community
    Engine:
    Version:          25.0.3
    
  6. אימות הפעלת 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: 8192
  • fs.inotify.max_user_watches: 524288

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

  1. בודקים את הערך של max_user_instances:

    cat /proc/sys/fs/inotify/max_user_instances
    
  2. אם צריך, מעדכנים את max_user_instances לערך המינימלי:

    echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf
    
  3. בודקים את הערך של max_user_watches:

    cat /proc/sys/fs/inotify/max_user_watches
    
  4. אם צריך, מעדכנים את max_user_watches לערך המינימלי:

    echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf
    
  5. אם עדכנתם את אחד מהערכים, הפעילו מחדש את המחשב.

שיטות מומלצות

כדי לפשט את ההתקנה, מומלץ להגדיר את RHEL באמצעות התקנה מינימלית עם ניהול ללא ראש. בנוסף, חשוב להפעיל את החיבור לרשת ולהשתמש ב-DHCP שמוגדר כברירת מחדל או לספק כתובת IP סטטית ופרטי רשת תקינים. מוודאים שהמכונה יכולה להתחבר למקורות חיצוניים נדרשים, כמו cloud.google.com.

אם Docker לא פועל, בודקים שהדמון של Docker פועל באמצעות הפקודה הבאה:

sudo systemctl start docker