Découverte K3S

Suivi d’installation d’un cluster mini-kubernetes. Par curiosité je souhaite simuler des systèmes complexe. J’aimerais découvrir de nouveaux concepts et apprendre des choses par cet apprentissage. Ce que je partage ici n’est que des expérimentations, elles ne sont peut être pas poussées jusqu’au bout niviable en prod. Simplement des sujets que je souhaite débunker.

Outils utilisés

Création des machines

Pour commencer nous allons créer 3 machines : 1 principales et 2 replications a l’aide de la CLI multipass

multipass launch -n basemaster --cpus 2 --mem 2G
multipass launch -n raiderone --cpus 2 --mem 2G
multipass launch -n raidertwo --cpus 2 --mem 2G

Creation de l’instance principale

multipass --verbose exec basemaster -- sh -c "
  curl -sfL https://get.k3s.io | sh -
"

Creation des noeud 2 et 3

Comme dit dans la documentation.

K3S_URL Configure k3s en worker mode l’agent s’abonnera au master définit dans K3S_URL=‘https://$IP:6443’ (IP de basemaster).

K3S_TOKEN est le tocken d’auth stocké dans /var/lib/rancher/k3s/server/node-token du k3s principal (basemaster dans notre exemple).

Pour faire ca il est possible d’utiliser les variables d’environnements

export TOKEN=$(multipass exec basemaster sudo cat /var/lib/rancher/k3s/server/node-token)
export IP=$(multipass info basemaster | grep IPv4 | awk '{print $2}')

Création noeud 2

multipass --verbose exec raiderone -- sh -c " curl -sfL https://get.k3s.io | K3S_URL='https://$IP:6443' K3S_TOKEN='$TOKEN' sh - "

Création noeud 3

multipass --verbose exec raidertwo -- sh -c " curl -sfL https://get.k3s.io | K3S_URL='https://$IP:6443' K3S_TOKEN='$TOKEN' sh - "

Environnement k3s

Pour que kublectl(CLI kubernetes) puisse communiquer avec le k3s-master il est necessaire d’y passer le fichier décrivant l’environnement. Avec l’ip du cluster et le token 🙂

Pour cela il est necessaire de copier localement la configuration du master et de remplacer l’IP locale par son IP réseau :

multipass exec basemaster sudo cat /etc/rancher/k3s/k3s.yaml > k3s.yaml
sed -i '' "s/127.0.0.1/$IP/" k3s.yaml

Note : sed -i ’’ “s/schema/remplaceent”

On renseignera la configuration a utiliser via : export KUBECONFIG=./k3s.yaml

Description de l’environnement

export KUBECONFIG=./k3s.yaml
kubectl top nodes

NAME         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
basemaster   198m         9%     747Mi           37%
raidone      17m          0%     263Mi           13%
raidtwo      16m          0%     258Mi           12%

Enjoy !

Votre cluster mini cluster Kubernetes est maintenant up ! 🙌 Vous pouvez maintenant déployer vos pods 👷‍♂️

Ressources