Aller au contenu

Exécuter Kubernetes localement grâce à minikube et ngrok

16 mai 2024

Greg Schofield

Dans cet article, nous présentons la marche à suivre pour créer un bac à sable de développement Kubernetes avec minikube. Nous vous montrons également comment utiliser ngrok pour exposer une grappe minikube et rendre votre grappe Kubernetes accessible depuis Internet.

Pourquoi exposer minikube à l’Internet?

Avant de plonger dans la configuration de minikube au moyen d’un tunnel ngrok, voyons les avantages de cette approche.

Connecter minikube à un tunnel ngrok permet de :

  • Tester certaines plateformes SaaS infonuagiques comme WeaveWorks ou OctopusDeploy sans avoir besoin d’une grappe Kubernetes infonuagique.
  • Exécuter des preuves de concept (PoC) avec différents contrôleurs d’Ingress.
  • Développer et tester des manifestes Kubernetes sur une grappe éphémère.

Voyez-le comme un bac à sable de développement que vous pouvez installer gratuitement sur votre propre ordinateur!

Prérequis

Pour suivre ce tutoriel, votre ordinateur doit être équipé d’au moins :

  • 2 processeurs ou plus
  • 4 Go de mémoire libre
  • 20 Go d’espace disque disponible
  • kubectl – la CLI de Kubernetes
  • virtualbox – Nous recommandons virtualbox, car il s’agit d’un pilote minikube bien supporté sur Mac, Linux et Windows.
  • ngrok – Sert à exposer l’API de Kubernetes à Internet

Installer minikube

L’installation de minikube est facile puisqu’il s’agit d’un exécutable autonome. Les versions Mac et Windows peuvent toutes deux être officiellement installées à partir d’un gestionnaire de paquets. Sur une distribution Linux, il est conseillé d’utiliser curl.

<script src="https://gist.github.com/ShivKamal/61fb436b8452cc18c3f882c45158c438.js"></script> 

 

Démarrer la grappe

Utilisez l’option --driver=virtualbox pour indiquer à minikube le pilote à utiliser :

<script src="https://gist.github.com/ShivKamal/fb5a09d8a7dae59b75ccfdc7c4fa1e3f.js"></script>

La commande config set driver vous permet de définir la valeur par défaut afin que vous puissiez omettre l’indicateur la prochaine fois :

<script src="https://gist.github.com/ShivKamal/68cd0a0ca4cae37bbb4c11f0969f8b26.js"></script>

À ce stade, vous devez utiliser minikube status et vous assurer que vous obtenez ceci :

<script src="https://gist.github.com/ShivKamal/5507c04e9b268efcffa44d9af289fd6b.js"></script>

 

Exposer l’API de Kubernetes à Internet

Maintenant que notre grappe fonctionne localement, nous pouvons utiliser ngrok pour la rendre accessible sur Internet, afin de tester l’intégration avec des outils d’intégration continue (CI) ou d’essayer une plateforme SaaS gratuitement.

La première chose à faire est d’utiliser kube-proxy pour envoyer des requêtes à l’API depuis localhost :

<script src="https://gist.github.com/ShivKamal/3dc339a61570ed66427f2a589f0c694d.js"></script>

Ensuite, nous pouvons ouvrir un tunnel ngrok (le port 8001 est le port par défaut de l’API Kubernetes) :

<script src="https://gist.github.com/ShivKamal/47ae826ce13f4c58b66a8df60aa08b2e.js"></script>

L’interface utilisateur de ngrok affichera une adresse HTTPS pointant directement vers le port API de votre minikube. Vous pouvez maintenant utiliser cette URL pour exécuter des commandes kubectl.

Vous Avez un Projet?