Rancher v1 pour docker-compose v2 : une solution complète pour le déploiement de vos environnements de développement (DevOps)

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 ?

  1. 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.
  2. 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.
  3. 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 :

  1. 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.
  2. 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.
  3. 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.
  4. Redémarrer Rancher : Une fois la configuration terminée, redémarrez l’application Rancher pour appliquer les modifications.
  5. 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 votre Secret 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.