Save tuto corrections
This commit is contained in:
parent
f5ee6b8534
commit
10448a6c8d
115 changed files with 1425 additions and 1291 deletions
|
@ -1,15 +1,15 @@
|
|||
\newpage
|
||||
|
||||
Déploiement de services
|
||||
=======================
|
||||
-----------------------
|
||||
|
||||
## Services ?
|
||||
### Services ?
|
||||
|
||||
Une petite minute terminologie avant de continuer, car lorsque l'on passe sur
|
||||
les clusters de Docker, cela change un peu :
|
||||
les clusters de Docker, cela change un peu :
|
||||
|
||||
* une *tâche* correspond à **un** unique conteneur, lancé sur l'un des nœuds
|
||||
*workers* du cluster ;
|
||||
*workers* du cluster ;
|
||||
* un *service* est un groupe de tâches (oui, les tâches du point précédent),
|
||||
exécutant la même image.
|
||||
|
||||
|
@ -18,13 +18,13 @@ la haute-disponibilité ou pour répartir la charge.
|
|||
|
||||
|
||||
<div lang="en-US">
|
||||
### Hello world, again?
|
||||
#### Hello world, again?
|
||||
</div>
|
||||
|
||||
Non, pas d'hello-world ici, mais nous allons prendre en main les services avec
|
||||
un serveur web, qui sera bien plus représentatif de ce que l'on pourra obtenir.
|
||||
|
||||
Précédemment, nous lancions notre serveur web favori avec :
|
||||
Précédemment, nous lancions notre serveur web favori avec :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
@ -33,7 +33,7 @@ docker container run --name mywebs -d nginx
|
|||
</div>
|
||||
|
||||
La même commande, mais déployée à partir d'un nœud manager, vers un nœud
|
||||
*workers*, est :
|
||||
*workers*, est :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
@ -41,7 +41,7 @@ docker service create --name myWebS nginx
|
|||
```
|
||||
</div>
|
||||
|
||||
Allons-y, essayons !
|
||||
Allons-y, essayons !
|
||||
|
||||
On peut consulter l'état du service avec, comme d'habitude `ls` :
|
||||
|
||||
|
@ -59,7 +59,7 @@ déployé, le tâche apparaît dans la liste des conteneurs !
|
|||
|
||||
Rien de très excitant pour le moment, car nous ne pouvons pas vraiment accéder
|
||||
à notre serveur. Essayons de modifier sa configuration en direct, afin
|
||||
d'ajouter une redirection de port :
|
||||
d'ajouter une redirection de port :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
@ -71,13 +71,13 @@ docker service update --publish-add 80 myWebS
|
|||
service sont stoppés puis, le manager voyant que le service n'est pas dans
|
||||
l'état demandé, va lancer des tâches avec la nouvelle configuration.
|
||||
|
||||
La commande `update` est très puissante : vous pouvez mettre à jour
|
||||
La commande `update` est très puissante : vous pouvez mettre à jour
|
||||
pratiquement n'importe quel élément de configuration, y compris le nom de
|
||||
l'image ou son tag. Grâce à cela, faire des mises à jour se fait de manière
|
||||
transparente.
|
||||
|
||||
|
||||
#### Magie du mesh
|
||||
##### Magie du mesh {-}
|
||||
|
||||
Lorsque l'on publie un port de cette manière, chaque nœud du cluster devient un
|
||||
point d'entrée pour ce port, même si la tâche ne s'exécute pas sur ce nœud
|
||||
|
@ -88,25 +88,26 @@ nœuds. Vous devriez voir la même page.
|
|||
|
||||
Lorsque plusieurs tâches s'exécutent pour ce service, le nœud d'entrée choisi
|
||||
selon un round-robin à quelle tâche il va diriger la requête. C'est grâce à ce
|
||||
mécanisme qu'il est possible faire une répartition de charge très simplement.
|
||||
mécanisme qu'il est possible de faire de la répartition de charge très
|
||||
simplement.
|
||||
|
||||
\vspace{1.5em}
|
||||
|
||||
Cette méthode n'est pas la seule permettant d'exposer des ports. Mais c'est
|
||||
sans doute la plus intuitive. Si vous souhaitez en apprendre plus, vous deviez
|
||||
consulter la
|
||||
[documentation à ce sujet](https://docs.docker.com/engine/swarm/networking/).
|
||||
sans doute la plus intuitive. Si vous souhaitez en apprendre plus, vous devriez
|
||||
consulter la documentation à ce sujet :\
|
||||
<https://docs.docker.com/engine/swarm/networking/>
|
||||
|
||||
|
||||
### Mise à l'échelle et placement
|
||||
#### Mise à l'échelle et placement
|
||||
|
||||
On parle depuis toute à l'heure de lancer plusieurs tâches pour le même
|
||||
service. La mise à l'échelle c'est ça : exécuter plusieurs conteneurs pour la
|
||||
service. La mise à l'échelle, c'est ça : exécuter plusieurs conteneurs pour la
|
||||
même tâche afin de mieux répartir la charge, idéalement sur des machines
|
||||
physique différentes.
|
||||
physiques différentes.
|
||||
|
||||
Ce qui se fait souvent avec beaucoup de douleur hors de Docker, se résume ici à
|
||||
:
|
||||
Ce qui se fait souvent avec beaucoup de douleur hors de Docker, se résume ici
|
||||
à :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
@ -122,21 +123,21 @@ docker service ps myWebS
|
|||
```
|
||||
</div>
|
||||
|
||||
nous montre bien, a priori 3 tâches en cours d'exécution pour ce service !
|
||||
nous montre bien, a priori 3 tâches en cours d'exécution pour ce service !
|
||||
|
||||
Enfin, vous avez compris le principe !
|
||||
Enfin, vous avez compris le principe !
|
||||
|
||||
|
||||
## Stack ?
|
||||
### Stack ?
|
||||
|
||||
Refermons cette longue parenthèse et revenons-en au sujet du jour : la
|
||||
Refermons cette longue parenthèse et revenons-en au sujet du jour : la
|
||||
supervision de nos machines.
|
||||
|
||||
Une *stack* est un groupe de services. Un projet, par exemple un site web dans
|
||||
son ensemble : frontend, API, base de données, ...
|
||||
son ensemble : frontend, API, base de données, ...
|
||||
|
||||
Notre système de monitoring est une *stack* lui aussi, d'ailleurs, nous pouvons
|
||||
la lancer grâce à notre `docker-compose.yml` :
|
||||
la lancer grâce à notre `docker-compose.yml` :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
@ -144,7 +145,7 @@ docker stack deploy --compose-file docker-compose.yml tic
|
|||
```
|
||||
</div>
|
||||
|
||||
### Règle de déploiement
|
||||
#### Règle de déploiement
|
||||
|
||||
Par rapport à `docker-compose`, nous pouvons indiquer dans ce fichier des
|
||||
paramètres qui ne serviront qu'au déploiement de notre tâche.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue