Skip to main content

Préparation et Installation

Préparation : 

pour plus de simplicité je vais egalement ajouter les hotes dans le fichier hosts afin de faire de la résolution par nom et eviter les problème en cas de soucis de DNS : 

fichier /etc/hosts (pensez a l'adapter en fonction de chaque hote) :

#Declaration of Kubernetes nodes


127.0.0.1           k8s-m1
192.168.20.241      k8s-m2
192.168.20.242      k8s-m3

Désactivation du SWAP :

Pour ce faire il faut executer nano /etc/fstab

Ensuite il faut trouver la ligne ou le "SWAP" est mentionné et la commenté en mettant un # devant cette ligne. Suite a ça enregistré et redémarrer la machine.

configuration de quelques fichier de containerd

Premier fichier :

cat <<EOF | tee /etc/modules-load.d/containerd.conf overlay br_netfilter EOF

Deuxième fichier :

modprobe overlay && modprobe br_netfilter

cat <<EOF | tee /etc/sysctl.d/99-kubernetes-k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF

Installation de Kubernetes

Mise a jour des paquets : 

apt update && apt dist-upgrade -y

Installation des dépendances : 

apt-get install curl pgp -y

#Penser bien a changer le numéro de version avec la version actuelle que vous pouvez retrouver sur ce site : https://kubernetes.io/fr/releases/

echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /" | tee /etc/apt/sources.list.d/kubernetes.list

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

Installation du répartiteur de charge (Keepalived)

Pour l'installation executer : apt install keepalived -y Cette installation doit être faite sur chaque master nodes. Une fois l'installation faite il faut maintenant mettre en place les configuration de keepalived sur chaque noeuds. Pour ma part voici les fichier pour chaque noeuds :

Master n°1 :
global_defs {
  vrrp_version 3
  enable_script_security
}

vrrp_script chk_service {
  script "/bin/sh -c 'nc -z 127.0.0.1 6443'"
  interval 2
  timeout 1
  fall 2
  rise 2
  weight -20
}

vrrp_instance VI_1 {
  state BACKUP
  interface ens18
  virtual_router_id 51
  priority 120
  advert_int 1
  nopreempt
  preempt_delay 10

  unicast_src_ip k8s-m1
  unicast_peer {
    k8s-m2
    k8s-m3
  }

  authentication {
    auth_type PASS
    auth_pass S3cur3-P@ss
  }

  virtual_ipaddress {
    192.168.20.100/24 dev ens18 label ens18:vip
  }

  track_interface {
    ens18
  }

  track_script {
    chk_service
  }
}
Master n°2 :
global_defs {
  vrrp_version 3
  enable_script_security
}

vrrp_script chk_service {
  script "/bin/sh -c 'nc -z 127.0.0.1 6443'"
  interval 2
  timeout 1
  fall 2
  rise 2
  weight -20
}

vrrp_instance VI_1 {
  state BACKUP
  interface ens18
  virtual_router_id 51
  priority 110
  advert_int 1
  nopreempt
  preempt_delay 10

  unicast_src_ip k8s-m2
  unicast_peer {
    k8s-m1
    k8s-m3
  }

  authentication {
    auth_type PASS
    auth_pass S3cur3-P@ss
  }

  virtual_ipaddress {
    192.168.20.100/24 dev ens18 label ens18:vip
  }

  track_interface {
    ens18
  }

  track_script {
    chk_service
  }
}
Master n°3 :
global_defs {
  vrrp_version 3
  enable_script_security
}

vrrp_script chk_service {
  script "/bin/sh -c 'nc -z 127.0.0.1 6443'"
  interval 2
  timeout 1
  fall 2
  rise 2
  weight -20
}

vrrp_instance VI_1 {
  state BACKUP
  interface ens18
  virtual_router_id 51
  priority 100
  advert_int 1
  nopreempt
  preempt_delay 10

  unicast_src_ip k8s-m3
  unicast_peer {
    k8s-m1
    k8s-m2
  }

  authentication {
    auth_type PASS
    auth_pass S3cur3-P@ss
  }

  virtual_ipaddress {
    192.168.20.100/24 dev ens18 label ens18:vip
  }

  track_interface {
    ens18
  }

  track_script {
    chk_service
  }
}

Installation de Kubernetes (Kubelet - Kubeadm - Kubectl) :  

 

apt-get update && apt-get install kubelet kubeadm kubectl -y && apt-mark hold kubelet kubeadm kubectl

pour vérifier l'installation vous pouvez taper la commande kubectl et vérifié les noeuds qui sont normalement au nombre de 1 actuellement en tapant : kubectl get nodes