RHEL konfigurieren

Sie müssen das Basisbetriebssystem Ihrer Knotenmaschinen konfigurieren, um GKE on Bare Metal zu verwenden. Diese Seite enthält die Schritte, die Sie ausführen müssen, um die erforderliche Konfiguration abzuschließen. Weitere Informationen zur Fehlerbehebung bei GKE on Bare Metal finden Sie in den Anleitungen 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 Compiler-Option „BPF Just-In Time“ (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
    

    Die Ausgabe darf keine Fehler enthalten und die letzte Ablaufprüfung für Metadaten enthalten. Beispiel:

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

firewalld konfigurieren oder deaktivieren

Firewalld kann für die Verwendung mit GKE on Bare Metal 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. Prüfen Sie, ob Sie jetzt Version 20.10.0 oder höher ausführen:

    sudo docker version
    
  5. Vergleichen Sie Ihre Ausgabe mit dem folgenden Beispiel, um sicherzustellen, dass die Client- und Serverversion 20.10.0 oder höher sind:

    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. Für eine ordnungsgemäße Zeitsynchronisierung installieren Sie auf Ihren Computern einen NTP-Dienst (Network Time Protocol) mit einem 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-Grenzwerte für den Linux-Kernel mindestens dem Minimum entsprechen

Bei Maschinen mit RHEL 9 müssen die inotify-Limits des Linux-Kernels für die maximale Anzahl von Nutzerinstanzen und Nutzer-Uhren größer oder gleich diesem Wert 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 bei Bedarf max_user_instances 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 bei Bedarf max_user_watches 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