From fafac06b23692f8b3ea503b30fcbe9f946afaba1 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Wed, 27 Nov 2019 13:11:20 +0100 Subject: [PATCH] TP5 ok --- tutorial/k8s/discover.md | 6 +- tutorial/k8s/dockercoins-diagram.svg | 522 ++++++++++++++++++++++++++- tutorial/k8s/intro.md | 30 +- tutorial/k8s/overview.md | 4 +- tutorial/k8s/run.md | 4 +- 5 files changed, 545 insertions(+), 21 deletions(-) diff --git a/tutorial/k8s/discover.md b/tutorial/k8s/discover.md index 49adb3d..800ffe4 100644 --- a/tutorial/k8s/discover.md +++ b/tutorial/k8s/discover.md @@ -102,7 +102,7 @@ Mon premier conteneur Prêt à lancer notre premier conteneur ?! Pas si vite ! En fait ... Kubernetes ne permet pas de lancer de conteneur... -Nous devons lancer un *pod*, qui ne contiendra qu'un seul conteneur. +Nous devons lancer un *pod* (qui ne contiendra qu'un seul conteneur). ### Mon premier pod @@ -110,8 +110,8 @@ Nous devons lancer un *pod*, qui ne contiendra qu'un seul conteneur. kubectl run pingpong --image alpine ping 1.1.1.1 ``` -Outre un avertissement, `kubectl` doit indiquer qu'une tâche de déploiement a -été créée. +Outre un avertissement, `kubectl` doit indiquer nous qu'une tâche de +déploiement a été créée. Si l'on affiche la liste des pods, vous devriez avoir quelque chose qui ressemble à cela : diff --git a/tutorial/k8s/dockercoins-diagram.svg b/tutorial/k8s/dockercoins-diagram.svg index ac05fe9..0a42335 100644 --- a/tutorial/k8s/dockercoins-diagram.svg +++ b/tutorial/k8s/dockercoins-diagram.svg @@ -1,2 +1,520 @@ - -
worker
worker
rng
rng
hasher
hasher
redis
redis
webui
webui
GET
GET
POST
POST
TCP
TCP
TCP
TCP
user
user
GET
GET
DockerCoins application
(five containers)
DockerCoins application<br>(five containers)<br>
\ No newline at end of file + + + + + + image/svg+xml + + + + + + + + + + + + + + worker + + + worker + + + + + + + + + rng + + + rng + + + + + + + + + hasher + + + hasher + + + + + + + + + redis + + + influxdb + + + + + + + + + webui + + + + chronograf + + + + + + + + + + GET + + + GET + + + + + + + + + POST + + + POST + + + + + + + + + + + + user + + + user + + + + + + + + + GET + + + GET + + + + + + + DockerCoins application +(five containers) + + + + + ChocoMiner application + + + + + + + + POST + + + POST + + + + + + + GET + + + GET + + + diff --git a/tutorial/k8s/intro.md b/tutorial/k8s/intro.md index 2281d16..d8376b1 100644 --- a/tutorial/k8s/intro.md +++ b/tutorial/k8s/intro.md @@ -52,21 +52,30 @@ DNS, car les IP sont susceptibles de changer ! Tester avec `docker-compose` ---------------------------- -`docker-compose up` +```bash +docker-compose up +``` -Se connecter à chronograf sur le port qui va bien +Une fois le docker-compose lancé, nous devrions pouvoir accéder à l'interface +de chronograf pour voir l'avancement de recherche de pépites : + + Monté en puissance ------------------ -`docker-compose up -d --scale worker=2` +```bash +docker-compose up -d --scale worker=2 +``` -Ok :-) +On remarque que le nombre de hash calculés augmente ! Génial ! -`docker-compose up -d --scale worker=10` +```bash +docker-compose up -d --scale worker=10 +``` -Argh :-( +Mais ça atteint un palier au bout d'un moment ... Identification du goulot d'étranglement @@ -74,13 +83,10 @@ Identification du goulot d'étranglement De nombreux outils existent pour réaliser des tests de performance, essayons `httping` sur nos différents services pour voir si un service ne serait pas -la cause des ralentissements. +la cause des ralentissements : -`rng` -: `httping -c 3 localhost:8001` - -`hasher` -: `httping -c 3 localhost:8002` +- Testons `rng` : `httping -c 3 localhost:8001`, +- puis testons `hasher` : `httping -c 3 localhost:8002`. Il semblerait que notre application `rng` nécessite d'être exécuté en parallèle ! Mais on ne peut pas faire de répartition de charge facilement avec diff --git a/tutorial/k8s/overview.md b/tutorial/k8s/overview.md index 426baf9..1a28954 100644 --- a/tutorial/k8s/overview.md +++ b/tutorial/k8s/overview.md @@ -19,8 +19,8 @@ en cherchant à être constamment dans l'état que l'on lui a décrit, qu'il va s'adapter pour répondre aux besoins. Par exemple, on ne va pas lui expliquer comment lancer des conteneurs ou -récupérer des images ; mais on va lui demander d'avoir 5 conteneurs youp0m -lancés, de placer ces conteneurs derrière un load-balancer ; on pourra +récupérer des images ; mais on va lui demander d'avoir 5 conteneurs youp0m +lancés, de placer ces conteneurs derrière un load-balancer ; on pourra également lui demander d'adapter la charge pour absorber les pics de trafic (par exemple lors du Black Friday sur une boutique), mais également, il pourra gérer les mises à jour des conteneurs selon différentes méthodes, ... diff --git a/tutorial/k8s/run.md b/tutorial/k8s/run.md index 79db735..9c3c54f 100644 --- a/tutorial/k8s/run.md +++ b/tutorial/k8s/run.md @@ -4,7 +4,7 @@ Cookies dans Kube ================= Maintenant que nous en savons un peu plus sur Kubernetes, nous allons commencer -à déployer notre application ChochMiner dans notre cluster. Pour cela, nous +à déployer notre application ChocoMiner dans notre cluster. Pour cela, nous allons devoir : - construire les images de notre application ; @@ -72,7 +72,7 @@ disposition sur le Docker Hub : - `nemunaire/worker:v0.1` - `nemunaire/rng:v0.1` -- etc. +- `nemunaire/hasher:v0.1` Lançons les images standards