cloud:2017:tp_swarm2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
cloud:2017:tp_swarm2 [2018/01/12 14:53] – [I. Docker Machine] fabien.ricocloud:2017:tp_swarm2 [2018/03/13 09:19] (Version actuelle) jean-patrick.gelas
Ligne 1: Ligne 1:
-=====0. Introduction===== +
-Ce TP est assez court. En effet, nous comptons faire un TP noté le 9/2 ce dernier portera sur votre capacité à configurer un petit cluster de calcul en utilisant docker. Une part importante de la note dépendra de votre état d'avancement à la fin du TP. Si vous terminez votre TP avant la fin de la séance, il vous est donc conseillé de vérifier l'état de vos connaissances sur les opérations des TPs précédents.+
  
 =====I. Docker Machine ===== =====I. Docker Machine =====
-[[https://docs.docker.com/machine/overview/|Docker machine]] est un script qui permet de générer des machines virtuelles et d'installer docker automatiquement. Il est capable d'utiliser plusieurs hyperviseurs comme //virtutalbox// ou //openstack// mais aussi les fournisseurs de cloud publiques : AWS, Azure ... Vous avez une documentation plus spécifique à [[https://docs.docker.com/machine/drivers/openstack/|openstack ici]]+[[https://docs.docker.com/machine/overview/|Docker machine]] est un script qui permet de générer des machines virtuelles et d'installer docker automatiquement. Il est capable d'utiliser plusieurs hyperviseurs comme //virtutalbox// ou //openstack// mais aussi les fournisseurs de cloud publiques : AWS, Azure ... Vous avez une documentation plus spécifique sur [[https://docs.docker.com/machine/drivers/openstack/|openstack ici]]
  
 Certaines requêtes de docker machine utilisent //un port inhabituel qui est filtré sur le réseau wifi//. Vous devez donc utiliser les machines de l'université et télécharger le script par la commande : Certaines requêtes de docker machine utilisent //un port inhabituel qui est filtré sur le réseau wifi//. Vous devez donc utiliser les machines de l'université et télécharger le script par la commande :
Ligne 14: Ligne 13:
   - l'url d'authentification est ''https://cloud-info.univ-lyon1.fr:5000/v3/''   - l'url d'authentification est ''https://cloud-info.univ-lyon1.fr:5000/v3/''
   - le nom d'utilisateur et le mot de passe sont ceux qui vous permettent de vous connecter (voir la remarque plus loin)   - le nom d'utilisateur et le mot de passe sont ceux qui vous permettent de vous connecter (voir la remarque plus loin)
-  - le //tenant// est le projet //openstack// où créer les machines Il faut donner son identifiant avec l'option ''openstack-tenant-id'' t lui donner la valeur ''0172faff8a6c4c63ad7095af44d86415'' +  - le //tenant// est le projet //openstack// où créer les machines Il faut donner son identifiant avec l'option ''openstack-tenant-id'' t lui donner la valeur ''fd8c7337154b4c8ea246c1bca973f9f0'' 
-  - le nom de l'image à utiliser est celui d'une VM par défaut (car docker-machine s'occupera des configurations) : ''Ubuntu 16.04 LTS Xenial''+  - le nom de l'image à utiliser est celui d'une VM par défaut (car docker-machine s'occupera des configurations) : ''Ubuntu 16.04.3 LTS Xenial''
   - **Attention** il faut bien spécifier les options de proxy via l'option //engine-env// qui permet de spécifier une variable d'environnement((donnez une valeur pour ''HTTP_PROXY'' et ''HTTPS_PROXY'')). Cela permettra de configurer le docker installé pour l'utilisation du proxy de l'université et s'utilise de cette manière :   - **Attention** il faut bien spécifier les options de proxy via l'option //engine-env// qui permet de spécifier une variable d'environnement((donnez une valeur pour ''HTTP_PROXY'' et ''HTTPS_PROXY'')). Cela permettra de configurer le docker installé pour l'utilisation du proxy de l'université et s'utilise de cette manière :
  
Ligne 61: Ligne 60:
   * tester qu'il répond avec une répartition de charge.   * tester qu'il répond avec une répartition de charge.
  
 +===== Création d'un fichier de déploiement =====
 +
 +Pour automatiser vos déploiement, il est plus pratique d'utiliser un fichier yaml pour décrire votre application. Comme pour le premier TP avec docker-compose, vous allez maintenant utiliser docker stack.
 +
 +Vous devez supprimer votre précédent service avec ''docker service rm''.
 +
 +Ecrivez votre fichier yaml pour lancer votre image ''localhost:5000/VOTRETAG'' avec 2 replicas.
 +
 +Lancez le stack avec la commande docker stack  up -c //votre fichier//
 +
 +
 +Lors de la mise en place d'application, il y a de nombreuses données sensibles comme les certificats ou les mots de passe. Pour ne pas les mettre en clair dans vos fichiers, docker propose la fonction //secret//.
 +
 +Maintenant, vous allez créer un secret avec la commande ''docker secret''. Puis modifier votre fichier yaml afin de lui indiquer qu'il peut accéder à ce secret //externe//.
 +
 +Quand vous avez fini vous pouvez modifier le fichier afin d'afficher votre secret :
 +
 +echo "mon secret :" . file_get_contents("/var/run/secrets/''nom de votre secret''","r");
  
 +Ne pas oublier de rebuild votre image et de recréer votre stack.
  
  • cloud/2017/tp_swarm2.1515765228.txt.gz
  • Dernière modification : 2018/01/12 14:53
  • de fabien.rico