Skip to main content

Install Kubespray

Nous allons installer un cluster master-master kubernetes avec kubespray. La configuration permettra également d'ajouter toutes les nodes voulues au cluster.

Dans notre exemple, notre réseau comportera:

  • 3 masters
  • 3 nodes

Chaque machine doit être initialisé avec la configuration disponible ici.

Installation de Kubespray

Ces étapes sont à faire sur la machine Master uniquement.

Récupération de l'outil

Téléchager la dernière version de Kubespray directement depuis le repo officiel.

git clone https://github.com/kubernetes-sigs/kubespray.git
sudo apt install -y python3-pip
cd kubespray
pip3 install -r requirements.txt

Environnement de travail

Copier l'intégralité des fichiers de configuration par défaut dans un nouveau dossier mycluster. Ce dossier comportera toutes les modifications spécifiques de notre cluster.

cp -rfp inventory/sample inventory/mycluster

Ne pas oublier d'ajouter le dossier /home/<user>/.local/bin dans le PATH pour pouvoir lancer la commande ansible-playbook.

Création du cluster

Ces étapes sont à faire sur la machine Master uniquement.

Configuration

Déclaration des IPs constituant le futur cluster.

declare -a IPS=(192.168.4.201 192.168.4.202 192.168.4.203 192.168.4.204 192.168.4.205 192.168.4.206)

Création du fichier hosts.ini

sudo nano inventory/mycluster/hosts.ini

Dans ce fichier, déclarer les machines constituant le cluster et attribuer leurs roles.

[all]
master1 ansible_host=192.168.4.201 etcd_member_name=etcd1
master2 ansible_host=192.168.4.202 etcd_member_name=etcd2
master3 ansible_host=192.168.4.203 etcd_member_name=etcd3

node1 ansible_host=192.168.4.204
node2 ansible_host=192.168.4.205
node3 ansible_host=192.168.4.206

[kube_control_plane]
master1
master2
master3

[etcd]
master1
master2
master3

[kube-node]
node1
node2
node3

[k8s-cluster:children]
kube_control_plane
kube-node

Création d'une public private key le master 1

ssh-keygen

Copier la clé ssh sur les autres serveurs (ne pas oublier de la faire avec l'ip du serbeur master lui même)

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Installation

Création du cluster

ansible-playbook -i inventory/mycluster/hosts.ini --become --become-user=root cluster.yml -v --private-key=~/.ssh/id_rsa --extra-vars="ansible_become_pass=<yourStr0ngP@assword>"

Si lors du processus une erreur apparait, il faut réinitialiser le cluster avant de le reconfigurer

ansible-playbook -i inventory/mycluster/hosts.ini --become --become-user=root reset.yml -v --private-key=~/.ssh/id_rsa --extra-vars="ansible_become_pass=<yourStr0ngP@assword>"

Féliciations 🎉 !! Votre cluster avec Kubespray est terminé.