Skip to content

Helm et Métriques dans Kubernetes

Table des Matières

  1. Helm - Gestionnaire de paquets Kubernetes
  2. Concepts Clés
  3. Architecture Helm
  4. Utilisation Basique
  5. Métriques dans Kubernetes
  6. Metrics Server
  7. 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

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