Table of Contents
Introduction
Rancher est une plateforme de gestion de conteneurs qui permet de gérer facilement des clusters de conteneurs en utilisant Docker. La version 1 de Rancher est compatible avec la version 2 de docker-compose, ce qui permet de bénéficier de toutes les fonctionnalités de Rancher tout en utilisant les fichiers de configuration de docker-compose.
L’objectif étant que, comme la plupart des développeurs connaissent bien la syntaxe de docker-compose, ils puissent continuer d’utiliser cet outil pour déployer rapidement, à la volée, leurs applications sur l’infrastructure Rancher v1 (bien qu’obsolète) compatible docker-compose.
Notes: Rancher v1 n’étant plus maintenu, cela constitue une solution « intermédiaire », d’autre part, la version de rancher-compose ne supporte que la syntaxe 2.0 maximum de docker-compose.
Pourquoi utiliser Rancher v1 au lieu de Rancher v2 ?
- Compatibilité : Si vous avez déjà des fichiers de configuration de docker-compose en version 2, vous pouvez les utiliser directement avec Rancher v1, sans avoir à les convertir en utilisant la version 2 de docker-compose.
- Stabilité : Si vous avez déjà une infrastructure en place basée sur Rancher v1 et que vous êtes satisfait des fonctionnalités et de la performance de votre plateforme, il peut être préférable de continuer à utiliser Rancher v1 plutôt que de migrer vers une version plus récente qui pourrait entraîner des modifications ou des perturbations dans votre infrastructure.
- Fonctionnalités : Si vous utilisez déjà les fonctionnalités de Rancher v1 pour gérer vos conteneurs et vos services, et que vous ne voyez pas l’intérêt de migrer vers Rancher v2.
Il est important de noter que Rancher v2 apporte de nouvelles fonctionnalités et améliorations par rapport à Rancher v1, et qu’il peut être préférable de migrer vers Rancher v2 dans certains cas, en particulier pour des projets de grande envergure ou pour bénéficier de nouvelles fonctionnalités. Il est donc important d’évaluer vos besoins et de considérer les avantages et les inconvénients de chaque version avant de prendre une décision.
Principales fonctionnalités
Gestion des conteneurs
Avec Rancher, vous pouvez facilement gérer vos conteneurs en les déployant, en les arrêtant, en les redémarrant et en les supprimant. Vous pouvez également visualiser les logs des conteneurs et les statistiques de performances en temps réel.
Gestion des clusters
Rancher vous permet de gérer plusieurs clusters de conteneurs à partir d’une seule interface. Vous pouvez ajouter des noeuds à un cluster existant, en supprimer, et gérer les ressources allouées à chaque noeud.
Haute disponibilité
Rancher vous permet de mettre en place une haute disponibilité pour vos conteneurs en utilisant des stratégies de répartition de charge, des politiques de tolérance aux pannes et des stratégies de récupération après incident.
Gestion des services
Avec Rancher, vous pouvez gérer des services de conteneurs en les déployant, en les arrêtant, en les redémarrant et en les supprimant. Vous pouvez également visualiser les logs des services et les statistiques de performances en temps réel.
Intégration avec les outils de DevOps
Rancher intègre des outils de DevOps tels que Jenkins, GitLab et autres, ce qui vous permet de gérer vos conteneurs et vos services de manière intégrée avec vos workflows de développement.
Cas d’usage
Déploiement de microservices
Rancher vous permet de déployer facilement des microservices en utilisant des fichiers de configuration de docker-compose. Vous pouvez définir des dépendances entre les services et gérer leur état de manière centralisée.
Mise en place d’une haute disponibilité
En utilisant les stratégies de répartition de charge et de tolérance aux pannes intégrées à Rancher, vous pouvez facilement mettre en place une haute disponibilité pour vos conteneurs et vos services.
Gestion de clusters de conteneurs
Rancher vous permet de gérer facilement plusieurs clusters de conteneurs à partir d’une seule interface. Vous pouvez ajouter des noeuds à un cluster existant, en supprimer, et gérer les ressources allouées à chaque noeud. Cela facilite la gestion de grandes infrastructures de conteneurs, en vous permettant de déployer et de gérer des milliers de conteneurs à partir d’un seul endroit.
Installation de Rancher
L’installation de Rancher est assez simple. Il existe plusieurs options pour installer Rancher, comme l’utilisation d’un conteneur Docker, l’installation sur une machine virtuelle ou l’utilisation de Rancher comme une solution dans le cloud.
Pour installer Rancher en utilisant un conteneur Docker, vous pouvez utiliser la commande suivante :
docker run -d --restart=unless-stopped -p 8080:80 rancher/rancher:v1.6
Cela démarrera un conteneur Rancher sur le port 8080 de votre hôte. Vous pouvez ensuite accéder à l’interface web de Rancher en utilisant l’URL http://your-host-ip:8080
Gestion des certificats
Rancher vous permet de gérer facilement les certificats pour vos conteneurs et vos services. Vous pouvez utiliser des certificats existants ou en créer de nouveaux à partir de l’interface web de Rancher.
Gestion des réseaux
Rancher vous permet de gérer les réseaux de conteneurs de manière centralisée. Vous pouvez créer des réseaux privés pour vos conteneurs, configurer des ponts entre des réseaux et gérer les adresses IP des conteneurs.
Gestion des volumes
Rancher vous permet de gérer les volumes de conteneurs de manière centralisée. Vous pouvez créer des volumes pour vos conteneurs, les attacher à des conteneurs spécifiques et gérer les permissions d’accès aux volumes.
Sécurité
Rancher prend en charge les fonctionnalités de sécurité telles que l’authentification et l’autorisation. Il permet de gérer les utilisateurs et les rôles, et de configurer des stratégies de sécurité pour vos conteneurs et vos services.
En utilisant Rancher v1 pour docker-compose v2, vous pouvez gérer efficacement vos conteneurs et vos services en utilisant des fichiers de configuration de docker-compose standard. La plateforme est facile à utiliser, offre une grande flexibilité et de nombreuses fonctionnalités avancées pour gérer les clusters de conteneurs, la haute disponibilité, les réseaux, les volumes et la sécurité.
Wildcard DNS
Notes: Univention est parfait pour gérer les entrées DNS avec une interface Web intuitive et donc pour mettre en place un wildcard DNS rapidement.
Pour configurer un wildcard DNS pour Rancher v1, vous pouvez suivre les étapes suivantes :
- Créer un enregistrement DNS : Créez un enregistrement DNS de type A ou CNAME avec un nom de domaine wildcard (par exemple, *.dev.example.com) et pointant vers l’adresse IP ou l’URL de votre serveur Rancher. Cela permettra à tous les sous-domaines de ce domaine de pointer vers votre serveur Rancher.
- Configurer l’application Rancher : Dans l’interface web de Rancher, accédez aux paramètres de l’application et configurez le domaine wildcard que vous venez de créer comme nom de domaine principal pour l’application.
- Activer le support SSL : Pour activer le support SSL pour votre nom de domaine wildcard, vous pouvez utiliser un certificat SSL auto-signé ou un certificat SSL émis par une autorité de certification (CA) tierce. Ensuite, configurez Rancher pour utiliser ce certificat pour protéger les communications entre les clients et le serveur Rancher.
- Redémarrer Rancher : Une fois la configuration terminée, redémarrez l’application Rancher pour appliquer les modifications.
- Vérifiez la configuration : Vérifiez que votre nom de domaine wildcard est correctement configuré en accédant à l’application Rancher à l’aide d’un sous-domaine de ce domaine (par exemple, subdomain.example.com). Vous devriez être redirigé vers l’interface web de Rancher.
Utiliser Rancher Compose pour simplifier le déploiement d’applications avec Docker
Qu’est-ce que Rancher Compose ?
Rancher Compose est une alternative à Docker Compose qui facilite le déploiement d’applications. Il est compatible avec les versions V1 et V2 des fichiers docker-compose.yml
.
Points forts de Rancher Compose
- Simplicité : Interface utilisateur intuitive et configuration facile.
- Compatibilité : Compatible avec les versions V1 et V2 de
docker-compose.yml
. - Scalabilité : Facilement extensible pour des environnements plus complexes.
Configuration de base
Installation de Rancher CLI
Il faut d’abord vous connecter pour télécharger les binaires en vous rendant sur http://your-host-ip:8080 via votre nom d’utilisateur et votre mot de passe.
Vous devrez ensuite télécharger le binaire rancher CLI et l’installer sur votre poste. Il suffit de cliquer en bas à droite de la page Web pour le télécharger :
Une fois le binaire téléchargé, vous pouvez le mettre dans votre PATH. En l’occurrence, on le copie dans C:\Windows\system32 :
Génération de la clé API d’accès
Pour utiliser Rancher Compose, vous aurez besoin d’une clé API. Voici comment la générer :
- Cliquez sur « API » dans l’interface utilisateur de Rancher.
- Sélectionnez « Ajouter une clé API utilisateur ».
- Donnez un nom et une description à votre clé API.
- Sauvegardez les informations de la clé dans un espace sécurisé.
Note de sécurité : Assurez-vous de sauvegarder votre
Access key
et votreSecret key
dans un espace sécurisé.
Configuration sur son poste en ligne de commande
On ouvre un terminal sur son poste et on tape :
rancher config
On indique alors les paramètres nécessaires :
URL : http://your-ip:8080/v2-beta
Access key : votre clé d’accès précédemment générée
Secret key : votre clé secrète précédemment générée
Déploiement d’une application
Exemple basique de déploiement d’un serveur Web
Prenons un exemple de docker-compose basique type hello-word :
version: '2' services: webserver: image: httpd ports: - 80 labels: io.rancher.container.pull_image: always
Comme votre environnement est configuré, le déploiement d’une application va être extrêmement simple :
- Créer un répertoire du nom du projet (ex : hello-world)
- Renommer votre docker-compose.yml en rancher-compose.yml et copier le dans ce répertoire
- Allez en ligne de commande dans ce répertoire puis faites « rancher up »
- Votre stack se monte toute seule
Publication de votre application avec création DNS automatique (stack reverse-proxy)
Une fois votre stack monté, vous pouvez publier votre application simplement en utilisant la fonction de load-balancer intégré (haproxy). Dans cet exemple, nous avons créé une stack « reverse-proxy » pour publier les applications :
Vous pouvez utiliser au choix selon votre environnement n’importe quel DNS wildcard précédemment défini *.dev.your-domain.fr ou *.qual.your-domain.fr.
Evidemment vous pouvez y indiquer autant d’entrée que souhaitée.
Attention à ne pas effacer la stack « reverse-proxy » sinon il faudra la recréer !
Votre appli sera alors directement accessible à tous pour effectuer vos tests ou vos qualifications :
Vous pourriez aussi le faire via des commandes rancher-compose (à adapter) :
services: haproxy: image: rancher/lb-service-haproxy ports: - "80:80" - "443:443" labels: io.rancher.scheduler.global: 'true' io.rancher.loadbalancer.target.your-service-name: hostname/path=yourdomain.com
Conclusion
En conclusion, Rancher v1 pour docker-compose v2 est une solution complète pour gérer vos conteneurs en utilisant les fichiers de configuration de docker-compose. Il vous permet de bénéficier de toutes les fonctionnalités de Rancher, de faciliter la gestion de vos clusters de conteneurs, de mettre en place une haute disponibilité pour vos conteneurs, de gérer vos services de manière intégrée avec vos workflows de développement et de bénéficier d’une sécurité renforcée.