Métricas no Kubernetes: metrics-server e Lens Metrics
O metrics-server e o Lens Metrics resolvem coisas diferentes. O metrics-server dá o consumo de CPU e memória de agora, para o kubectl top e o HPA. O Lens Metrics instala um Prometheus, com histórico, para os gráficos da IDE. Esta página mostra como instalar cada um e qual o Kubepier usa.
O que é o metrics-server
- Um componente do Kubernetes que lê o consumo de CPU e memória de cada nó e pod no kubelet e serve pela Metrics API (metrics.k8s.io).
- É dele que saem o kubectl top e as métricas de CPU e memória do HorizontalPodAutoscaler.
- Guarda só a leitura mais recente, em memória: não tem histórico nem gráfico. Para isso existe o Prometheus.
- AKS e GKE já trazem o metrics-server, assim como o k3s. Em EKS, kubeadm e kind, em geral você instala.
Como instalar o metrics-server
Pelo manifest da versão publicada mais nova, ou pelo Helm:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
# ou pelo Helm
helm repo add metrics-server https://kubernetes-sigs.github.io/metrics-server/
helm upgrade --install metrics-server metrics-server/metrics-server -n kube-system Confira se o metrics-server responde
O APIService precisa estar Available, e o kubectl top precisa responder em um ou dois minutos depois da instalação:
kubectl get apiservice v1beta1.metrics.k8s.io
kubectl -n kube-system get deploy metrics-server
kubectl top nodes
kubectl top pods -A - "Metrics API not available": o metrics-server não está instalado, ou o pod dele não está pronto. Veja os logs do Deployment.
- Erro x509 ao falar com o kubelet, comum em kind e minikube: o certificado do kubelet não é assinado pela CA do cluster. Em laboratório, o argumento --kubelet-insecure-tls contorna; em produção, corrija os certificados.
- Pod sem métrica logo depois de subir: a primeira leitura leva alguns segundos.
O que é o Lens Metrics
O Lens Metrics é um pacote com Prometheus, kube-state-metrics e node-exporter, instalado no namespace lens-metrics. Ele guarda o histórico e alimenta os gráficos de CPU, memória, rede e disco de clusters, nós e pods nas IDEs Lens e Freelens, e no Kubepier Desktop.
Ele não substitui o metrics-server: o kubectl top e o HPA continuam lendo a Metrics API.
Lens Metrics no Kubepier Desktop
- Abra Configurações do cluster › Metrics e use Instalar / Atualizar, em Lens Metrics. O Kubepier aplica o Prometheus, o kube-state-metrics e o node-exporter no namespace lens-metrics e escolhe o provider Lens.
- As métricas aparecem em 1 a 2 minutos, quando o Prometheus termina de subir.
- Se o cluster já tem um Prometheus, escolha o provider dele na mesma tela, em vez de instalar outro.
- Sem Prometheus, as listas de nós e pods usam o metrics-server, quando o cluster tem.
- Remover pede confirmação e apaga o namespace lens-metrics, com todo o histórico de métricas.
- Instalar e remover pedem permissão para criar Namespace, ServiceAccount, ConfigMap, Service, DaemonSet, Deployment, StatefulSet, ClusterRole e ClusterRoleBinding: na prática, cluster-admin.
Métricas no Kubepier Web: metrics-server
O Kubepier Web mostra o consumo de CPU e memória por cluster, nó e namespace com o metrics-server que o cluster já tem, sem instalar nada. Sem metrics-server, o consumo não aparece. Se ele para de responder, o catálogo avisa há quanto tempo o consumo está indisponível. A credencial precisa de get e list em pods e nodes do grupo metrics.k8s.io.
Qual usar
| Precisa de | Use |
|---|---|
| kubectl top, HPA por CPU ou memória | metrics-server |
| Consumo no Kubepier Web | metrics-server |
| Gráficos com histórico no Kubepier Desktop | Lens Metrics, ou o Prometheus que o cluster já tem |
| Alertas e retenção longa | Um Prometheus completo (com Alertmanager) ou o monitoramento da nuvem |