Métricas no Kubernetes

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 deUse
kubectl top, HPA por CPU ou memóriametrics-server
Consumo no Kubepier Webmetrics-server
Gráficos com histórico no Kubepier DesktopLens Metrics, ou o Prometheus que o cluster já tem
Alertas e retenção longaUm Prometheus completo (com Alertmanager) ou o monitoramento da nuvem

Começar grátis