Déployer Rancher 1.x en cinq minutes

Déployer Rancher 1.x en cinq minutes

Comme premier article technique j’ai décidé de vous expliquer comment déployer une serveur Rancher avec Docker en quelques minutes.

Rancher, kezako?

Rancher est un projet open-source qui permet de gérer et d’orchestrer des containers Docker à travers une interface graphique très simple. Ils ont mis au point leur orchestrateur de container maison nommé cattle qui peut être utilisé sur la version 1.x de rancher. La version 2.x de rancher utilise l’orchestrateur de container Kubernetes qui apporte beaucoup de modification, je n’en parlerais donc pas dans cet article.

Préparation des instances

Pour ce test, je vais utiliser un serveur maître et deux serveur esclave. Le serveur maître aura la charge d’héberger l’interface utilisateur de Rancher et les esclaves quand à eux permettront de fournir des ressources de compute et de stockage pour faire tourner les conteneurs Docker.

J’ai utilisé le cloud de google cloud google compute avec 3 serveurs de type n1-standard-2 sous Ubuntu 16.04LTS basé en europe.

Si vous avez déjà configuré votre interface de commande gcloud, vous pouvez adaptez la commande ci-dessous pour lancer vos trois instances :

gcloud compute instances create rancher-master rancher-slave-1 rancher-slave-2 --zone=europe-west1-b --machine-type=n1-standard-1 --subnet=default --tags=http-server,https-server --image=ubuntu-1804-bionic-v20190514 --image-project=ubuntu-os-cloud --boot-disk-size=20GB --boot-disk-type=pd-standard

Résultat

Created [https://www.googleapis.com/compute/v1/projects/rancher-test-204217/zones/europe-west1-b/instances/rancher-master].
Created [https://www.googleapis.com/compute/v1/projects/rancher-test-204217/zones/europe-west1-b/instances/rancher-slave-1].
Created [https://www.googleapis.com/compute/v1/projects/rancher-test-204217/zones/europe-west1-b/instances/rancher-slave-2].
NAME             ZONE            MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP     STATUS
rancher-master   europe-west1-b  n1-standard-1               10.132.0.4   35.205.83.158   RUNNING
rancher-slave-1  europe-west1-b  n1-standard-1               10.132.0.3   104.199.60.102  RUNNING
rancher-slave-2  europe-west1-b  n1-standard-1               10.132.0.2   35.205.28.135   RUNNING

Installer Docker.io

Maintenant que nos serveurs sont up, on installe Docker.

Installation de Docker (à faire sur les 3 serveurs):

~#gcloud compute ssh rancher-master
ivan@rancher-master:~# sudo apt update && sudo apt install -y docker.io

~#gcloud compute ssh rancher-slave-1
ivan@rancher-slave-1:~# sudo apt update && sudo apt install -y docker.io

~#gcloud compute ssh rancher-slave-2
ivan@rancher-slave-2:~# sudo apt update && sudo apt install -y docker.io

Déployer Rancher 1.X avec docker

Rien de plus simple qu’une commande docker pour lancer un serveur rancher :

Si votre version de docker est 18.09+, il vous faudra lancer la version 1.6.26 de rancher.

docker run -d --restart unless-stopped -p 80:8080 rancher/server:v1.6.26

Vous pouvez également exporter, sur un répertoire de votre instance, la base de données MySQL qui est intégrée dans le container rancher/server. Pour cela, il vous faudra rajouter un volume en ajoutant le paramètre suivant : 

-v /mnt:/var/lib/mysql

et ainsi avoir la commande 

docker run -d --restart unless-stopped -v /mnt:/var/lib/mysql -p 80:8080 rancher/server:v1.6.26

Vous venez également d’exposer le port 8080 de votre dock rancher vers le port 80 de votre host! Vous pourrez donc accéder à l’interface graphique de rancher de façon non sécurisé en vous connectant à l’ip public de votre instance rancher-master, http://35.205.83.158 dans mon cas.

Ajouter les deux serveurs restant.

Maintenant que l’on a un serveur Rancher prêt à être utiliser, il va falloir ajouter nos deux serveurs slave.

Pour cela il faut cliquer sur le menu infrastructure, puis sur le bouton “Add Host”.

Lors du premier ajout, il vous sera demandé de valider l’url d’enregistrement des nodes. Pour des raisons de sécurité, il vaut mieux utiliser l’ip du réseau privé. C’est pourquoi dans mon exemple, vous trouverez l’ip privée de ma machine rancher-master : 10.142.0.2.

Vous pouvez maintenant ajouter des noeuds de type custom (je ne m’attarderais pas sur les autre type d’hosts dans cette article). Pour cela il vous suffi de copier/coller le contenu de l’étape 5 sur vos deux instance rancher-slave :

~#gcloud compute ssh rancher-slave-1
ivan@rancher-slave-1:~# sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.10 http://10.142.0.2/v1/scripts/B8BA2E8772A758EFC6AE8ABE:1514678400000:cQFHQfuVaIMXqxCMgxDipb10m8

~#gcloud compute ssh rancher-slave-2
ivan@rancher-slave-2:~# sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.10 http://10.142.0.2/v1/scripts/B8BA2E8772A758EFC6AE8ABE:1514678400000:cQFHQfuVaIMXqxCMgxDipb10m8

Vous devriez alors voir vos deux nœuds apparaître dans l’interface de rancher.

Prochaine étape il ne vous reste plus qu’a créer un service, mais ça  sera pour un autre article.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *