הגדרת RHEL

אתם צריכים להגדיר את מערכת ההפעלה הבסיסית של מכונות הצמתים כדי להשתמש ב-Google Distributed Cloud. בדף הזה מפורטים השלבים שצריך לבצע כדי להשלים את ההגדרה הנדרשת. מידע נוסף על פתרון בעיות ב-Google Distributed Cloud זמין במדריכים לפתרון בעיות.

לפני שמתחילים

חשוב לוודא שאתם משתמשים בגרסה נתמכת של מערכת ההפעלה. רשימת הגרסאות הנתמכות זמינה במאמר בחירת מערכת ההפעלה.

הפעלת מהדר 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