Métricas para Estados de Objetos do Kubernetes

kube-state-metrics, um agente complemento para gerar e expor métricas em nível de cluster.

O estado dos objetos do Kubernetes na API do Kubernetes pode ser exposto como métricas. Um agente complemento chamado kube-state-metrics pode se conectar ao servidor de API do Kubernetes e expor um endpoint HTTP com métricas geradas a partir do estado de objetos individuais no cluster. Ele expõe diversas informações sobre o estado dos objetos, como rótulos e anotações, tempos de inicialização e término, status ou a fase em que o objeto se encontra atualmente. Por exemplo, contêineres em execução em pods criam uma métrica kube_pod_container_info. Isso inclui o nome do contêiner, o nome do pod do qual ele faz parte, o namespace no qual o pod está em execução, o nome da imagem do contêiner, o ID da imagem, o nome da imagem a partir da especificação do contêiner, o ID do contêiner em execução e o ID do pod como rótulos.

🛇 Este item aponta para um projeto ou produto de terceiros que não é parte do Kubernetes. Mais informações

Um componente externo que seja apto e capaz de coletar o endpoint do kube-state-metrics (por exemplo, via Prometheus) pode agora ser utilizado para habilitar os seguintes casos de uso.

Exemplo: usando métricas do kube-state-metrics para consultar o estado do cluster

As séries de métricas geradas pelo kube-state-metrics são úteis para obter mais informações sobre o cluster, pois podem ser usadas para consultas.

Se você usa o Prometheus ou outra ferramenta que utilize a mesma linguagem de consulta, a seguinte consulta PromQL retorna o número de pods que não estão prontos:

count(kube_pod_status_ready{condition="false"}) by (namespace, pod)

Exemplo: alertas baseados no kube-state-metrics

As métricas geradas pelo kube-state-metrics também permitem o disparo de alertas sobre problemas no cluster.

Se você usa o Prometheus ou uma ferramenta similar que utilize a mesma linguagem de regras de alerta, o seguinte alerta será disparado se houver pods em estado Terminating por mais de 5 minutos:

groups:
- name: Pod state
  rules:
  - alert: PodsBlockedInTerminatingState
    expr: count(kube_pod_deletion_timestamp) by (namespace, pod) * count(kube_pod_status_reason{reason="NodeLost"} == 0) by (namespace, pod) > 0
    for: 5m
    labels:
      severity: page
    annotations:
      summary: Pod {{$labels.namespace}}/{{$labels.pod}} blocked in Terminating state.

Última modificação May 03, 2026 at 5:53 PM PST: [pt-br] Add concepts/cluster-administration/kube-state-metrics.md (b0adc69074)

Itens nesta página referem-se a produtos ou projetos de terceiros que fornecem a funcionalidade requerida pelo Kubernetes. Os autores do projeto Kubernetes não são responsáveis por estes produtos ou projetos de terceiros. Veja as diretrizes de conteúdo do site CNCF para mais detalhes.

Você deve ler o guia de conteúdo antes de propor alterações que incluam links extras de terceiros.