Mettre des ressources à la disposition du projet Folding@Home contre le COVID-19 ...
Tags: covid, kubernetes, docker, foldingathome
Published: 2020-03-24 20:17:07

![](https://telegra.ph/file/671abff4d6ad88559235a.png)

Impliqué depuis 15 jours dans la recherche contre le coronavirus SARS-CoV-2, le projet de recherche médicale Folding@Home ne cesse de gagner des utilisateurs. 400 000 nouveaux participants l'ont rejoint depuis deux semaines, lui conférant une puissance de calcul de 470 pétaflops... soit plus que les sept supercalculateurs les plus puissants du monde réunis. De quoi accélérer l'identification de nouvelles pistes pour vaincre la maladie.

![](https://telegra.ph/file/0915256b347ca868a1f37.jpg)

Créé dans les années 2000 et historiquement soutenu par [Google](https://www.usine-digitale.fr/google/), Folding@Home repose sur la puissance de calcul non-utilisée des ordinateurs personnels d'utilisateurs volontaires. Le logiciel est disponible pour Windows, macOS et Linux. En cumulant la puissance de milliers d'ordinateurs, le projet permet d'accélérer les calculs liés à la recherche sur le repliement des protéines, qui sont très complexes.

<https://foldingathome.org/>

![](https://telegra.ph/file/8922578e143b4ef630e20.jpg)

Le projet met à disposition des paquets pour Windows, Linux et Mac :

<https://foldingathome.org/start-folding/>

![](https://telegra.ph/file/68413823d7f82a13e0672.jpg)

![](https://telegra.ph/file/96d92aabe37a8f7d44afc.jpg)

Mais il y a aussi des Virtual Appliances comme celle offerte par la communauté VMware :

<https://flings.vmware.com/vmware-appliance-for-folding-home>

![](https://telegra.ph/file/691a3e7555ca602a6aa43.jpg)

Je démarre en ce qui me concerne de l'image Docker fournie par Percona sur son site web :

<https://www.percona.com/blog/2020/03/20/covid-19-one-way-to-take-action/>

![](https://telegra.ph/file/276ec8ff71e36eb6a5b9e.jpg)

Pour savoir si on travaille sur un projet lié à COVID-19, il faut exécuter ses containers sur l'un de ces projets en fonction de l'utilisation ou non de GPU :

-   Processeur: 14328 - 14329 - 14530 - 14531
-   GPU: 11741 à 11764

Je démarre d'un Scale Set de machines Ubuntu 18.04 LTS 64 Bits dans Azure :

![](https://telegra.ph/file/de60452eb1dcf05324cb1.jpg)

`#!/bin/bash
curl -fsSL https://get.docker.com | sh -
curl -s https://install.zerotier.com | sudo bash
zerotier-cli join <NETWORK ID>`

Avec un premier cluster de noeuds maîtres pour Rancher avec Kubernetes :

![](https://telegra.ph/file/e7f104d32b3c1a0ac688e.jpg)

Et j'y déploie pour le premier noeud, un serveur Rancher :

`sudo docker run -d --restart=always -p 80:80 -p 443:443 -v /opt/rancher:/var/lib/rancher rancher/rancher:latest`

Je configure le serveur rancher pour créer un nouveau cluster Kubernetes :

![](https://telegra.ph/file/6543bd510e73596ecbbd1.jpg)

et j'applique l'initialisation du cluster pour les futurs trois noeuds maîtres :

![](https://telegra.ph/file/c41ce9d9ffc84685a55c5.jpg)

Le cluster étant actif, je peux ajouter un nouveau Scale Set en Spot Instances (machines éphémères en fonction de la puissance de calcul de la région où elles se trouvent) en utilisant ce petit gabarit :

![](https://telegra.ph/file/35891655109a8ee31831d.jpg)

![](https://telegra.ph/file/609d0b863537ede4e0e43.jpg)

Et j'en lance une centaine avec ce script pour cloud-init qui utilise un réseau privé dans ZeroTier ...

`#!/bin/bash 
curl -fsSL https://get.docker.com | sh - 
curl -s https://install.zerotier.com | sudo bash 
zerotier-cli join <NETWORK ID> 
sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.3.5 --server https://192.168.191.196 --token br9fsj4xrvzxbpjj42cs6ct5jqppvf6x72fvzbqd444695xxl82z4p --ca-checksum e9604b0d41fc6e404fe5770215b67edb34f3390e8a33e3e63430b58f5e55b021 --worker`

![](https://telegra.ph/file/61bd85f30a8d6e6b238bb.jpg)

![](https://telegra.ph/file/c1d06b9c3f0c1cdb9ec41.jpg)

Je configure dans le tableau de bord de rancher l'insertion de ces nouveaux noeuds dans le cluster Kubernetes :

![](https://telegra.ph/file/38a5783324970c140746e.jpg)

qui apparaissent comme Workers :

![](https://telegra.ph/file/4571120b0eefd7dc71464.jpg)

![](https://telegra.ph/file/cd656e1f9d81ef2702962.jpg)

Ainsi que dans ZeroTier (puisque ces instances ne sont pas pourvues d'adresses IP publiques) :

![](https://telegra.ph/file/0ecb1ebc49c06818aede6.jpg)

Je peux lancer les containers du projet Folder@Home à l'attention de quatre projets liés à la lutte COVID-19 en CPU dans le cluster Kubernetes :

![](https://telegra.ph/file/105ebe48b6eebb6fa8704.jpg)

Je précise les variables pour l'exécution des containers :

![](https://telegra.ph/file/4b72cac9cddb296d6b2ea.jpg)

qui sont alors en exécution :

![](https://telegra.ph/file/0e296d2f0d803fc1f165f.jpg)

![](https://telegra.ph/file/4a8832e156a312210c04b.jpg)

![](https://telegra.ph/file/533140792bf639567712d.jpg)

![](https://telegra.ph/file/7e8fd7c965bf781ebfa07.jpg)

![](https://telegra.ph/file/1d8505d47ee2f18bc21fc.jpg)

Plus d'informations sur la FAQ du projet Folding@home :

<https://foldingathome.org/support/faq/>

![](https://telegra.ph/file/4d16b3c24baef52ff94f1.png)