Skip to main content
  1. Docs/
  2. K3s Kubernetes/

Noeuds

·6 mins· loading · loading · ·
K3s Kubernetes
Blowfish
Author
Blowfish
A powerful, lightweight theme for Hugo.
Table of Contents

J’ai décidé d’utiliser DietPi, car celui-ci démarrera à partir de l’USB dès sa sortie de la boîte, il est 64 bits et peut être démarré à partir d’un seul fichier. Il est également livré avec une option de journalisation intégrée et sans problème dans la RAM pour enregistrer notre clé USB/carte SD.

Outils / Téléchargements
#

  • Etcher (très facile de « graver » l’ISO sur une clé USB ou une carte SD) – https://www.balena.io/etcher/ (Vous n’en avez pas vraiment besoin puisque Raspberry Pi Imager peut désormais flasher l’image également, mais il peut flasher plusieurs clés USB en même temps.)
  • DietPihttps://dietpi.com/ vous avez besoin de la version 64 bits de DietPi.
  • Raspberry Pi Imagerhttps://www.raspberrypi.org/downloads/ (Pour faire démarrer Rpi4 à partir de l’USB, une mise à jour du firmware est nécessaire)
  • Client SSH de votre choix, généralement Putty. – https://www.putty.org/

Matériel à avoir
#

  • Un PC pour configurer l’USB et la carte SD (Windows idéalement, mais cela peut aussi être fait avec Linux ou Mac. Nous nous concentrerons sur Windows).
  • Lecteur de carte SD
  • Clavier USB / Câble micro HDMI / Moniteur
  • Rpi4 bien sûr (mais n’en faites pas trop avec autant 😀)
  • Câble USB-C et moyen d’alimenter le Rpi4 ou tout autre moyen de l’alimenter. Voir mon châssis pour plus de détails. Châssis de cluster.

Mise à jour du firmware du Raspberry Pi 4
#

Il est fort probable que vous deviez mettre à jour le firmware du Raspberry Pi 4 pour activer le démarrage USB. Ce firmware n’est plus en version bêta et est marqué comme stable, donc tout devrait bien se passer. Malheureusement, vous devez effectuer une étape supplémentaire : récupérez l’imageur Raspberry Pi et faites-lui écrire la récupération de démarrage EEPROM du Raspberry Pi 4 sur la carte SD. Il s’agit d’une petite image et d’un moyen rapide de mettre à jour le firmware et d’activer le démarrage à partir de l’USB.

{width=“245” height=“120”}
{width=“245” height=“123”}
{width=“245” height=“120”}
{width=“370” height=“200”}
{width=“370” height=“200”}

Une fois terminé, insérez la carte SD dans le Rpi4 et allumez l’appareil. Vous n’avez pas besoin de connecter quoi que ce soit d’autre. Attendez simplement une minute ou deux jusqu’à ce que le voyant vert à côté de l’alimentation commence à clignoter périodiquement. Cela signifie que c’est fait. Le nouveau firmware doit être flashé. Nous pouvons utiliser la même carte SD pour mettre à jour chaque nœud.

!!! info “Vous devez le faire sur chaque nœud Raspberry Pi dont vous disposez.”

Flasher DietPi sur USB
#

En fonction du nombre de Raspberry Pi, cela prendra un certain temps, alors continuez comme ça. Il n’y a pas d’urgence, et entre les flashages, vous pouvez préparer la clé USB DietPi. Il va sans dire que vous devez flasher autant de clés USB que vous avez de nœuds. Dans mon cas, il s’agit de 8 clés USB de 32 Go. Pour cette tâche, utilisez Etcher, ou vous pouvez utiliser Raspberry Pi Imager, qui peut également flasher l’image sur USB.

Flashage avec Raspberry Pi Imager
#

{width=“245” height=“120”}
{width=“245” height=“123”}
{width=“245” height=“120”}

!!! warning “Vous devez le faire sur chaque nœud Raspberry Pi dont vous disposez.”

Headless boot
#

Il y a beaucoup de choses que nous pouvons faire avec DietPi automatiquement au premier démarrage sans même avoir besoin de connecter un clavier et un moniteur.

Lorsque vous insérez un disque USB avec DietPi flashé à partir des étapes ci-dessus, vous obtiendrez une partition dans laquelle vous pourrez voir les fichiers (sous Windows).

{ style=“display: block; margin: 0 auto” }

dietpi.txt
#

Un moyen très simple de démarrer DietPi est d’utiliser le fichier dietpi.txt .

!!! tip “Ce fichier est lu et exécuté uniquement au premier démarrage.”

Voici le contenu que j’ai utilisé :

#------------------------------------------------------------------------------------------------------
##### DietPi-Automation settings, applied on first boot of DietPi only, ONCE! #####
#------------------------------------------------------------------------------------------------------

AUTO_SETUP_LOCALE=C.UTF-8

AUTO_SETUP_KEYBOARD_LAYOUT=fr
AUTO_SETUP_TIMEZONE=Europe/Paris
AUTO_SETUP_NET_ETHERNET_ENABLED=1
AUTO_SETUP_NET_WIFI_ENABLED=1
AUTO_SETUP_NET_WIFI_COUNTRY_CODE=FR

AUTO_SETUP_NET_USESTATIC=1
AUTO_SETUP_NET_STATIC_IP=192.168.1.21
AUTO_SETUP_NET_STATIC_MASK=255.255.255.0
AUTO_SETUP_NET_STATIC_GATEWAY=192.168.1.254
AUTO_SETUP_NET_STATIC_DNS=1.1.1.1 8.8.8.8
AUTO_SETUP_DHCP_TO_STATIC=0

# Hostname
AUTO_SETUP_NET_HOSTNAME=control00


AUTO_SETUP_NET_ETH_FORCE_SPEED=0
AUTO_SETUP_BOOT_WAIT_FOR_NETWORK=1
AUTO_SETUP_SWAPFILE_SIZE=1
AUTO_SETUP_SWAPFILE_LOCATION=/var/swap
AUTO_SETUP_HEADLESS=1
AUTO_UNMASK_LOGIND=0

AUTO_SETUP_CUSTOM_SCRIPT_EXEC=0
AUTO_SETUP_BACKUP_RESTORE=0
AUTO_SETUP_SSH_SERVER_INDEX=-2
AUTO_SETUP_LOGGING_INDEX=-1
AUTO_SETUP_RAMLOG_MAXSIZE=200

AUTO_SETUP_WEB_SERVER_INDEX=0
AUTO_SETUP_DESKTOP_INDEX=0
AUTO_SETUP_BROWSER_INDEX=0
AUTO_SETUP_AUTOSTART_TARGET_INDEX=7
AUTO_SETUP_AUTOSTART_LOGIN_USER=root
AUTO_SETUP_GLOBAL_PASSWORD=dietpi
AUTO_SETUP_AUTOMATED=1
SURVEY_OPTED_IN=-0

#OpenSSH Client
AUTO_SETUP_INSTALL_SOFTWARE_ID=0
#Samba Client
AUTO_SETUP_INSTALL_SOFTWARE_ID=1
#vim
AUTO_SETUP_INSTALL_SOFTWARE_ID=20
#RPi.GPIO
AUTO_SETUP_INSTALL_SOFTWARE_ID=69
#OpenSSH Server
AUTO_SETUP_INSTALL_SOFTWARE_ID=105
#Python 3 pip
AUTO_SETUP_INSTALL_SOFTWARE_ID=130


CONFIG_CPU_GOVERNOR=schedutil
CONFIG_CPU_ONDEMAND_SAMPLE_RATE=25000
CONFIG_CPU_ONDEMAND_SAMPLE_DOWNFACTOR=40
CONFIG_CPU_USAGE_THROTTLE_UP=50
CONFIG_CPU_MAX_FREQ=Disabled
CONFIG_CPU_MIN_FREQ=Disabled
CONFIG_CPU_DISABLE_TURBO=0
CONFIG_GPU_DRIVER=none
CONFIG_PROXY_ADDRESS=MyProxyServer.com
CONFIG_PROXY_PORT=8080
CONFIG_PROXY_USERNAME=
CONFIG_PROXY_PASSWORD=
CONFIG_G_CHECK_URL_TIMEOUT=10
CONFIG_G_CHECK_URL_ATTEMPTS=2
CONFIG_CHECK_CONNECTION_IP=9.9.9.9
CONFIG_CHECK_CONNECTION_IPV6=2620:fe::fe
CONFIG_CHECK_DNS_DOMAIN=dns9.quad9.net
CONFIG_CHECK_DIETPI_UPDATES=1
CONFIG_CHECK_APT_UPDATES=1
CONFIG_NTP_MODE=2
CONFIG_SERIAL_CONSOLE_ENABLE=1
CONFIG_SOUNDCARD=none

CONFIG_LCDPANEL=none
CONFIG_ENABLE_IPV6=0

CONFIG_APT_RASPBIAN_MIRROR=http://raspbian.raspberrypi.org/raspbian/
CONFIG_APT_DEBIAN_MIRROR=https://deb.debian.org/debian/
CONFIG_NTP_MIRROR=debian.pool.ntp.org

#------------------------------------------------------------------------------------------------------
##### DietPi-Software settings #####
#------------------------------------------------------------------------------------------------------
SOFTWARE_DISABLE_SSH_PASSWORD_LOGINS=0

#------------------------------------------------------------------------------------------------------
##### Dev settings #####
#------------------------------------------------------------------------------------------------------
DEV_GITBRANCH=master
DEV_GITOWNER=MichaIng

#------------------------------------------------------------------------------------------------------
##### Settings, automatically added by dietpi-update #####
#------------------------------------------------------------------------------------------------------

Les parties que vous devriez regarder :

AUTO_SETUP_TIMEZONE=Europe/Paris - Fuseau horaire, modifiez-le selon vos préférences. La liste complète des fuseaux horaires est disponible ici.

AUTO_SETUP_NET_STATIC_IP=192.168.1.21 - IP statique, à modifier selon vos préférences. Modifiez-la pour chaque nœud.

AUTO_SETUP_NET_STATIC_MASK=255.255.255.0 - Masque IP statique

AUTO_SETUP_NET_STATIC_GATEWAY=192.168.1.254 - Passerelle IP statique (l’adresse de ma freebox)

AUTO_SETUP_NET_STATIC_DNS=1.1.1.1 8.8.8.8 - DNS IP statique

AUTO_SETUP_NET_HOSTNAME=control00 - Nom d’hôte, modifiez-le selon vos préférences. Modifiez-le pour chaque nœud. K3s nécessite un nom d’hôte unique pour chaque nœud.

AUTO_SETUP_GLOBAL_PASSWORD=dietpi - Mot de passe, modifiez-le selon vos préférences. Je l’ai gardé identique pour chaque nœud. Il s’agit du mot de passe root et également du mot de passe de l’utilisateur dietpi.

L’explication des paramètres peut être trouvée ici

Dans l’ensemble, cela attribuera une adresse IP, un nom d’hôte, un fuseau horaire, une disposition du clavier, etc. à votre Raspberry Pi. Il installera le serveur SSH, vim, RPi.GPIO, le client OpenSSH, le serveur OpenSSH, Python 3 pip, le client Samba, etc. Il installera également la dernière version stable de DietPi. C’est beaucoup de travail accompli pour nous.

cmdline.txt
#

Modifiez cette ligne.

root=PARTUUID=92b3e04f-02 rootfstype=ext4 rootwait fsck.repair=yes net.ifnames=0 logo.nologo console=serial0,115200 console=tty1

!!! warning “Ne remplacez pas la ligne entière, ajoutez simplement : group_enable=cpuset cgroup_enable=memory cgroup_memory=1 à la fin.”

Cela devrait ressembler à ceci :

root=PARTUUID=92b3e04f-02 rootfstype=ext4 rootwait fsck.repair=yes net.ifnames=0 logo.nologo console=serial0,115200 console=tty1 group_enable=cpuset cgroup_enable=memory cgroup_memory=1

Nous avons ajouté quelques paramètres comme :

  • groupe_enable=cpuset
  • cgroup_enable=mémoire
  • cgroup_memory=1

Ceux-ci sont nécessaires au bon fonctionnement de Docker et les ajouter maintenant nous évitera un redémarrage ultérieur.

dietpi-wifi.txt (optionnel)
#

Si vous choisissez de connecter vos raspberry au réseau WIFI, il faudra modifier le fichier dietpi-wifi.txt

les entrées qu’il faudra modifier :

aWIFI_SSID[0]='Votre_SSID' #le SSID complet de votre box
aWIFI_KEY[0]='Votre_super_clé' #la clé WIFI
aWIFI_KEYMGR[0]='WPA-PSK' #le protocol 

Démarrage
#

Branchez le disque USB sur le Raspberry Pi 4 et branchez l’alimentation. Attendez quelques minutes, surveillez l’apparition d’une nouvelle adresse IP sur le routeur 🙂. Laissez-lui suffisamment de temps, il fait beaucoup de choses. Si vous pouvez connecter votre moniteur et votre clavier, vous pouvez voir la progression de l’installation.

J’espère que vous avez pu vous connecter en SSH à la nouvelle IP et vous connecter avec le nom d’utilisateur : root / mot de passe : dietpi.

Related

Design goal
·2 mins· loading · loading
K3s Kubernetes
Résumé de l’article Design goal
Matériel
·2 mins· loading · loading
K3s Kubernetes
Résumé de l’article Matériel
Argocd
·8 mins· loading · loading
Devops K3s Kubernetes ArgoCD
Premiers pas avec ArgoCD et déploiement d’une App
Conf noeuds
·4 mins· loading · loading
K3s Kubernetes
Résumé de l’article Conf noeuds
Docker registry setup
·11 mins· loading · loading
K3s Kubernetes
Résumé de l’article Docker registry setup
Docker setup
·2 mins· loading · loading
K3s Kubernetes
Résumé de l’article Docker setup
Helm arkade
·2 mins· loading · loading
K3s Kubernetes
Résumé de l’article Helm arkade
Kube install
·4 mins· loading · loading
K3s Kubernetes
Résumé de l’article Kube install
Network settings
·4 mins· loading · loading
K3s Kubernetes
Résumé de l’article Network settings