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 tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn