4.5 KiB
\newpage
Cluster Swarm
Création du cluster
De quoi s'agit-il ?
Pour travailler sur un cluster, il faut avoir plusieurs machines. Au moins plus d'une !
TODO parler du clustering et du provisionning
TODO parler des concurrents
Provisionner des machines
Automagiquement
La solution magique consiste à passer par docker-machine
pour créer des
machines virtuelles automatiquement provisionnées avec Docker.
Rien de plus simple, mais cela nécessite d'être dans un environnement dans lequel vous maîtrisez le shell et dans lequel vous pouvez créer des machines virtuelles. Si votre machine Linux est en fait une machine virtuelle hébergée par VirtualBox sous Windows, vous allez sans doute préférer la deuxième solution, que d'utiliser PowerShell et Docker4Windows1.
Créer une machine
Pour créer une nouvelle machine, nous allons utiliser la commande
docker-machine create
, en prenant soin de préciser le pilote à utiliser, les
éventuelles options que prend ce pilote, ainsi que le nom que vous souhaitez
donner à cette machine (les machines ne sont pas considérées comme jetables,
leur nom vous permettra par exemple de relancer une machine plus tard) :
docker-machine create --driver virtualbox echinoidea
Consultez la section suivante, réservée aux gens qui ne peuvent pas passer par
docker-machine
si vous souhaitez avoir plus d'information sur ce que fait
cette commande.
Commandes usuelles de docker-machine
De la même manière que docker
, vous pouvez lister les machines connues
(ls
), changer leur état d'exécution (start
/stop
/kill
/restart
) ou encore supprimer la machine (rm
)
Si vous avez besoin d'obtenir un shell : docker-machine ssh $NAME
et
évidemment la commande scp
s'utilise de la même manière, pour transférer des
fichiers.
Utilisation avec Docker
Rappelez-vous, au cours précédent, nous avions évoqué le fait que le deamon
pouvait ne pas se trouver sur la même machine que le client docker
. Eh bien
avec docker-machine
cela prend tout son sens, car vous pouvez très facilement
changer de daamon/machine avec une simple commande :
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS
$ eval $(docker-machine env echinoidea)
$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
a814293b9f45 armbuild/busybox "/bin/sh" 18 seconds ago Up 10 minutes
0caddeed5037 armbuild/alpine "/bin/sh" 3 weeks ago Created
On remarque que le client Docker est influencé par l'exécution de notre
commande docker-machine env
. En effet, cette commande va modifier
l'environnement (d'où le besoin d'eval
le retour de la commande) pour faire
correspondre DOCKER_HOST
avec le chemin où le daemon peut être contacté.
Pour reprendre le contrôle de votre environnement local, vous pouvez, soit
supprimer manuellement les variables qui ont été ajoutées par l'évaluation,
soit lancer eval $(docker machine env -u)
.
Automanuellement
Si votre environnement ne vous permet pas d'utiliser docker-machine
, vous pouvez
https://github.com/boot2docker/boot2docker/releases/latest
Présentation de l'orchestration
Déployer des conteneurs sur sa propre machine, c'est extrêmement simple grâce à Docker. Mais souvent, le passage d'une application en production ou simplement dans un environnement de qualification, n'est pas toujours aisé.
Il n'est pas question pour un administrateur système de faire la répartition de la charge à la main : afin de ne pas trop charger un serveur qui pourrait recevoir des pics, alors que d'autres serveurs attendent des calculs.
Ce processus d'optimisation s'appelle l'orchestration. Il s'agit de réussir à répartir au mieux les conteneurs dans notre environnement de production
Création du cluster Swarm
docker swarm
Le maître
Initialisation du cluster
Présentation des mécanismes de sécurité
Les nodes
Enregistrement d'un esclave
Multi-maître
-
Vous pouvez aussi vous inscrire sur Amazon Web Services,
docker-machine
est capable, à partir de vos clefs d'API, de créer et lancer des machines dans le cloud ! Et ce n'est pas le seul service de cloud supporté ! ↩︎