Installation de quelques dépendances :
apt install curl open-iscsi nfs-common
configuration du réseau
iface ens18 inet static
address 192.168.1.133
gateway 192.168.1.1
Rajout de l'utilisateur à sudo :
sudo usermod -aG sudo [name-of-user]
Installation des packages prérequis pour k3s et des dossiers
Création du dossier avec les configs :
mkdir -p /etc/rancher/k3s
Création du fichier de configuration pour un serveur k3s :
nano /etc/rancher/k3s/config.yaml, dans ce fichier, nous écrirons :
# k3s agent config file to store in /etc/rancher/k3s/config.yaml
server: "https://192.168.1.110:6443" # ip du loadbalancer nginx
token: "K1032a827d886e59693bxxxxxxxxxxxxxxxxxxxxx0e51d8b1e1833cb92::server:e6407563a402axxxxxxxxxxxdc33ce2b0b"
tls-san:
- "192.168.1.110"
- "192.168.1.121"
- "192.168.1.141"
- "192.168.1.146"
- "192.168.1.147"
# https-listen-port: 6443
kubelet-arg: "config=/etc/rancher/k3s/kubelet.config"
node-taint:
- "k3s-controlplane=true:NoExecute"
disable:
- traefik
- servicelb
- local-storage
# protect-kernel-defaults: true
# secrets-encryption: true
Quelques informations supplémentaires :
server: l'adresse IP du loadbalancer nginxtoken: le token du premier serveur k3stls-san: les adresses IP des serveurs k3s (sans ça lorsque les autres serveurs vont essayer de rejoindrel le cluster, une erreur de certificat apparait)kubelet-arg: permet de spécifier un fichier de configuration pour le kubelet (pour ajouter des arguments)node-taint: permet de tainter le serveur (pour qu'aucun pods ne s'éxécute sur ce serveur par exemple)disable: permet de désactiver certains composants (ex: traefik, servicelb, local-storage)
Pour ma part, je préfère avoir le contrôle sur traefik et sur le service de loadbalancer interne à kubernetes (j'utiliserai plus tard metalLB).
Le token se trouve sur le premier serveur :
cat /var/lib/rancher/k3s/server/node-token
Rajout de paramètres optionnels dans le fichier de configuration de kubelet :
nano /etc/rancher/k3s/kubelet.config
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
shutdownGracePeriod: 30s
shutdownGracePeriodCriticalPods: 10s
Pour lancer l'installation du serveur (et joindre le cluster):
curl -sfL https://get.k3s.io | sh -s - --config /etc/rancher/k3s/config.yaml
Pour installer une version spécifique, par exemple :
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.29.3+k3s1 sh -s - --config /etc/rancher/k3s/config.yaml
Si on fait des modification sur le fichier de configuration, il faut redémarrer le service k3s :
systemctl restart k3s