RHEL konfigurieren

Sie müssen das Basisbetriebssystem Ihrer Knotenmaschinen für die Verwendung von Google Distributed Cloud konfigurieren. Diese Seite enthält die Schritte, die Sie ausführen müssen, um die erforderliche Konfiguration abzuschließen. Weitere Informationen zur Fehlerbehebung für Google Distributed Cloud finden Sie in den Leitfäden zur Fehlerbehebung.

Hinweise

Vergewissern Sie sich, dass Sie eine unterstützte Version Ihres Betriebssystems verwenden. Eine Liste der unterstützten Versionen finden Sie unter Betriebssystem auswählen.

BPF-Just-in-Time-Compiler aktivieren

Im Kernel für Ihr Betriebssystem muss die BPF-Just In Time-Compiler-Option (CONFIG_BPF_JIT=y) aktiviert sein.

  • Führen Sie den folgenden Befehl aus, um herauszufinden, ob diese Option aktiviert ist:

    grep CONFIG_BPF_JIT /boot/config-$(uname -r)
    

Paketmanager validieren

Achten Sie darauf, dass Sie den RedHat-Nutzernamen und das zugehörige Passwort haben und Root-Zugriff auf die Maschinen haben, die Sie konfigurieren. Prüfen Sie den Paketmanager mit den folgenden Schritten:

  1. Wenn Sie Ihr Betriebssystem noch nicht registriert haben, melden Sie sich mit Ihrem Nutzernamen und Passwort bei RedHat an, um Updates herunterzuladen:

    sudo subscription-manager register
    
    sudo subscription-manager refresh
    
    sudo subscription-manager attach --auto
    
  2. Auf Aktualisierungen überprüfen:

    sudo dnf check-update
    

    Achten Sie darauf, dass die Ausgabe keine Fehler enthält und die letzte Prüfung auf Ablauf der Metadaten enthält. Beispiel:

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

firewalld konfigurieren oder deaktivieren

Firewalld kann für die Verwendung mit Google Distributed Cloud konfiguriert oder deaktiviert werden. Informationen zum Konfigurieren von firewalld finden Sie auf der Seite "Netzwerkanforderungen" unter firewalld-Ports konfigurieren.

Mit der folgenden Anleitung wird firewalld deaktiviert.

  1. firewalld deaktivieren:

    sudo systemctl stop firewalld
    
    sudo systemctl disable firewalld
    
  2. Prüfen Sie, ob der Status von firewalld deaktiviert ist:

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

Docker auf Ihrer Workstation konfigurieren

So installieren Sie Docker manuell:

  1. Entfernen Sie alle vorherigen Docker-Versionen:

    sudo dnf remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine
    
  2. Podman-manpages entfernen:

    sudo dnf remove podman-manpages
    
  3. Installieren Sie Docker 20.10.0 oder höher:

    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. Überprüfen Sie, ob Sie Version 20.10.0 oder höher verwenden:

    sudo docker version
    
  5. Vergleichen Sie Ihre Ausgabe mit dem folgenden Beispiel, um sicherzustellen, dass die Client- und Serverversion 20.10.0+ ist:

    Client: Docker Engine - Community
    Version:           25.0.3
    ...
    Server: Docker Engine - Community
    Engine:
    Version:          25.0.3
    
  6. Prüfen Sie, ob Docker ausgeführt wird:

    docker run hello-world
    

    Die Ausgabe sollte etwa so aussehen:

    Hello from Docker!
    

    This message shows that your installation appears to be working correctly.

Zeitsynchronisierung einrichten

Bei der Zeitsynchronisierung werden die Uhren auf Ihren Knotenmaschinen mithilfe einer festgelegten externen Zeitreferenz eingestellt. Die Zeitsynchronisierung ist für zeitkritische Clusteraktivitäten wie Ereignis-Logging und Messwerterfassung wichtig. Der Kernel Ihrer Knotenmaschine steuert die Uhr in Containern, die auf dem Knoten ausgeführt werden. Installieren Sie auf Ihren Computern einen NTP-Dienst (Network Time Protocol), um eine ordnungsgemäße Zeitsynchronisierung zu gewährleisten. Verwenden Sie dazu einen der verfügbaren Dienste: chrony, systemd-timesyncd, ntp oder ntpdate. Führen Sie timedatectl aus, um zu prüfen, ob die Systemuhr synchronisiert ist. Die Ausgabe von timedatectl sollte den folgenden Status enthalten:

System clock synchronized: yes

Achten Sie darauf, dass die inotify-Limits für Linux-Kernel den Mindestwert erreichen oder darüber liegen

Bei Maschinen, auf denen RHEL 9 ausgeführt wird, müssen die inotify-Limits des Linux-Kernels für die maximale Anzahl von Nutzerinstanzen und Nutzeruhren größer oder gleich der folgenden Anzahl sein:

  • fs.inotify.max_user_instances: 8192
  • fs.inotify.max_user_watches: 524288

Achten Sie darauf, dass diese Werte auf Ihren Knotenmaschinen korrekt festgelegt sind:

  1. Prüfen Sie den Wert von max_user_instances:

    cat /proc/sys/fs/inotify/max_user_instances
    
  2. Aktualisieren Sie max_user_instances bei Bedarf auf den Mindestwert:

    echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf
    
  3. Prüfen Sie den Wert von max_user_watches:

    cat /proc/sys/fs/inotify/max_user_watches
    
  4. Aktualisieren Sie max_user_watches bei Bedarf auf den Mindestwert:

    echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf
    
  5. Wenn Sie einen der Werte aktualisiert haben, starten Sie den Computer neu.

Best Practices

Zur Vereinfachung der Installation empfehlen wir die Konfiguration von RHEL mit einer minimalen Installation bei monitorloser Verwaltung. Aktivieren Sie außerdem Ihre Netzwerkverbindung und verwenden Sie entweder das Standard-DHCP oder geben Sie eine gültige, statische IP-Adresse und Netzwerkinformationen an. Achten Sie darauf, dass die Maschine eine Verbindung zu erforderlichen externen Ressourcen wie cloud.google.com herstellen kann.

Wenn Docker nicht ausgeführt werden kann, prüfen Sie mit dem folgenden Befehl, ob der Docker-Daemon ausgeführt wird:

sudo systemctl start docker