information:kebernetes:install
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| information:kebernetes:install [2023/12/04 11:35] – [Test de fonctionnement] benoit | information:kebernetes:install [2023/12/05 12:39] (Version actuelle) – supprimée benoit | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Installation de Kubernetes ====== | ||
| - | |||
| - | Nous allons installer Kubernetes sur 2 serveurs : | ||
| - | * Un pour le rôle de master (IP: 10.0.6.8) | ||
| - | * Un pour le rôle de node (IP: 10.0.4.248) | ||
| - | |||
| - | |||
| - | ===== Prérequis ===== | ||
| - | |||
| - | ==== Matériel requis ==== | ||
| - | |||
| - | La machine doit disposer minimum des ressources suivantes : | ||
| - | * 2 Go de mémoire RAM | ||
| - | * 2 CPU | ||
| - | |||
| - | |||
| - | |||
| - | ==== Désactiver la Swap sur les machines ==== | ||
| - | |||
| - | Il est nécessaire de désactiver la swap pour faire fonctionner Kubernetes. | ||
| - | |||
| - | Désactiver la swap sur les 2 serveurs : | ||
| - | swapoff -a | ||
| - | |||
| - | Pour désactiver de manière persistante, | ||
| - | |||
| - | ==== Configurations noyau Linux requis ==== | ||
| - | |||
| - | Editer le fichier : | ||
| - | vim / | ||
| - | |||
| - | Ajouter les lignes : | ||
| - | overlay | ||
| - | br_netfilter | ||
| - | |||
| - | Activer les modules : | ||
| - | modprobe overlay | ||
| - | modprobe br_netfilter | ||
| - | |||
| - | Vérifier que les modules sont chargés : | ||
| - | lsmod | grep br_netfilter | ||
| - | lsmod | grep overlay | ||
| - | |||
| - | Résultat attandu : | ||
| - | br_netfilter | ||
| - | bridge | ||
| - | overlay | ||
| - | |||
| - | Editer le fichier : | ||
| - | vim / | ||
| - | |||
| - | Insérer les lignes suivantes (Autorisation du Bridge et de l'IP Forwarding) : | ||
| - | net.bridge.bridge-nf-call-ip6tables = 1 | ||
| - | net.bridge.bridge-nf-call-iptables = 1 | ||
| - | net.ipv4.ip_forward = 1 | ||
| - | |||
| - | Activation des options réseau du noyau : | ||
| - | sysctl --system | ||
| - | |||
| - | ==== Installer et configurer Docker ==== | ||
| - | |||
| - | [[informatique: | ||
| - | |||
| - | Créer le répertoire : | ||
| - | mkdir -p / | ||
| - | |||
| - | Editer le fichier : | ||
| - | vim / | ||
| - | |||
| - | Insérer le contenu suivant : | ||
| - | { | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | }, | ||
| - | " | ||
| - | } | ||
| - | |||
| - | Relancer le service Docker : | ||
| - | systemctl daemon-reload | ||
| - | systemctl restart docker | ||
| - | |||
| - | |||
| - | ==== Installer Cri-Dockerd (Editeur Mirantis) ==== | ||
| - | |||
| - | Il est nécessaire d' | ||
| - | |||
| - | |||
| - | Vérifier que Docker est bien lancé : | ||
| - | systemctl status docker | ||
| - | |||
| - | Installer les paquetages pré-requis : | ||
| - | apt install git wget curl | ||
| - | |||
| - | Identification de la dernière version de Cri-Dockerd : | ||
| - | VER=$(curl -s https:// | ||
| - | echo $VER | ||
| - | |||
| - | Téléchargement et décompression de l' | ||
| - | wget https:// | ||
| - | wget https:// | ||
| - | wget https:// | ||
| - | tar xvf cri-dockerd-${VER}.amd64.tgz | ||
| - | |||
| - | Copie des fichiers dans le système : | ||
| - | mv cri-dockerd/ | ||
| - | mv cri-docker.socket cri-docker.service / | ||
| - | sed -i -e ' | ||
| - | |||
| - | Tester le binaire : | ||
| - | cri-dockerd --version | ||
| - | |||
| - | Résultat attendu : | ||
| - | cri-dockerd 0.3.7 (170103f2) | ||
| - | |||
| - | Activer et lancer Cri-Dockerd : | ||
| - | systemctl daemon-reload | ||
| - | systemctl enable cri-docker.service | ||
| - | systemctl enable --now cri-docker.socket | ||
| - | |||
| - | Vérifier que le service fonctionne : | ||
| - | systemctl status cri-docker.socket | ||
| - | |||
| - | Résultat attendu : | ||
| - | ● cri-docker.socket - CRI Docker Socket for the API | ||
| - | | ||
| - | | ||
| - | ... | ||
| - | |||
| - | ===== Installation ===== | ||
| - | |||
| - | **A faire sur le master et les nodes** | ||
| - | |||
| - | Ajouter le dépôt à APT : | ||
| - | |||
| - | apt install apt-transport-https curl | ||
| - | curl -s https:// | ||
| - | add-apt-repository "deb http:// | ||
| - | |||
| - | Installation : | ||
| - | apt update | ||
| - | apt install kubelet kubeadm kubectl kubernetes-cni | ||
| - | |||
| - | Vérifier le fonctionnement : | ||
| - | kubectl version --client && kubeadm version | ||
| - | |||
| - | Résultat attendu : | ||
| - | Client Version: v1.28.2 | ||
| - | Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3 | ||
| - | kubeadm version: & | ||
| - | |||
| - | Activer le service kubelet de Kubernetes : | ||
| - | systemctl enable kubelet | ||
| - | ===== Initialisation du Master et ajout des Nodes ===== | ||
| - | |||
| - | |||
| - | ==== Initialisation du Master ==== | ||
| - | |||
| - | Il s'agit d' | ||
| - | |||
| - | Ajouter l' | ||
| - | echo " | ||
| - | |||
| - | Paramétrer la méthode de récupération d' | ||
| - | kubeadm config images pull --cri-socket / | ||
| - | |||
| - | Initialisation du Cluster : | ||
| - | kubeadm init --pod-network-cidr=192.168.89.0/ | ||
| - | |||
| - | * pod-network-cidr : C'est pour définir le réseau dédié au fonctionnement des POD Kubernetes. Il faut que les IP des nodes soient dans ce réseau. | ||
| - | |||
| - | Résultat attendu : | ||
| - | Your Kubernetes control-plane has initialized successfully! | ||
| - | | ||
| - | To start using your cluster, you need to run the following as a regular user: | ||
| - | | ||
| - | mkdir -p $HOME/.kube | ||
| - | sudo cp -i / | ||
| - | sudo chown $(id -u):$(id -g) $HOME/ | ||
| - | | ||
| - | Alternatively, | ||
| - | | ||
| - | export KUBECONFIG=/ | ||
| - | | ||
| - | You should now deploy a pod network to the cluster. | ||
| - | Run " | ||
| - | https:// | ||
| - | | ||
| - | Then you can join any number of worker nodes by running the following on each as root: | ||
| - | | ||
| - | kubeadm join 10.0.6.8: | ||
| - | --discovery-token-ca-cert-hash sha256: | ||
| - | |||
| - | |||
| - | Nous allons suivre les instructions indiqué lors de l' | ||
| - | mkdir -p $HOME/.kube | ||
| - | sudo cp -i / | ||
| - | sudo chown $(id -u):$(id -g) $HOME/ | ||
| - | |||
| - | Vérifier les informations du cluster : | ||
| - | kubectl cluster-info | ||
| - | |||
| - | Résultat attendu : | ||
| - | Kubernetes control plane is running at https:// | ||
| - | CoreDNS is running at https:// | ||
| - | | ||
| - | To further debug and diagnose cluster problems, use ' | ||
| - | |||
| - | ==== Ajout des Nodes ==== | ||
| - | |||
| - | **A faire sur chaque node.** | ||
| - | |||
| - | Pour enregistrer le node au master : | ||
| - | kubeadm join 10.0.6.8: | ||
| - | sha256: | ||
| - | |||
| - | ==== Vérification des nodes sur le Master ==== | ||
| - | |||
| - | Vérifier la liste des nodes : | ||
| - | kubectl get nodes | ||
| - | |||
| - | Résultat attendu : | ||
| - | NAME | ||
| - | k8s-master | ||
| - | k8s-node | ||
| - | |||
| - | ===== Installation et configuration du plugin réseau ===== | ||
| - | |||
| - | Nous utiliserons le plugin **Flannel**. | ||
| - | |||
| - | Il est validé par l' | ||
| - | |||
| - | ==== Installation de Flannel ==== | ||
| - | |||
| - | Récupération du fichier manisfeste Yml : | ||
| - | |||
| - | wget https:// | ||
| - | |||
| - | Editer le fichier téléchargé : | ||
| - | vim kube-flannel.yml | ||
| - | |||
| - | Ajuster la variable **Network** dans la section **net-conf.json** | ||
| - | net-conf.json: | ||
| - | { | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | } | ||
| - | } | ||
| - | |||
| - | Appliquer le manisfeste : | ||
| - | kubectl apply -f kube-flannel.yml | ||
| - | |||
| - | Vérifier si les pods **Flannel** ont bien démarré : | ||
| - | kubectl get pods -n kube-flannel | ||
| - | |||
| - | Résultat attendu : | ||
| - | NAME READY | ||
| - | kube-flannel-ds-6dqj2 | ||
| - | kube-flannel-ds-lkt76 | ||
| - | |||
| - | Vérifier que les nodes sont prêt : | ||
| - | kubectl get nodes -o wide | ||
| - | |||
| - | Résultat attendu : | ||
| - | NAME | ||
| - | k8s-master | ||
| - | k8s-node | ||
| - | |||
| - | ===== Test de fonctionnement ===== | ||
| - | |||
| - | Nous allons déployer une simple application pour le test. | ||
| - | |||
| - | Téléchargement et création de l' | ||
| - | kubectl apply -f https:// | ||
| - | |||
| - | Résultat attendu : | ||
| - | pod/ | ||
| - | |||
| - | Vérifier que l' | ||
| - | kubectl get pods | ||
| - | |||
| - | Résultat attendu : | ||
| - | NAME | ||
| - | command-demo | ||
information/kebernetes/install.1701689700.txt.gz · Dernière modification : de benoit
