VT2020-Peloton-Demo: Difference between revisions
Line 61: | Line 61: | ||
On commence par spécifier le pool de ressources et la spec du programme : |
On commence par spécifier le pool de ressources et la spec du programme : |
||
<pre>$ bin/peloton job create /HelloWorldPool example/helloworld_job.yaml |
<pre>$ bin/peloton job create /HelloWorldPool example/helloworld_job.yaml |
||
Job 3a6d6cfe-4b25-4137-af65-61d3070d4ac3 created</pre> |
|||
⚫ | |||
⚫ | |||
<pre>name: HelloWorld |
<pre>name: HelloWorld |
Revision as of 22:32, 16 January 2021
Créer et démarrer un minicluster en local
Un minicluster peut être lancé localement sur une machine. Il se compose de composants Peloton ainsi que de dépendances comme Zookeeper, Cassandra, Mesos master et agents. Un minicluster lance tous ces composants via un Docker Engine qui doit être installé au préalable.
Pour lancer un minicluster il suffit de suivre les étapes suivantes :
- Installer docker engine (version 1.12.1 minimum)
- Installer le package python
docker-py
:
$ pip install docker-py
- Récupérer la dernière image Peloton de docker-hub :
$ docker pull uber/peloton
- Lancer le minicluster localement :
$ PELOTON=app make minicluster
Installer Peloton CLI
Le package Peloton CLI n'étant pas disponible, il faut build peloton localement. Pour savoir comment configurer l'environnement et construire le binaire Peloton CLI, suivre les instructions se trouvant dans Peloton Developer Guide.
$ make
Peloton CLI est disponible ici :
$ {$home}/bin/peloton
Example HelloWorld
Créer un pool de ressources
Il est nécessaire de disposer d'un pool de ressources avant de commencer à travailler dans un cluster Peloton. Chaque pool de ressources spécifie la réservation, la limite et les parts des ressources pour une organisation ou une équipe. Voici un exemple de spécification pour un pool de ressources qui réserve 12 cœurs de CPU, 4 Go de mémoire et 2 GPU :
name: HelloWorldPool owningteam: MyTeam ldapgroups: - MyGroup description: "My first resource pool on Peloton" resources: - kind: cpu reservation: 12 limit: 24 - kind: memory reservation: 4096 limit: 8192 share: 1 - kind: gpu reservation: 2 limit: 4 share: 1
Pour créer un pool de ressources :
$ bin/peloton respool create /HelloWorldPool example/helloworld_pool.yaml Resource Pool fa651fc9-086d-4e8f-a823-d6bf6f144481 created at /HelloWorldPool
Créer un job
Un job est un ensemble d'instances dans Peloton. Pour en créer un, il faut disposer d'un pool de ressources et d'une spécification. Le pool de ressources spécifie où les ressources sont comptabilisées pour le programme à exécuter. La spécification du programme décrit sa configuration détaillée, comme les limites des ressources, l'image du conteneur, etc.
Voici un exemple de spécification de programme avec 10 instances. On commence par spécifier le pool de ressources et la spec du programme :
$ bin/peloton job create /HelloWorldPool example/helloworld_job.yaml Job 3a6d6cfe-4b25-4137-af65-61d3070d4ac3 created
Puis on fait en sorte que chaque instance affiche un message et se met ensuite en veille pendant 1 minute
name: HelloWorld owningteam: MyTeam ldapgroups: - MyGroup description: "A Hello World batch job on Peloton" instancecount: 10 defaultconfig: resource: cpulimit: 1 memlimitmb: 1024 disklimitmb: 1024 fdlimit: 10 container: type: 1 docker: image: "debian" parameters: - key: env value: MESSAGE=HelloWorld - key: env value: SLEEP_SECONDS=300 volumes: - containerpath: /tmp hostpath: /tmp mode: 1 command: shell: true value: 'echo $MESSAGE && sleep $SLEEP_SECONDS'