Configurer RHEL

Vous devez configurer le système d'exploitation de base de vos machines de nœud pour pouvoir utiliser Google Distributed Cloud. Cette page contient la procédure à suivre pour terminer la configuration requise. Pour en savoir plus sur le dépannage de Google Distributed Cloud, consultez les guides de dépannage.

Avant de commencer

Assurez-vous que vous utilisez une version de système d'exploitation compatible. Pour obtenir la liste des versions compatibles, consultez la section Sélectionner votre système d'exploitation.

Activer le compilateur opportun BPF

L'option de compilateur opportun BPF doit être activée pour le noyau de votre système d'exploitation (CONFIG_BPF_JIT=y).

  • Pour savoir si cette option est activée, exécutez la commande suivante :

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

Valider le gestionnaire de paquets

Assurez-vous de disposer de votre nom d'utilisateur et de votre mot de passe RedHat, et d'un accès racine aux machines que vous configurez. Validez le gestionnaire de packages en procédant comme suit :

  1. Si vous n'avez pas enregistré votre système d'exploitation, inscrivez-vous auprès de RedHat à l'aide de votre nom d'utilisateur et de votre mot de passe pour télécharger les mises à jour :

    sudo subscription-manager register
    
    sudo subscription-manager refresh
    
    sudo subscription-manager attach --auto
    
  2. Recherchez des mises à jour :

    sudo dnf check-update
    

    Assurez-vous que le résultat ne comporte aucune erreur et vérifiez la dernière vérification de l'expiration des métadonnées. Exemple :

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

Configurer ou désactiver firewalld

Il peut être configuré pour être utilisé avec Google Distributed Cloud ou désactivé. Pour plus d'informations sur la configuration de firewalld, consultez la section Configurer les ports de firewalld sur la page "Exigences réseau".

Les instructions suivantes désactivent firewalld.

  1. Désactivez firewalld :

    sudo systemctl stop firewalld
    
    sudo systemctl disable firewalld
    
  2. Vérifiez l'état de firewalld pour vous assurer qu'il est désactivé :

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

Configurer Docker sur votre poste de travail

Pour installer Docker manuellement, procédez comme suit :

  1. Supprimez toute version précédente de Docker :

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

    sudo dnf remove podman-manpages
    
  3. Installez Docker 20.10.0 ou une version ultérieure :

    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. Vérifiez que vous utilisez la version 20.10.0 ou une version ultérieure :

    sudo docker version
    
  5. Comparez votre résultat à l'exemple suivant pour vous assurer que les versions Client et Serveur sont en version 20.10.0 ou ultérieure :

    Client: Docker Engine - Community
    Version:           25.0.3
    ...
    Server: Docker Engine - Community
    Engine:
    Version:          25.0.3
    
  6. Vérifiez que Docker s'exécute :

    docker run hello-world
    

    Le résultat doit ressembler à ceci :

    Hello from Docker!
    

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

Configurer la synchronisation horaire

La synchronisation horaire consiste à définir les horloges de vos machines de nœud en utilisant une référence de temps externe désignée. La synchronisation horaire est importante pour les activités de cluster urgentes, telles que la journalisation d'événements et la collecte de métriques. Le noyau de votre machine de nœud contrôle l'horloge des conteneurs exécutés sur le nœud. Pour assurer une synchronisation horaire appropriée, installez un service de protocole réseau (NTP) sur vos machines en utilisant l'un des services disponibles : chrony, systemd-timesyncd, ntp ou ntpdate. Exécutez timedatectl pour vérifier que l'horloge système est bien synchronisée. La sortie de timedatectl doit contenir l'état suivant :

System clock synchronized: yes

S'assurer que les limites inotify du noyau Linux sont égales ou supérieures au minimum.

Pour les machines exécutant RHEL 9, les limites inotify du noyau Linux pour les instances utilisateur et les montres utilisateur doivent être supérieures ou égales aux valeurs suivantes :

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

Assurez-vous que ces valeurs sont correctement définies sur vos machines de nœuds :

  1. Vérifiez la valeur de max_user_instances :

    cat /proc/sys/fs/inotify/max_user_instances
    
  2. Si nécessaire, mettez à jour max_user_instances avec la valeur minimale :

    echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf
    
  3. Vérifiez la valeur de max_user_watches :

    cat /proc/sys/fs/inotify/max_user_watches
    
  4. Si nécessaire, mettez à jour max_user_watches avec la valeur minimale :

    echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf
    
  5. Si vous avez modifié l'une des valeurs, redémarrez la machine.

Bonnes pratiques

Pour simplifier l'installation, nous vous recommandons de configurer RHEL sur une installation minimale, sans interface graphique. Veillez également à activer votre connexion réseau et soit à utiliser le protocole DHCP par défaut, soit à fournir une adresse IP statique et des informations réseau valides. Assurez-vous que la machine peut se connecter aux ressources externes requises, telles que cloud.google.com.

Si Docker ne s'exécute pas, vérifiez que le daemon Docker s'exécute à l'aide de la commande suivante :

sudo systemctl start docker