Este documento descreve como configurar o Google Kubernetes Engine (GKE) para enviar métricas ao Cloud Monitoring. No Cloud Monitoring, as métricas podem ser preenchidas com painéis personalizados, gerar alertas, criar objetivos de nível de serviço ou ser buscadas por serviços de monitoramento de terceiros usando a API Cloud Monitoring.
O GKE oferece várias fontes de métricas:
- Métricas do sistema: métricas de componentes essenciais do sistema, descrevendo recursos de baixo nível, como CPU, memória e armazenamento.
- Google Cloud Managed Service para Prometheus: permite monitorar e receber alertas sobre cargas de trabalho usando o Prometheus, sem precisar gerenciá-lo e operá-lo manualmente em grande escala.
Pacotes de métricas de observabilidade:
- Métricas do plano de controle: métricas exportadas de determinados componentes do plano de controle, como o servidor de APIs e o programador.
Kube State Metrics: um conjunto selecionado de métricas exportadas do serviço de estado do kube, usado para monitorar o estado de objetos do Kubernetes, como pods, implantações e muito mais. Para o conjunto de métricas incluídas, consulte Usar o Kube State Metrics.
O pacote do Kube State é uma solução gerenciada. Se você precisar de maior flexibilidade, por exemplo, se precisar coletar outras métricas ou gerenciar intervalos de raspagem de dados ou raspar outros recursos, desative o pacote, se ele estiver ativado, e implante sua própria instância do serviço do Kube State Metrics de código aberto. Para mais informações, consulte a documentação do exportador do Google Cloud Managed Service para Prometheus para o Kube State Metrics.
cAdvisor/Kubelet: um conjunto selecionado de métricas do cAdvisor e do Kubelet. Para o conjunto de métricas incluídas, consulte Usar métricas do cAdvisor/Kubelet.
O pacote cAdvisor/Kubelet é uma solução gerenciada. Se você precisar de maior flexibilidade, por exemplo, se precisar coletar outras métricas ou gerenciar intervalos de raspagem de dados ou raspar outros recursos, desative o pacote, se ele estiver ativado, e implante sua própria instância do serviço de métricas do cAdvisor/Kubelet de código aberto.
Métricas do NVIDIA Data Center GPU Manager (DCGM): métricas do DCGM que fornecem uma visão abrangente da integridade, do desempenho e da utilização da GPU.
Métricas do sistema
Quando um cluster é criado, o GKE, por padrão, coleta algumas métricas emitidas por componentes do sistema.
Você tem a opção de enviar ou não métricas do seu cluster do GKE para o Cloud Monitoring. Se você optar por enviar métricas para o Cloud Monitoring, precisará enviar métricas do sistema.
Todas as métricas do sistema do GKE são ingeridas no Cloud Monitoring com o prefixo kubernetes.io
.
Preços
O Cloud Monitoring não cobra pela ingestão de métricas do sistema do GKE. Para mais informações, consulte preços do Cloud Monitoring.
Como configurar a coleta de métricas do sistema
Para ativar a coleta de métricas do sistema, transmita o valor SYSTEM
para a
flag --monitoring
dos comandos
gcloud container clusters create
ou
gcloud container clusters update
.
Para desativar a coleta de métricas do sistema, use o valor NONE
para a flag
--monitoring
. Se a coleta de métricas do sistema estiver desativada, informações básicas, como uso de CPU,
uso da memória e uso de disco, não estarão disponíveis para um cluster ao visualizar
métricas de observabilidade.
No caso dos clusters do Autopilot do GKE, não é possível desativar a coleta de métricas do sistema.
Consulte Observabilidade do GKE para saber mais detalhes sobre a integração do Cloud Monitoring com o GKE.
Para configurar a coleta de métricas do sistema usando o Terraform,
consulte o bloco monitoring_config
no
registro do Terraform para google_container_cluster
.
Para informações gerais sobre como usar o Google Cloud com o Terraform, consulte
Terraform com o Google Cloud.
Lista de métricas do sistema
As métricas do sistema incluem métricas de componentes essenciais do sistema que são importantes para o Kubernetes. Para ver uma lista dessas métricas, consulte Métricas do sistema do GKE.
Se ativar o Cloud Monitoring para o cluster, não será possível desativar
o monitoramento do sistema (--monitoring=SYSTEM
).
Registros ativados por padrão no GKE Enterprise
Na tabela a seguir, uma marca de seleção ) indica quais métricas são ativados por padrão quando você cria e registra um novo cluster em um projeto com o GKE Enterprise ativado:
Nome da métrica | Piloto automático | Standard |
---|---|---|
Sistema | ||
Servidor de API | ||
Programador | ||
Controller Manager | ||
Volume permanente (armazenamento) | ||
Pods | ||
Implantação | ||
StatefulState | ||
DaemonSet | ||
HorizonalPodAutoscaler | ||
cAdvisor | ||
Kubelet | ||
Conferir as métricas do NVIDIA Data Center GPU Manager (DCGM) |
Todos os clusters registrados em um projeto com o GKE Enterprise ativado podem usar os pacotes de métricas do plano de controle, Kube State Metrics e métricas do cAdvisor/kubelet sem cobranças extras. Caso contrário, essas métricas geram cobranças do Cloud Monitoring.
Solução de problemas de métricas do sistema
Se as métricas do sistema não estiverem disponíveis no Cloud Monitoring conforme o esperado, consulte Resolver problemas com as métricas do sistema.
Pacote: métricas do plano de controle
É possível configurar um cluster do GKE para enviar determinadas métricas emitidas pelo servidor da API Kubernetes, pelo programador e pelo gerenciador do controlador para o Cloud Monitoring.
Para mais informações, consulte Coletar e conferir métricas do plano de controle.
Pacote: métricas de estado do Kube
É possível configurar um cluster do GKE para enviar um conjunto selecionado de métricas de estado do kube no formato do Prometheus para o Cloud Monitoring. Esse pacote de Kube State Metrics inclui métricas de pods, implantações, StatefulSets, DaemonSets, recursos HorizontalPodAutoscaler, volumes permanentes e declarações de volume permanente.
Para mais informações, consulte Coletar e visualizar métricas do Kube State Metrics.
Pacote: métricas do cAdvisor/Kubelet
É possível configurar um cluster do GKE para enviar um conjunto selecionado de métricas de cAdvisor/Kubelet no formato do Prometheus para o Cloud Monitoring. O conjunto selecionado de métricas é um subconjunto do grande conjunto de métricas do cAdvisor/Kubelet integrado a todas as implantações do Kubernetes por padrão. O cAdvisor/Kubelet selecionado foi projetado para fornecer as métricas mais úteis, reduzindo o volume de ingestão e os custos associados.
Para mais informações, consulte Coletar e visualizar métricas do cAdvisor/Kubelet.
Pacote: métricas do NVIDIA Data Center GPU Manager (DCGM)
É possível monitorar a utilização, o desempenho e a integridade da GPU configurando o GKE para que envie métricas do NVIDIA Data Center GPU Manager (DCGM) ao Cloud Monitoring.
Para mais informações, consulte Coletar e conferir as métricas do NVIDIA Data Center GPU Manager (DCGM).
Desativar pacotes de métricas
É possível desativar o uso de pacotes de métricas no cluster. Talvez você queira desativar determinados pacotes para reduzir custos ou se estiver usando um mecanismo alternativo para coletar as métricas, como o Google Cloud Managed Service para Prometheus e um exportador.
Console
Para desativar a coleta de métricas da guia Detalhes do cluster, faça o seguinte:
-
No Console do Google Cloud, acesse a página de clusters do Kubernetes:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Kubernetes Engine.
Clique no nome do cluster.
Na linha Recursosdenominada Cloud Monitoring, clique no ícone Editar.
No menu suspenso Componentes, limpe os componentes de métrica que você quer desativar.
Clique em OK.
Clique em Salvar alterações.
gcloud
Abra uma janela do terminal com o SDK Google Cloud e a Google Cloud CLI instalados. Uma maneira de fazer isso é usando o Cloud Shell.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Chame o comando
gcloud container clusters update
e transmita um conjunto atualizado de valores para a flag--monitoring
. O conjunto de valores fornecidos à flag--monitoring
substitui qualquer configuração anterior.Por exemplo, para desativar a coleta de todas as métricas, exceto as do sistema, execute o seguinte comando:
gcloud container clusters update CLUSTER_NAME \ --location=COMPUTE_LOCATION \
--enable-managed-prometheus
\ --monitoring=SYSTEMEsse comando desativa a coleta de todos os pacotes de métricas configurados anteriormente.
Terraform
Para configurar a coleta de métricas do DCGM usando o Terraform,
consulte o bloco monitoring_config
no
registro do
Terraform para google_container_cluster
.
Para informações gerais sobre como usar o Google Cloud com o Terraform, consulte
Terraform com o Google Cloud.
Como entender a fatura do Monitoring
É possível usar o Cloud Monitoring para identificar o plano de controle ou as métricas de estado do kube que estão gravando o maior número de amostras. Essas métricas estão contribuindo mais para seus custos. Depois de identificar as métricas mais caras, é possível modificar as configurações de verificação para filtrá-las de maneira adequada.
A página Gerenciamento de métricas do Cloud Monitoring fornece informações que podem ajudar a controlar o valor gasto em métricas sujeitas a cobrança, sem afetar a observabilidade. A página Gerenciamento de métricas mostra as seguintes informações:
- Volumes de ingestão para faturamento baseado em byte e amostra, em domínios de métricas e para métricas individuais.
- Dados sobre rótulos e cardinalidade de métricas.
- Número de leituras de cada métrica.
- Uso de métricas em políticas de alertas e painéis personalizados.
- Taxa de erros de gravação de métrica.
Você também pode usar o Gerenciamento de métricas para excluir métricas desnecessárias, eliminando o custo de ingestão delas.
Para visualizar a página Gerenciamento de métricas, faça o seguinte:
-
No console do Google Cloud, acesse a página
Gerenciamento de métricas:Acesse os Gerenciamento de métricas
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.
- Na barra de ferramentas, selecione a janela de tempo. Por padrão, a página Gerenciamento de métricas exibe informações sobre as métricas coletadas no dia anterior.
Para mais informações sobre a página Gerenciamento de métricas, consulte Ver e gerenciar o uso de métricas.
Para identificar quais métricas do plano de controle ou de estado do kube têm o maior número de amostras sendo ingeridas, faça o seguinte:
-
No console do Google Cloud, acesse a página
Gerenciamento de métricas:Acesse os Gerenciamento de métricas
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.
Na visão geral Amostras faturáveis ingeridas, clique em Visualizar gráficos.
Localize o gráfico Ingestão de volume de namespace e clique em more_vert Mais opções de gráfico.
No campo Métrica, verifique se o recurso e a métrica a seguir estão selecionados:
Metric Ingestion Attribution
eSamples written by attribution id
.Na página Filtros, faça o seguinte:
No campo Rótulo, verifique se o valor é
attribution_dimension
.No campo Comparação, verifique se o valor é
= (equals)
.No campo Valor, selecione
cluster
.
Desmarque a configuração Agrupar por.
Se quiser, filtre apenas determinadas métricas. Por exemplo, todas as métricas do servidor da API de plano de controle incluem "apiserver" como parte do nome da métrica, e as métricas de pod do estado do kube incluem "kube_pod" como parte do nome da métrica. Assim, é possível filtrar por métricas que contêm essas strings:
Clique em Adicionar filtro.
No campo Identificador, selecione
metric_type
.No campo Comparação, selecione
=~ (equals regex)
.No campo Valor, insira
.*apiserver.*
ou.*kube_pod.*
.
Opcionalmente, agrupe o número de amostras ingeridas por região ou projeto do GKE:
Clique em Agrupar por.
Verifique se metric_type está selecionado.
Para agrupar por região do GKE, selecione location.
Para agrupar por projeto, selecione project_id.
Clique em OK.
Opcionalmente, agrupe o número de amostras ingeridas por nome do cluster do GKE:
Clique em Agrupar por.
Para agrupar pelo nome do cluster do GKE, verifique se attribution_dimension e attribution_id estão selecionados.
Clique em OK.
Para conferir o volume de ingestão de cada uma das métricas, alterne para Tabela de gráficos ambos, selecione Ambos. A tabela mostra o volume ingerido de cada métrica na coluna Valor.
Clique no cabeçalho da coluna Valor duas vezes para classificar as métricas por volume de ingestão decrescente.
Essas etapas mostram as métricas com a maior taxa de amostras ingeridas no Cloud Monitoring. Como as métricas nos pacotes de observabilidade são cobradas de acordo com o número de amostras ingeridas, preste atenção às métricas com a maior taxa de ingestão de amostras.
Outras métricas
Além das métricas do sistema e dos pacotes de métricas descritos neste documento, as métricas do Istio também estão disponíveis para clusters do GKE. Para informações sobre preços, consulte Preços do Cloud Monitoring.
Métricas disponíveis
A tabela a seguir indica os valores compatíveis com a sinalização --monitoring
para
os comandos create e
atualizar.
Origem | valor --monitoring |
Métricas coletadas |
---|---|---|
Nenhum | NONE |
Nenhuma métrica enviada ao Cloud Monitoring, nenhum agente de coleta de métricas instalado no cluster Esse valor não é compatível com clusters do Autopilot. |
Sistema | SYSTEM |
Métricas de componentes essenciais do sistema necessárias ao Kubernetes. Para uma lista completa das métricas, consulte Métricas do Kubernetes. |
Servidor de API | API_SERVER |
Métricas de kube-apiserver .
Para uma lista completa das métricas, consulte
Métricas do servidor de API. |
Programador | SCHEDULER |
Métricas de kube-scheduler .
Para uma lista completa das métricas, consulte
métricas do programador.
|
Controller Manager | CONTROLLER_MANAGER |
Métricas de kube-controller-manager .
Para uma lista completa das métricas, consulte
Métricas do Gerenciador de Controladores. |
Volume permanente (armazenamento) | STORAGE |
Métricas de armazenamento de kube-state-metrics .
Inclui métricas para volume permanente e declarações de volume permanente.
Para conferir uma lista completa das métricas, consulte
Métricas de armazenamento.
|
Pod | POD |
Métricas do pod de kube-state-metrics .
Para uma lista completa das métricas, consulte
Métricas dee pods.
|
Implantação | DEPLOYMENT |
Métricas de implantação de kube-state-metrics .
Para conferir uma lista completa das métricas, consulte
Métricas de implantação.
|
StatefulSet | STATEFULSET |
Métricas de StatefulSet de kube-state-metrics .
Para uma lista completa das métricas, consulte
métricas StatefulSet. |
DaemonSet | DAEMONSET |
Métricas de DaemonSet de kube-state-metrics .
Para uma lista completa das métricas, consulte
métricas de DaemonSet.
|
HorizonalPodAutoscaler | HPA |
Métricas de HPA de kube-state-metrics .
Consulte uma lista completa de
métricas do HorizonalPodAutoscaler.
|
cAdvisor | CADVISOR |
Métricas do cAdvisor do pacote de métricas do cAdvisor/Kubelet. Para uma lista completa das métricas, consulte Métricas do cAdvisor. |
Kubelet | KUBELET |
Métricas do Kubelet do cAdvisor/Kubelet Para conferir uma lista completa das métricas, consulte Métricas do Kubelet. |
Conferir as métricas do NVIDIA Data Center GPU Manager (DCGM) | DCGM |
Métricas do NVIDIA Data Center GPU Manager (DCGM). |
Além disso, é possível coletar métricas no estilo do Prometheus expostas por qualquer carga de trabalho do GKE usando o Google Cloud Managed Service para Prometheus, que permite monitorar e alertar sobre suas cargas de trabalho com o Prometheus sem precisar gerenciar e operar manualmente o Prometheus em grande escala.
A seguir
- Saiba como resolver problemas dee métricas do sistema.