Vous devez configurer le système d'exploitation de base de vos machines de nœuds pour utiliser GKE sur une solution Bare Metal. Cette page contient la procédure à suivre pour terminer la configuration requise. Pour en savoir plus sur le dépannage de GKE sur une solution Bare Metal, 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 BPF Just In Time
L'option du compilateur BPF Just In Time doit être activée sur 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 packages
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 :
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
Recherchez des mises à jour :
sudo dnf check-update
Assurez-vous que le résultat ne comporte aucune erreur et inclut 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
Firewalld peut être configuré ou désactivé pour une utilisation avec GKE sur Bare Metal. 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.
Désactivez firewalld :
sudo systemctl stop firewalld sudo systemctl disable firewalld
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 station de travail
Pour installer Docker manuellement, procédez comme suit :
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
Supprimez podman-manpages :
sudo dnf remove podman-manpages
Installez Docker 20.10.0+:
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
Vérifiez que vous utilisez la version 20.10.0 ou une version ultérieure:
sudo docker version
Comparez le résultat à l'exemple suivant pour vous assurer que les versions du client et du serveur sont la version 20.10.0 ou ultérieure:
Client: Docker Engine - Community Version: 25.0.3 ... Server: Docker Engine - Community Engine: Version: 25.0.3
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
Assurez-vous que les limites de inotify
du noyau Linux sont supérieures ou égales à la valeur minimale
Pour les machines exécutant RHEL 9, les limites du nombre maximal d'instances et d'instances utilisateur du noyau Linux (inotify
) doivent être supérieures ou égales à ce qui suit:
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:
Vérifiez la valeur de
max_user_instances
:cat /proc/sys/fs/inotify/max_user_instances
Si nécessaire, remplacez
max_user_instances
par la valeur minimale:echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf
Vérifiez la valeur de
max_user_watches
:cat /proc/sys/fs/inotify/max_user_watches
Si nécessaire, remplacez
max_user_watches
par la valeur minimale:echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf
Si vous avez modifié l'une ou l'autre de ces 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