Rancher Desktop, la meilleure alternative à Docker Desktop
Publié le 14 septembre 2022
Par Alexandre DA SILVA
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.
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 concernant les ressources pour la machine virtuelle
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 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
Vous pouvez voir, sur le dashboard Rancher, vos différents services et leurs détails :
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 DA SILVA
Partager l'article