Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont...
Transcript of Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont...
![Page 1: Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont Docker, ou Kubernetes. Pour gérer la charge du serveur, il faut utiliser le load-balancing(traefik).](https://reader033.fdocument.pub/reader033/viewer/2022060221/5f0756f27e708231d41c7f0f/html5/thumbnails/1.jpg)
Soutenance intermédiaire
Projet Traefik
BOURAHLA Florian
LORENZINI Léo
VIGNAL Nicolas
![Page 2: Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont Docker, ou Kubernetes. Pour gérer la charge du serveur, il faut utiliser le load-balancing(traefik).](https://reader033.fdocument.pub/reader033/viewer/2022060221/5f0756f27e708231d41c7f0f/html5/thumbnails/2.jpg)
SOMMAIRE
2
Plan de travail jusqu’à la soutenance finale
Kubernetes
Objectifs
Contexte
Tâches réalisées
![Page 3: Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont Docker, ou Kubernetes. Pour gérer la charge du serveur, il faut utiliser le load-balancing(traefik).](https://reader033.fdocument.pub/reader033/viewer/2022060221/5f0756f27e708231d41c7f0f/html5/thumbnails/3.jpg)
CONTEXTE
3
Les infrastructures à base de microservices sont de plus en plus présentes aujourd’hui.
Problématiques
• Comment gérer une architecture à base de microservices ?
• Quels sont les outils permettant ceci ?
![Page 4: Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont Docker, ou Kubernetes. Pour gérer la charge du serveur, il faut utiliser le load-balancing(traefik).](https://reader033.fdocument.pub/reader033/viewer/2022060221/5f0756f27e708231d41c7f0f/html5/thumbnails/4.jpg)
Réponse au contexte4
Qu’est-ce que une architecture à base de microservices ?
Méthode de développement d’application logicielle en utilisant des
services indépendants.
(Opposé à l’application monolithique)
Comment gérer une architecture à base de microservices ?
En mettant en place différents clusters qui fourniront chacun leurs
services.
Quels sont les outils permettant ceci ?
Les outils permettant de gérer le clustering sont Docker, ou
Kubernetes. Pour gérer la charge du serveur, il faut utiliser
le load-balancing(traefik).
![Page 5: Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont Docker, ou Kubernetes. Pour gérer la charge du serveur, il faut utiliser le load-balancing(traefik).](https://reader033.fdocument.pub/reader033/viewer/2022060221/5f0756f27e708231d41c7f0f/html5/thumbnails/5.jpg)
Objectifs5
![Page 6: Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont Docker, ou Kubernetes. Pour gérer la charge du serveur, il faut utiliser le load-balancing(traefik).](https://reader033.fdocument.pub/reader033/viewer/2022060221/5f0756f27e708231d41c7f0f/html5/thumbnails/6.jpg)
Kubernetes6
Kubernetes (ou k8s) c’est quoi ?
Projet démarré en 2014 issus de Google programmé en Go.
Orchestrateur de conteneur, complémentaire à Docker.
Clusterise donc plusieurs serveurs Docker.
Kubernetes est constitué de 2 parties :
Master : Serveur qui contrôle le cluster
Nœud(node): Serveur qui héberge les applications et qui reçoit les
instructions du master.
![Page 7: Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont Docker, ou Kubernetes. Pour gérer la charge du serveur, il faut utiliser le load-balancing(traefik).](https://reader033.fdocument.pub/reader033/viewer/2022060221/5f0756f27e708231d41c7f0f/html5/thumbnails/7.jpg)
Kubernetes7
Kubernetes se compose donc de différents objets :
Pod: Objet le plus petit de Kubernetes. Contient un ou plusieurs
conteneurs Docker.
Deployment : fournir les mises à jour des pods et réplicas
Service : Exposition d’une application sur l’ensemble du réseau
Ingress : gère l’accès externe (généralement trafic HTTP)
![Page 8: Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont Docker, ou Kubernetes. Pour gérer la charge du serveur, il faut utiliser le load-balancing(traefik).](https://reader033.fdocument.pub/reader033/viewer/2022060221/5f0756f27e708231d41c7f0f/html5/thumbnails/8.jpg)
Taches réalisées sur
Kubernetes (master)
Les tâches réalisées sur Kubernetes côté serveur :
Initialisation du master
Création de jetons
Installation Dashboard
Installation de Traefik
Installation de WordPress
8
![Page 9: Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont Docker, ou Kubernetes. Pour gérer la charge du serveur, il faut utiliser le load-balancing(traefik).](https://reader033.fdocument.pub/reader033/viewer/2022060221/5f0756f27e708231d41c7f0f/html5/thumbnails/9.jpg)
Communication
nœud
9
Qu’est-ce que un nœud sur kubernetes ?
Nœud ou node en anglais, peut être une machine virtuelle ou physique.
Un ou plusieurs nœuds peuvent être gérés par un ou plusieurs masters
Un nœud contient des pods
Outils permettant les nœuds:
kubelet : Superviseur qui contrôle les nœuds
Container runtime: Service qui gère le téléchargement des images et de
l’exécution des conteneurs.
Kube-proxy: regroupe les nœuds à l’aide d’une IP virtuelle.
![Page 10: Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont Docker, ou Kubernetes. Pour gérer la charge du serveur, il faut utiliser le load-balancing(traefik).](https://reader033.fdocument.pub/reader033/viewer/2022060221/5f0756f27e708231d41c7f0f/html5/thumbnails/10.jpg)
Taches réalisées sur
Kubernetes (nœud)
Les tâches réalisées sur kubernetes côté nœud :
Packet docker.io
Packet apt-transport-https pour utiliser le protocole https.
Édit du /etc/apt/sources.list (rajouter deb https://apt.kubernetes.io/kubernetes-xenial main)
Packet kubelet
Packet kubeadm est nécessaire afin de communiquer avec le master.
Swapoff –a nécessaire !
Utilisation du jeton pour communiquer avec le master !
10
![Page 11: Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont Docker, ou Kubernetes. Pour gérer la charge du serveur, il faut utiliser le load-balancing(traefik).](https://reader033.fdocument.pub/reader033/viewer/2022060221/5f0756f27e708231d41c7f0f/html5/thumbnails/11.jpg)
Illustration
Figure 1 – Dashboard de kubernetes
11
![Page 12: Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont Docker, ou Kubernetes. Pour gérer la charge du serveur, il faut utiliser le load-balancing(traefik).](https://reader033.fdocument.pub/reader033/viewer/2022060221/5f0756f27e708231d41c7f0f/html5/thumbnails/12.jpg)
Illustration
Figure 2 – Dashboard de Traefik
12
![Page 13: Soutenance intémerdiaire Projet Traefik · Les outils permettant de gérer le clustering sont Docker, ou Kubernetes. Pour gérer la charge du serveur, il faut utiliser le load-balancing(traefik).](https://reader033.fdocument.pub/reader033/viewer/2022060221/5f0756f27e708231d41c7f0f/html5/thumbnails/13.jpg)
Plan jusqu’à la
soutenance finale
13
Maintenant que nous avons réussi à configurer tout ceci en local,
le plan jusqu’à la soutenance finale est donc le suivant :
Implémentation sur de vrais serveurs distants(configurer tout ceci en
SSH)
Mettre en place Rancher (gestionnaire de K8s)
Implémenter l’outil Promethus en complément de Traefik