Configura Ubuntu

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 relativi ai requisiti di Google Distributed Cloud, consulta i problemi noti.

Prima di iniziare

Assicurati di utilizzare una versione supportata del sistema operativo e un kernel Ubuntu Hardware Enablement (HWE). 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. Per eseguire l'upgrade o creare cluster, il sistema operativo deve supportare cgroupsv2.

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 sistema operativo a cgroupsv2, consulta Eseguire la migrazione a cgroup v2 nella documentazione di Kubernetes.

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 comando seguente:

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

Convalida il gestore di pacchetti

  • Utilizza il seguente comando per verificare che il gestore di pacchetti funzioni correttamente:

    sudo apt-get check
    

    L'output non deve mostrare errori e deve essere simile al seguente esempio:

    # Reading package lists... Done
    # Building dependency tree
    # Reading state information... Done
    

Disabilita Uncomplicated Firewall (UFW)

  1. Disabilita ufw:

    sudo ufw disable
    
  2. Verifica che ufw sia disabilitato:

    sudo ufw status
    # Status: inactive
    

Configura Docker sulla workstation

Google Distributed Cloud ti aiuta a installare Docker sulle macchine bare metal nei seguenti scenari:

  • Se sulle macchine bare metal non è installato Docker, bmctl installa la versione 20.10.0 o successive.
  • Se sulle macchine bare metal è installato Docker 19.03.5 o versioni precedenti, bmctl esegue l'upgrade di Docker alla versione 20.10.0 o successive.

Segui questi passaggi per installare Docker manualmente:

  1. Rimuovi eventuali versioni precedenti di Docker:

    sudo apt-get remove docker docker-engine docker.io containerd runc
    
  2. Aggiorna il gestore di pacchetti:

    sudo apt-get update
    
  3. Installa Docker 20.10.0+:

    sudo apt-get install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg-agent \
      software-properties-common \
      docker.io
    
  4. Verifica di utilizzare la versione 20.10.0+:

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

     Client: Docker Engine - Community
     Version:           25.0.3
     ...
     Server: Docker Engine - Community
      Engine:
      Version:          25.0.3
    

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 del nodo 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 Ubuntu 22.04, i limiti inotify del kernel Linux per le istanze utente massime e le osservazioni utente devono essere maggiori o uguali a:

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

Per assicurarti 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.