Configura RHEL

Devi configurare il sistema operativo di base delle macchine dei nodi per utilizzare Google Distributed Cloud. Questa pagina contiene i passaggi da seguire per completare la configurazione necessaria. Per saperne di più sulla risoluzione dei problemi di Google Distributed Cloud, consulta le guide alla risoluzione dei problemi.

Prima di iniziare

Assicurati di utilizzare una versione supportata del sistema operativo. Per un elenco delle versioni supportate, consulta Seleziona il sistema operativo.

Abilita cgroupsv2

La versione 1.35 e successive di Google Distributed Cloud (solo software) per bare metal richiede cgroupsv2. Il sistema operativo deve supportare cgroupsv2 per creare o eseguire l'upgrade dei cluster.

Google Distributed Cloud impedisce la creazione o l'upgrade dei cluster se viene rilevato cgroupsv1 durante i controlli preflight. Per istruzioni su come eseguire la migrazione del tuo sistema operativo a cgroupsv2, consulta Eseguire la migrazione a cgroup v2 nella documentazione di Kubernetes.

Per istruzioni su come abilitare cgroupsv2 su RHEL, consulta Abilitare cgroup v2 nella knowledge base di Red Hat.

Abilita il compilatore BPF Just In Time

Il kernel del sistema operativo deve avere l'opzione del compilatore BPF Just In Time abilitata (CONFIG_BPF_JIT=y).

  • Per scoprire se questa opzione è abilitata, esegui il seguente comando:

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

Convalida il gestore di pacchetti

Assicurati di avere il nome utente e la password di RedHat e di disporre dell'accesso root alle macchine che stai configurando. Convalida il gestore di pacchetti seguendo questi passaggi:

  1. Se non hai registrato il sistema operativo, registrati con RedHat utilizzando il nome utente e la password di RedHat per scaricare gli aggiornamenti:

    sudo subscription-manager register
    
    sudo subscription-manager refresh
    
    sudo subscription-manager attach --auto
    
  2. Controlla la presenza di aggiornamenti:

    sudo dnf check-update
    

    Assicurati che l'output non contenga errori e includa l'ultimo controllo della scadenza dei metadati. Ad esempio:

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

Configura o disattiva firewalld

Firewalld può essere configurato per l'utilizzo con Google Distributed Cloud o disattivato. Per informazioni sulla configurazione di firewalld, consulta Configurare le porte di firewalld nella pagina Requisiti di rete.

Le seguenti istruzioni disattivano firewalld.

  1. Disattiva firewalld:

    sudo systemctl stop firewalld
    
    sudo systemctl disable firewalld
    
  2. Controlla lo stato di firewalld per assicurarti che sia disattivato:

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

Configura Docker sulla workstation

Segui questi passaggi per installare manualmente Docker:

  1. Rimuovi eventuali versioni precedenti di Docker:

    sudo dnf remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine
    
  2. Rimuovi podman-manpages:

    sudo dnf remove podman-manpages
    
  3. Installa Docker 20.10.0 o versioni successive:

    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. Verifica di aver installato la versione 20.10.0 o successive:

    sudo docker version
    
  5. Confronta l'output con l'esempio seguente per assicurarti che le versioni del client e del server siano 20.10.0 o successive:

    Client: Docker Engine - Community
    Version:           25.0.3
    ...
    Server: Docker Engine - Community
    Engine:
    Version:          25.0.3
    
  6. Verifica che Docker sia in esecuzione:

    docker run hello-world
    

    Dovresti visualizzare un messaggio simile al seguente:

    Hello from Docker!
    

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

Configura la sincronizzazione dell'ora

La sincronizzazione dell'ora consiste nell'impostare gli orologi sulle macchine dei nodi utilizzando un riferimento temporale esterno designato. La sincronizzazione dell'ora è importante per le attività del cluster sensibili al tempo, come la registrazione degli eventi e la raccolta delle metriche. Il kernel della macchina dei nodi controlla l'orologio nei container in esecuzione sul nodo. Per garantire una corretta sincronizzazione dell'ora, installa un servizio Network Time Protocol (NTP) sulle macchine utilizzando uno dei servizi disponibili: chrony, systemd-timesyncd, ntp, o ntpdate. Esegui timedatectl per verificare che l'orologio di sistema sia sincronizzato. L'output di timedatectl deve contenere il seguente stato:

System clock synchronized: yes

Assicurati che i limiti inotify del kernel Linux siano uguali o superiori al minimo

Per le macchine che eseguono RHEL 9 e 8.10, i limiti inotify del kernel Linux per le istanze utente massime e le osservazioni utente devono essere maggiori o uguali a quanto segue:

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

Assicurati che questi valori siano impostati correttamente sulle macchine dei nodi:

  1. Controlla il valore di max_user_instances:

    cat /proc/sys/fs/inotify/max_user_instances
    
  2. Se necessario, aggiorna max_user_instances al valore minimo:

    echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf
    
  3. Controlla il valore di max_user_watches:

    cat /proc/sys/fs/inotify/max_user_watches
    
  4. Se necessario, aggiorna max_user_watches al valore minimo:

    echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf
    
  5. Se hai aggiornato uno dei due valori, riavvia la macchina.

Best practice

Per semplificare l'installazione, ti consigliamo di configurare RHEL utilizzando un'installazione minima con gestione headless. Inoltre, assicurati di abilitare la tua connessione di rete e di utilizzare il DHCP predefinito o di fornire un indirizzo IP statico e informazioni di rete validi. Assicurati che la macchina possa connettersi a le risorse esterne richieste, ad esempio cloud.google.com.

Se Docker non viene eseguito, controlla che il daemon Docker sia in esecuzione con il seguente comando:

sudo systemctl start docker