Metrics server components
| Fiche express | |
|---|---|
| Type | Agrégateur d'usage ressources (CPU/mémoire) en temps réel |
| API exposée | metrics.k8s.io (Metrics API, via l'aggregation layer)
|
| Consommateurs | kubectl top, HorizontalPodAutoscaler
|
| Voir aussi | Kubernetes troubleshooting |
metrics-server est le composant standard de Kubernetes qui collecte, auprès de chaque kubelet, l'usage instantané CPU et mémoire des pods et des nœuds, et l'expose de façon uniforme via l'aggregation layer de l'API server sous le chemin metrics.k8s.io. C'est délibérément un composant minimal : il ne stocke aucun historique (uniquement la valeur la plus récente en mémoire) et ne sert pas d'outil de supervision — ce rôle revient à une solution dédiée comme Prometheus, qui interroge les mêmes kubelets mais conserve les séries temporelles.
Deux consommateurs principaux dépendent directement de metrics-server :
kubectl top— affichage ponctuel de la consommation de ressources, pour un diagnostic rapide.- HorizontalPodAutoscaler (HPA) — dans sa configuration la plus simple (scaling basé sur %CPU/mémoire), l'HPA interroge directement
metrics.k8s.iopour décider d'augmenter ou de réduire le nombre de réplicas.
Sans metrics-server installé, ces deux fonctionnalités sont indisponibles, même si le cluster fonctionne par ailleurs normalement.
Vérifier que metrics-server est opérationnel
# L'API doit répondre (même une liste vide est un signe de bon fonctionnement du montage)
kubectl get --raw /apis/metrics.k8s.io/
# Usage ressources
kubectl top node
kubectl top pod
kubectl top pod --sort-by cpu
kubectl top pod --selector app=<nom-app>
Une absence de réponse ou une erreur sur kubectl top indique le plus souvent que metrics-server n'est pas déployé, ou qu'il échoue à joindre les kubelets (problème TLS/certificats, fréquent sur des clusters avec certificats kubelet auto-signés non reconnus).
Point de vigilance : TLS avec les kubelets
Par défaut, metrics-server valide le certificat TLS présenté par chaque kubelet. Sur des clusters où ce certificat n'est pas signé par une autorité que metrics-server reconnaît (fréquent en environnement de lab ou sur certaines installations on-prem), le déploiement échoue silencieusement à collecter les métriques tant que l'option --kubelet-insecure-tls n'est pas ajoutée aux arguments du conteneur. Cette option désactive la vérification du certificat et ne doit être utilisée qu'en connaissance de cause : elle n'est pas recommandée sur un cluster de production où la chaîne de certificats kubelet est correctement mise en place.
Voir aussi
- Kubernetes troubleshooting — diagnostic plus large d'un pod ou d'un nœud