Skip to content

Installation avec kubespray

Pré-requis

Documentation: kubespray

Cloner le repo kubespray

Terminal window
git clone https://github.com/kubernetes-sigs/kubespray
cd kukespray

Installer les pré-requis

Terminal window
pip3 install -r requirements.txt

Copier l’inventaire

Terminal window
cp -rfp inventory/sample inventory/mycluster

Initialiser les IPs de vos hosts dans l’inventaire

Terminal window
declare -a IPS=(192.168.98.91 192.168.98.92 192.168.98.93)
CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}

Vérifier l’inventaire

Terminal window
cat inventory/mycluster/hosts.yaml

Ajouter les clés ssh sur les cibles

Terminal window
for host in 192.168.98.91 192.168.98.92 192.168.98.93
do
ssh-copy-id centos@$host
done

Ouvrir le port 6443 pour l’accès à l’API Server

Terminal window
for host in 192.168.98.91 192.168.98.92 192.168.98.93
do
ssh $host firewall-cmd --permanent --add-port=6443/tcp
ssh $host firewall-cmd --reload
done

Vérifier la connexion ansible

Terminal window
ansible all -m ping -i inventory/mycluster/hosts.yaml -u centos

Créer le cluster

Terminal window
ansible-playbook -i inventory/mycluster/hosts.yaml -u sadmin --become --become-user=root cluster.yml

Copier le fichier de config sur le poste client

Terminal window
mkdir .kube
scp root@/etc/kubernetes/admin.conf .kube/config

Mettre à jour l’IP du Master

Terminal window
vi .kube/config
server: https://192.168.98.91:6443

Vérifier la config

Terminal window
kubectl get nodes

Containerd config pour utiliser un miroir

Terminal window
[plugins."io.containerd.grpc.v1.cri".registry]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://registry-1.docker.io"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."192.168.98.1:5000"]
endpoint = ["http://192.168.98.1:5000"]
[plugins."io.containerd.grpc.v1.cri".registry.configs]
[plugins."io.containerd.grpc.v1.cri".registry.configs."192.168.98.1:5000".tls]
insecure_skip_verify = true