Aller au contenu
medium

00 — Setup : Minikube, Helm et kubectl

6 min de lecture

Ce module installe l’environnement nécessaire à toute la formation. À la fin, vous aurez un cluster Kubernetes local prêt à recevoir la stack d’observabilité.

  • RAM : 8 Go minimum (16 Go recommandés)
  • CPU : 4 cœurs disponibles
  • Disque : 20 Go libres
Fenêtre de terminal
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
rm kubectl
kubectl version --client
Fenêtre de terminal
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
rm minikube-linux-amd64
minikube version
Fenêtre de terminal
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
helm version

Si vous avez cloné le dépôt, utilisez le script de vérification :

Fenêtre de terminal
git clone https://github.com/stephrobert/lab-observability.git
cd lab-observability
chmod +x 00-setup/verify.sh
./00-setup/verify.sh

Sortie attendue :

=== Vérification des prérequis ===
✅ minikube : minikube version: v1.37.0
✅ kubectl : error: unknown flag: --short
✅ helm : v4.1.0+g4553a0a
✅ docker : Docker version 29.1.3, build f52814d
=== Vérification des ressources ===
✅ RAM : 46 Go disponibles
✅ Tous les prérequis sont satisfaits !
Prochaine étape :
minikube start --memory=10240 --cpus=4 --driver=docker

Créez votre cluster avec suffisamment de ressources pour la formation :

Fenêtre de terminal
minikube start \
--memory=10240 \
--cpus=4 \
--driver=docker \
--kubernetes-version=v1.32.0

Vérifiez que le cluster fonctionne :

Fenêtre de terminal
kubectl cluster-info
kubectl get nodes

Sortie attendue :

Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 2m14s v1.32.0

Activez quelques addons qui faciliteront le travail :

Fenêtre de terminal
# Metrics server (pour kubectl top)
minikube addons enable metrics-server
# Dashboard Kubernetes (optionnel)
minikube addons enable dashboard
# Ingress (pour exposer les services)
minikube addons enable ingress

Vérifiez les addons actifs :

Fenêtre de terminal
minikube addons list | grep enabled

Ajoutez les repositories Helm nécessaires pour la formation :

Fenêtre de terminal
# Prometheus Community (Prometheus, Alertmanager)
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
# Grafana (Grafana, Loki, Tempo)
helm repo add grafana-community https://grafana-community.github.io/helm-charts
# OpenTelemetry
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
# Mettre à jour les repos
helm repo update

Vérifiez :

Fenêtre de terminal
helm repo list

Préparez les namespaces pour la formation :

Fenêtre de terminal
# Namespace pour les outils d'observabilité
kubectl create namespace observability
# Namespace pour l'application démo
kubectl create namespace otel-demo

Vérifiez :

Fenêtre de terminal
kubectl get namespaces
CommandeDescription
minikube startDémarrer le cluster
minikube stopArrêter (sans perdre les données)
minikube deleteSupprimer (reset complet)
minikube dashboardOuvrir le dashboard K8s
minikube service <svc> -n <ns>Ouvrir un service dans le navigateur
minikube tunnelExposer les LoadBalancer

Réduisez la mémoire allouée (minimum 4 Go, mais 8 Go recommandés) :

Fenêtre de terminal
minikube delete
minikube start --memory=4096 --cpus=2

Vérifiez que Docker est démarré :

Fenêtre de terminal
docker ps

Si Docker tourne mais Minikube ne le trouve pas, ajoutez votre utilisateur au groupe docker :

Fenêtre de terminal
sudo usermod -aG docker $USER
newgrp docker

Le cluster n’est pas démarré ou le contexte n’est pas bon :

Fenêtre de terminal
minikube start
kubectl config use-context minikube

Avant de passer au module suivant, vérifiez que tout fonctionne :

Fenêtre de terminal
# Cluster actif
kubectl get nodes
# Namespaces créés
kubectl get ns observability otel-demo
# Repos Helm configurés
helm repo list | grep -E "prometheus|grafana|open-telemetry"

Si tout est vert, vous êtes prêt pour le module suivant.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.