Post on 15-Jun-2020
Soutenance intermédiaire
Projet Traefik
BOURAHLA Florian
LORENZINI Léo
VIGNAL Nicolas
SOMMAIRE
2
Plan de travail jusqu’à la soutenance finale
Kubernetes
Objectifs
Contexte
Tâches réalisées
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 ?
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).
Objectifs5
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.
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)
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
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.
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
Illustration
Figure 1 – Dashboard de kubernetes
11
Illustration
Figure 2 – Dashboard de Traefik
12
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