Introduction
Kubernetes est devenu la norme pour l’orchestration des conteneurs dans le monde du développement logiciel. Cet article fournit un guide détaillé pour installer et configurer un cluster Kubernetes en utilisant kubeadm, un outil officiel de Kubernetes.
Pré-requis
- Trois machines (ou VMs) avec une distribution Linux (Ubuntu 20.04 LTS recommandée).
- Accès root sur toutes les machines.
- Connexion réseau entre les machines.
Étapes de l’installation
Préparation des Machines
Mettre à jour les paquets
sudo apt update && sudo apt upgrade -y
Désactiver le swap
bashsudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstabConfigurer le kernel
bashcat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOFbash
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
Installation de Docker
Installer les dépendances
bashsudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
Ajouter le GPG key et repository Docker
bashcurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"Installer Docker
bashsudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.ioConfigurer Docker pour Kubernetes
bashcat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker
Installation de kubeadm, kubelet et kubectl
Ajouter le GPG key et repository Kubernetes
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"Installer les paquets Kubernetes
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
Initialisation du Cluster
Sur le master node
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
Configurer kubectl pour l’utilisateur non-root
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/configDéployer un plugin de réseau
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Ajout de nœuds au Cluster
- Sur chaque nœud worker
sudo kubeadm join <master-node-ip>:<master-node-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
- Sur chaque nœud worker
Conclusion
Vous avez maintenant un cluster Kubernetes fonctionnel installé et configuré avec kubeadm. Vous pouvez déployer vos applications conteneurisées et profiter des avantages de Kubernetes pour l’orchestration.