Mini cluster Kubernetes avec rancher (k3s)

Temps de lecture environ 2 min

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://:6443$IP' (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 #

Mots clés : devops kubernetes
Auteur : Allemand Sébastien