Helm et Métriques dans Kubernetes¶
Table des Matières¶
- Helm - Gestionnaire de paquets Kubernetes
- Concepts Clés
- Architecture Helm
- Utilisation Basique
- Métriques dans Kubernetes
- Metrics Server
- Prometheus et ServiceMonitor
Helm - Gestionnaire de paquets Kubernetes¶
Concepts Clés¶
Helm est le gestionnaire de paquets standard pour Kubernetes qui simplifie : - Le déploiement d'applications - La gestion des versions - La configuration des applications
Terminologie Helm¶
| Terme | Description |
|---|---|
| Chart | Package Helm contenant les ressources Kubernetes |
| Release | Instance déployée d'un Chart |
| Repository | Dépôt de Charts Helm |
| Values | Paramètres de configuration personnalisables |

Architecture Helm¶
Composants : - Client Helm : Interface en ligne de commande - Tiller (déprécié depuis Helm 3) : Composant serveur - Charts : Modèles YAML paramétrables - Releases : Versions déployées
Workflow :
1. Recherche de Charts (helm search)
2. Installation (helm install)
3. Mise à jour (helm upgrade)
4. Gestion des versions (helm rollback)
Utilisation Basique¶
Installation de Helm¶
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
Commandes Essentielles¶
| Commande | Description |
|---|---|
helm repo add |
Ajouter un dépôt |
helm search repo |
Rechercher des Charts |
helm install |
Déployer une application |
helm upgrade |
Mettre à jour une release |
helm uninstall |
Supprimer une release |
helm list |
Lister les releases |
Exemple de Déploiement¶
# Ajout du dépôt stable
helm repo add stable https://charts.helm.sh/stable
# Installation de Nginx
helm install my-nginx stable/nginx-ingress
# Personnalisation avec values.yaml
helm install -f values.yaml my-app stable/mychart
Métriques dans Kubernetes¶
Metrics Server¶
Fonctionnalités :
- Collecte des métriques CPU/RAM des nodes et pods
- Nécessaire pour kubectl top et le HPA (Horizontal Pod Autoscaler)
Installation¶
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
Configuration pour Kubernetes 1.25+¶
# Ajouter dans le container args
- --kubelet-insecure-tls=true
Utilisation¶
# Voir l'utilisation des ressources
kubectl top nodes
kubectl top pods
Prometheus et ServiceMonitor¶
Stack de Monitoring : - Prometheus : Collecte et stocke les métriques - Grafana : Visualisation des données - ServiceMonitor : Définit les cibles de surveillance
Exemple de ServiceMonitor¶
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: myapp-monitor
spec:
selector:
matchLabels:
app: myapp
endpoints:
- port: web
interval: 30s
path: /metrics
Fonctionnement :
1. Les applications exposent des métriques sur /metrics
2. ServiceMonitor définit quoi surveiller
3. Prometheus collecte périodiquement les données
4. Alertes et visualisation via Grafana
Déploiement avec Helm¶
# Ajout du dépôt Prometheus-Community
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
# Installation de Prometheus
helm install prometheus prometheus-community/prometheus
Bonnes Pratiques¶
Pour Helm :
- Utiliser des valeurs par défaut bien documentées
- Versionner les Charts avec sémantique (SemVer)
- Tester les Charts avec helm template avant déploiement
Pour les Métriques : - Configurer des probes (liveness/readiness) - Surveiller les limites de ressources - Utiliser des dashboards Grafana pour la visualisation
Documentation Officielle Helm Documentation Prometheus Operator