Rancher Desktop, la meilleure alternative à Docker Desktop

Publié le 14 septembre 2022

Par Alexandre DA SILVA

Alexandre
Rancher Desktop   Logo

Introduction

Depuis le 31 Août 2021, Docker a décidé de changer ses conditions d’utilisation concernant l’application Docker Desktop.

Docker Desktop est une application facile à installer pour votre environnement Mac, Linux ou Windows qui vous permet de créer et de partager des applications et des microservices conteneurisés. Il fournit une interface simple qui vous permet de gérer vos conteneurs, applications et images directement depuis votre machine sans avoir à utiliser la CLI pour effectuer des actions principales.

Ce qui a changé ? L'utilisation commerciale de Docker Desktop dans les grandes entreprises (plus de 250 employés OU plus de 10 millions de dollars de revenus annuels) nécessite un abonnement payant. L’usage reste gratuit pour les entreprises en dessous des 250 employés OU moins de 10 millions de dollars de revenus annuels, ainsi que pour un usage personnel et projet open-source. 

Suite à cette annonce, une question se pose (et chez Koul on se l’est posée). Des alternatives existent-elles à Docker Desktop ? Oui il y en a quelques unes ! On peut citer notamment Podman, Colima, Minikube ou encore Rancher Desktop. Découvrons ensemble Rancher Desktop (notre coup de coeur) !

Gestion des conteneurs et Kubernetes sur le bureau

Rancher Desktop est une application Electron open-source disponible sur Mac, Windows et Linux, dont la logique métier principale est écrite en TypeScript et JavaScript. Il exploite plusieurs autres technologies pour fournir les éléments de la plate-forme, notamment k3s, kubectl, nerdctl WSL, QEMU, etc.

L’application permet d’avoir un environnement Kubernetes en local et de le configurer facilement. Pour rappel, Kubernetes est une plateforme d’orchestration de conteneurs. Vous pouvez choisir la version de Kubernetes que vous souhaitez exécuter.

En outre, elle permet également la gestion de conteneurs et d’images. Vous pouvez build, pull, push des images et lancer des conteneurs avec le container runtime de votre choix : dockerd ou containerd. De plus, Rancher Desktop est compatible avec Dockerfile et Docker Compose.

Schema Explicatif Du Fonctionnement De Rancher Desktop

Schéma explicatif du fonctionnement de Rancher Desktop sur Mac / Linux et Windows.

Rancher Desktop utilise une machine virtuelle sur laquelle vous aurez une distribution Kubernetes et un container runtime pour créer et faire fonctionner vos conteneurs. La machine virtuelle est gérée par Lima/QEMU sur MacOs et Linux et WSL2 pour Windows.

L’application embarque l’outil de ligne de commande kubectl et Helm (package manager) pour gérer vos clusters Kubernetes.

Vous aurez également accès à des CLI tels que nerdctl et Docker CLI pour communiquer avec le container runtime selon votre choix containerd ou dockerd.

Interface et configurations générales

 

L’application fournit également une interface graphique permettant de changer facilement votre version de Kubernetes, le container runtime, les ressources de la VM, les options de port forwarding et la gestion de vos images.

Dans les préférences de l’application, il vous est proposé de choisir et de modifier facilement votre version de Kubernetes, d’activer ou non Traefik.

Fenêtre Des Préférences De Rancher Desktop

Fenêtre des préférences de Rancher Desktop

Configuration Des Ressources Pour La Machine Virtuelle

Fenêtre des préférences de Rancher Desktop concernant les ressources pour la machine virtuelle

Fenête Des Préférences Du Container Runtime De Rancher Desktop

Fenêtre des préférences de Rancher Desktop permettant de choisir le container runtime

Comment installer Rancher Desktop sur votre poste.

La documentation est relativement bien fournie à ce sujet, vous pourrez trouver un guide d’installation selon votre système d’exploitation sur ce lien : https://docs.rancherdesktop.io/getting-started/installation/

Mais résumons les gros points : 

Sous macOS

Rancher Desktop nécessite les éléments suivants sur macOS :
- macOS Catalina 10.15 ou supérieur.
- Apple Silicon (M1) ou processeur Intel avec VT-x.
- Connexion Internet persistante.
Il est également recommandé d'avoir :
- 8 Go de mémoire
- 4 processeurs
Des ressources supplémentaires peuvent être requises en fonction des charges de travail que vous prévoyez d'exécuter.

Sous Windows
Si vous êtes sur Windows, quelques manipulations peuvent être nécessaires. Assurez-vous d’avoir :

La version Windows 10 build 1909 supérieure ou Windows 11
WSL2 (Windows Subsystem for Linux) activé. Pour plus de détail, dirigez vous sur ce lien https://docs.microsoft.com/fr-fr/windows/wsl/install
L’option de virtualisation activée au niveau du BIOS. En fonction du processeur, AMD-V ou Intel VT-x

Sous Linux
Si vous êtes sur Linux, assurez vous d’avoir :

Rancher Desktop requiert les éléments suivants sous Linux :
- Une distribution qui peut installer des packages .deb ou .rpm, ou AppImages.
- Une connexion Internet persistante.
- Un processeur x86_64 avec AMD-V ou VT-x.
- Accès en lecture-écriture sur /dev/kvm. Pour plus de détails, dirigez vous sur ce lien https://docs.rancherdesktop.io/getting-started/installation#linux
Il est également recommandé d'avoir :
- 8 Go de mémoire
- 4 processeurs
Des ressources supplémentaires peuvent être requises en fonction des charges de travail que vous prévoyez d'exécuter.

Rendez vous sur le site https://rancherdesktop.io  afin de télécharger la version correspondante.

Avant de commencer

Attention, si vous avez déjà Docker Desktop sur votre poste, assurez-vous de le stopper. Rancher Desktop et Docker Desktop ne peuvent pas fonctionner en même temps.

Après l’installation, lors du premier lancement de Rancher Desktop, Kubernetes est activé par défaut et containerd choisi en tant que container runtime.

Dans cette article, nous vous présenterons la partie avec Kubernetes et Traefik, dans un premier temps. Ensuite, nous présenterons l’utilisation avec la partie container seule dans ce second article

Déploiement d'un service via Kubernetes (Helm) et Traefik

Afin d’avoir un exemple concret d’utilisation, nous allons installer un service « whoami » via Helm. Le projet « whoami » est un petit serveur web en Go qui imprime les informations du système d'exploitation et la requête HTTP à la sortie

Ce service utilisera Traefik et son contrôleur Ingress, présent par défaut. Pour informations, un ingress est un objet Kubernetes relativement simple qui définit des règles de routage applicatives

(Voir la documentation https://doc.traefik.io/traefik/providers/kubernetes-ingress/)

Dans un premier temps nous allons ajouter notre repo helm et mettre à jour nos dépendances :

helm repo add cowboysysop https://cowboysysop.github.io/charts/ && helm repo update

Notre host par défaut sur MacOS est « rancher.localhost », nous décidons que notre service whoami aura un Ingress avec comme host « whoami.rancher.localhost » 

Voici 2 exemples de déploiement du service, en utilisant les entrypoints fournis par Traefik (voir documentation : https://doc.traefik.io/traefik/routing/entrypoints/)

Exemple sur le port 443 (https)

Lancer la commande sur votre terminal et accédez à la page https://whoami.rancher.localhost/ 

helm upgrade --install --wait --debug whoami-secure cowboysysop/whoami \
  --set ingress.enabled=true \
  --set ingress.hosts[0].host="whoami.rancher.localhost" \
  --set ingress.pathType=ImplementationSpecific \
  --set ingress.hosts[0].paths.path=/ \
  --set ingress.tls[0].hosts[0]="whoami.rancher.localhost" \
  --set ingress.annotations."traefik\.ingress\.kubernetes\.io\/router\.entrypoints"=websecure \
  --set ingress.annotations."kubernetes\.io/ingress\.class"=traefik

Service Whoami Déployé En Localhost Via Helm

Service whoami déployé en localhost via Helm sur le port 443

Exemple sur le port 80 (http)

Lancer la commande sur votre terminal accédez à la page http://whoami.rancher.localhost/ 

helm upgrade --install --wait --debug whoami cowboysysop/whoami \
  --set ingress.enabled=true \
  --set ingress.hosts[0].host="whoami.rancher.localhost" \
  --set ingress.pathType=ImplementationSpecific \
  --set ingress.hosts[0].paths.path=/ \
  --set ingress.annotations."traefik\.ingress\.kubernetes\.io\/router\.entrypoints"=web \
  --set ingress.annotations."kubernetes\.io/ingress\.class"=traefik

Service Whoami Déployé En Localhost Via Helm Sur Le Port 80

Service whoami déployé en localhost via Helm sur le port 80

Vous pouvez voir, sur le dashboard Rancher, vos différents services et leurs détails :

Dashboard Rancher Desktop   Section Services

Dashboard de Rancher, sur Rancher Desktop - Section Services

Pour supprimer vos 2 services :

helm del whoami && helm del whoami-secure

Conclusion et suite

Nous venons d'apprendre ce qu'est Rancher Desktop, comment l'installer et le configurer sur nos postes.

Ensuite, nous avons vu comment installer des services via Helm et utiliser l'Ingress Traefik, fourni grâce à K3s.

Nous allons voir dans le second article, la partie des containers runtime, qui gèrent les images, le cycle de vie complet des containers mais aussi la partie stockage et réseau.

Enfin, nous ferons une conclusion générale sur cette alternative qu'est Rancher Desktop.


Alexandre

Alexandre DA SILVA

Partager l'article

Partager sur linkedinPartager sur facebook

Pour aller plus loin...

Rancher Desktop   Container Runtime

Déploiement de container facilement avec Rancher Desktop

Technologie

15/09/2022

Nous avons vu précédemment que nous avions le choix entre containerd et dockerd lors de la configuration mais quelle est la différence entre les deux ?

Parlons de votre projet

Footer image
Logo Koul Menu Blanc
9 Place Royale, 51100 Reimscontact@koul.io
BlogInstagramFacebookLinkedin
À propos
Qui sommes-nous ?L'histoireNos métiersNos projetsNous contacter
Le concentré d'actualités KOUL

Une fois par mois, des nouveautés et conseils en stratégie digitale, dans votre boîte mail.

Vous pouvez vous désabonner à tout moment

KOUL 2022
Mentions légalesCGV