Esta página descreve como configurar um cluster do Google Kubernetes Engine (GKE) para enviar um conjunto organizado de métricas do cAdvisor/Kubelet para o Cloud Monitoring através do Google Cloud Managed Service for Prometheus. Esta página também descreve como estas métricas são formatadas quando são escritas no Monitoring e como consultar métricas.
O conjunto organizado de métricas é um subconjunto do conjunto de métricas do cAdvisor/Kubelet incorporadas em cada implementação do Kubernetes por predefinição e inclui métricas relacionadas com a redução do volume de carregamento e dos custos associados.
Antes de começar
Antes de começar, certifique-se de que realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ative a API Google Kubernetes Engine
- Se quiser usar a CLI gcloud para esta tarefa,
instale-a e, em seguida,
inicialize-a. Se instalou anteriormente a CLI gcloud, execute o comando
gcloud components updatepara obter a versão mais recente. As versões anteriores da CLI gcloud podem não suportar a execução dos comandos neste documento.
Requisitos
Para recolher métricas do cAdvisor/Kubelet, o seu cluster do GKE tem de cumprir os seguintes requisitos:
- O cluster tem de estar a executar a versão 1.29.3-gke.1093000 ou posterior do GKE. Os pacotes cAdvisor/Kubelet são ativados por predefinição quando cria um cluster que executa a versão 1.29.3-gke.1093000 ou posterior.
- O cluster tem de ter as métricas do sistema ativadas.
- O cluster tem a recolha gerida do Google Cloud Managed Service for Prometheus ativada. A recolha gerida do Google Cloud Managed Service for Prometheus está ativada por predefinição para novos clusters.
Configurar a recolha de métricas do cAdvisor/Kubelet
Pode ativar as métricas do cAdvisor/Kubelet num cluster do GKE existente através da Google Cloud consola, da CLI gcloud ou do Terraform.
Consola
Para configurar as métricas do cAdvisor/Kubelet a partir do separador Detalhes do cluster, faça o seguinte:
-
Na Google Cloud consola, aceda à página Clusters do Kubernetes:
Aceda a Clusters do Kubernetes
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Kubernetes Engine.
Clique no nome do cluster.
Na linha Funcionalidades com a etiqueta Cloud Monitoring, clique no ícone Editar.
Na caixa de diálogo Editar monitorização na nuvem apresentada, confirme que a opção Ativar monitorização na nuvem está selecionada.
No menu pendente Componentes, selecione os componentes cAdvisor/Kubelet a partir dos quais quer recolher métricas:
- cAdvisor
- Kubelet
Clique em OK.
Clique em Guardar alterações.
gcloud
Atualize o cluster para recolher métricas:
gcloud container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--enable-managed-prometheus \
--monitoring=SYSTEM,CADVISOR,KUBELET
Substitua o seguinte:
CLUSTER_NAME: o nome do cluster existente.COMPUTE_LOCATION: a localização do Compute Engine do cluster.
O conjunto de valores fornecido à flag monitoring substitui qualquer definição anterior.
Terraform
Para configurar a recolha de métricas do cAdvisor/Kubelet através do Terraform,
consulte o bloco monitoring_config no
registo do Terraform para google_container_cluster.
Para informações gerais sobre a utilização do Google Cloud com o Terraform, consulte
Terraform com Google Cloud.
Formato da métrica
Todas as métricas do cAdvisor/Kubelet do Kubernetes escritas no Cloud Monitoring
usam o tipo de recurso
prometheus_target.
Cada nome de métrica tem o prefixo
prometheus.googleapis.com/ e um sufixo que indica o
tipo de métrica do Prometheus, como /gauge, /histogram
ou /counter. Caso contrário, cada nome de métrica é idêntico ao nome de métrica exposto pelo Kubernetes de código aberto.
Exportar a partir do Cloud Monitoring
As métricas do cAdvisor/Kubelet podem ser exportadas do Cloud Monitoring através da API Cloud Monitoring. Uma vez que todas as métricas do cAdvisor/Kubelet são carregadas através do Google Cloud Managed Service for Prometheus, as métricas do cAdvisor/Kubelet podem ser consultadas através da linguagem de consulta do Prometheus (PromQL). Também podem ser consultados através da linguagem de consulta de monitorização (MQL).
Consultar métricas
Quando consulta métricas do cAdvisor/Kubelet, o nome que usa depende de estar a usar o PromQL ou funcionalidades baseadas no Cloud Monitoring, como o MQL ou o Explorador de métricas, a interface orientada por menus.
As tabelas seguintes de métricas do cAdvisor/Kubelet mostram duas versões de cada nome de métrica:
- Nome da métrica PromQL: quando usa o PromQL nas páginas do Cloud Monitoring da Google Cloud consola ou nos campos PromQL da API Cloud Monitoring, use o nome da métrica PromQL.
- Nome da métrica do Cloud Monitoring Quando usar outras funcionalidades do Cloud Monitoring, use o nome da métrica do Cloud Monitoring nas tabelas abaixo. Este nome tem de ter o prefixo
prometheus.googleapis.com/, que foi omitido das entradas na tabela.
Métricas do cAdvisor
Os nomes das métricas do Cloud Monitoring nesta tabela têm de ter o prefixo prometheus.googleapis.com/. Esse prefixo foi omitido das entradas na tabela.
| Nome da métrica PromQL Nome da métrica do Cloud Monitoring |
|
|---|---|
|
Kind, Type, Unit
Recursos monitorizados Versão do GKE obrigatória |
Descrição Etiquetas |
container_cpu_cfs_periods_totalcontainer_cpu_cfs_periods_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Número de intervalos do período de aplicação decorridos. Amostrada a cada 30 segundos.cpu
|
container_cpu_cfs_throttled_periods_totalcontainer_cpu_cfs_throttled_periods_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Número de intervalos de períodos limitados. Amostrada a cada 30 segundos.cpu
|
container_cpu_usage_seconds_totalcontainer_cpu_usage_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, s
prometheus_target 1.29.3-gke.1093000 |
Tempo da CPU cumulativo consumido. Amostrada a cada 30 segundos.cpu
|
container_fs_limit_bytescontainer_fs_limit_bytes/gauge
|
|
GAUGE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Número de bytes que podem ser consumidos pelo contentor neste sistema de ficheiros. Amostrada a cada 30 segundos.disk
|
container_fs_read_seconds_totalcontainer_fs_read_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Contagem cumulativa de leituras concluídas. Amostrada a cada 30 segundos.diskIO
|
container_fs_reads_bytes_totalcontainer_fs_reads_bytes_total/counter
|
|
CUMULATIVE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Contagem cumulativa de bytes lidos. Amostrada a cada 30 segundos.diskIO
|
container_fs_reads_totalcontainer_fs_reads_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Contagem cumulativa de leituras concluídas. Amostrada a cada 30 segundos.diskIO
|
container_fs_usage_bytescontainer_fs_usage_bytes/gauge
|
|
GAUGE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Número de bytes consumidos pelo contentor neste sistema de ficheiros. Amostrada a cada 30 segundos.disk
|
container_fs_write_seconds_totalcontainer_fs_write_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, s
prometheus_target 1.29.3-gke.1093000 |
Contagem cumulativa de segundos passados a escrever. Amostrada a cada 30 segundos.diskIO
|
container_fs_writes_bytes_totalcontainer_fs_writes_bytes_total/counter
|
|
CUMULATIVE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Contagem cumulativa de bytes escritos. Amostrada a cada 30 segundos.diskIO
|
container_fs_writes_totalcontainer_fs_writes_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Contagem cumulativa de gravações concluídas. Amostrada a cada 30 segundos.diskIO
|
container_memory_rsscontainer_memory_rss/gauge
|
|
GAUGE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Tamanho do RSS. Amostrada a cada 30 segundos.memory
|
container_memory_working_set_bytescontainer_memory_working_set_bytes/gauge
|
|
GAUGE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Conjunto de trabalho atual. Amostrada a cada 30 segundos.memory
|
container_network_receive_bytes_totalcontainer_network_receive_bytes_total/counter
|
|
CUMULATIVE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Contagem cumulativa de bytes recebidos. Amostrada a cada 30 segundos.network
|
container_network_receive_packets_dropped_totalcontainer_network_receive_packets_dropped_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Contagem cumulativa de pacotes rejeitados durante a receção.
Amostrada a cada 30 segundos.network
|
container_network_receive_packets_totalcontainer_network_receive_packets_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Contagem cumulativa de pacotes recebidos. Amostrada a cada 30 segundos.network
|
container_network_transmit_bytes_totalcontainer_network_transmit_bytes_total/counter
|
|
CUMULATIVE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Contagem cumulativa de bytes transmitidos. Amostrada a cada 30 segundos.network
|
container_network_transmit_packets_dropped_totalcontainer_network_transmit_packets_dropped_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Contagem cumulativa de pacotes rejeitados durante a transmissão.
Amostrada a cada 30 segundos.network
|
container_network_transmit_packets_totalcontainer_network_transmit_packets_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Contagem cumulativa de pacotes transmitidos. Amostrada a cada 30 segundos.network
|
Métricas do Kubelet
Os nomes das métricas do Cloud Monitoring nesta tabela têm de ter o prefixo prometheus.googleapis.com/. Esse prefixo foi omitido das entradas na tabela.
| Nome da métrica PromQL Nome da métrica do Cloud Monitoring |
|
|---|---|
|
Kind, Type, Unit
Recursos monitorizados Versão do GKE obrigatória |
Descrição Etiquetas |
kubelet_certificate_manager_server_ttl_secondskubelet_certificate_manager_server_ttl_seconds/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Indicador do TTL (tempo de vida) mais curto do certificado de serviço do Kubelet. O valor é expresso em segundos até à expiração do certificado
(negativo se já tiver expirado). Se o certificado de publicação for inválido ou não for usado, o valor é +INF. Amostrada a cada 30 segundos. |
kubelet_node_namekubelet_node_name/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
O nome do nó. A contagem é sempre 1. Amostrada a cada 30 segundos.node
|
kubelet_pleg_relist_duration_secondskubelet_pleg_relist_duration_seconds/histogram
|
|
CUMULATIVE, DISTRIBUTION, s
prometheus_target 1.29.3-gke.1093000 |
Duração em segundos para voltar a listar agrupamentos no PLEG. Amostrada a cada 30 segundos. |
kubelet_pod_worker_duration_secondskubelet_pod_worker_duration_seconds/histogram
|
|
CUMULATIVE, DISTRIBUTION, s
prometheus_target 1.29.3-gke.1093000 |
Duração em segundos para sincronizar um único agrupamento. Discriminado por tipo de operação: criar, atualizar ou sincronizar. Amostrada a cada 30 segundos.operation_type
|
kubelet_running_containerskubelet_running_containers/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Número de contentores em execução atualmente. Amostrada a cada 30 segundos.container_state
|
kubelet_running_podskubelet_running_pods/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Número de pods que têm uma sandbox de pods em execução. Amostrada a cada 30 segundos. |
kubelet_runtime_operations_totalkubelet_runtime_operations_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Número cumulativo de operações de tempo de execução por tipo de operação.
Amostrada a cada 30 segundos.operation_type
|
kubelet_volume_stats_available_byteskubelet_volume_stats_available_bytes/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Número de bytes disponíveis no volume. Amostrada a cada 30 segundos.namespace
persistentvolumeclaim
|
kubelet_volume_stats_capacity_byteskubelet_volume_stats_capacity_bytes/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Capacidade em bytes do volume. Amostrada a cada 30 segundos.namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodeskubelet_volume_stats_inodes/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Número máximo de inodos no volume. Amostrada a cada 30 segundos.namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodes_freekubelet_volume_stats_inodes_free/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Número de inodos livres no volume. Amostrada a cada 30 segundos.namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodes_usedkubelet_volume_stats_inodes_used/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Número de inodos usados no volume. Amostrada a cada 30 segundos.namespace
persistentvolumeclaim
|
kubelet_volume_stats_used_byteskubelet_volume_stats_used_bytes/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
Número de bytes usados no volume. Amostrada a cada 30 segundos.namespace
persistentvolumeclaim
|