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 selecionado de métricas é um subconjunto do conjunto de métricas 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
gcloud components update
para obter a versão mais recente.
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 ao parâmetro 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 o 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_total container_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_total container_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_total container_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_bytes container_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_total container_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_total container_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_total container_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_bytes container_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_total container_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_total container_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_total container_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_rss container_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_bytes container_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_total container_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_total container_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_total container_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_total container_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_total container_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_total container_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_seconds kubelet_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_name kubelet_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_seconds kubelet_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_seconds kubelet_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_containers kubelet_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_pods kubelet_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_total kubelet_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_bytes kubelet_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_bytes kubelet_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_inodes kubelet_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_free kubelet_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_used kubelet_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_bytes kubelet_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
|