13
Soutenance intermédiaire Projet Traefik BOURAHLA Florian LORENZINI Léo VIGNAL Nicolas

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)

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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