Compartilhar via


Monitorar o desempenho do cluster do Kubernetes com os Insights do contêiner

Use as pastas de trabalho, os gráficos de desempenho e o status de integridade nos insights do contêiner para monitorar a carga de trabalho de clusters do Kubernetes hospedados no Serviço de Kubernetes do Azure (AKS), no Azure Stack ou em outro ambiente. Este artigo ajuda você a entender como usar o Azure Monitor para ajudar a avaliar, investigar e resolver problemas detectados rapidamente.

Pastas de trabalho

As pastas de trabalho combinam texto, consultas de log, métricas e parâmetros em relatórios avançados e interativos que você pode usar para analisar o desempenho do cluster. Para obter uma descrição das pastas de trabalho disponíveis para os insights do contêiner e como acessá-las, consulte Pastas de trabalho nos insights do contêiner.

Exibição de vários clusters do Azure Monitor

O Azure Monitor oferece uma exibição de vários clusters que mostra o status de integridade de todos os clusters monitorados do Kubernetes implantados nos grupos de recursos de suas assinaturas. Ele também mostra os clusters descobertos em todos os ambientes que não são monitorados pela solução. Com essa exibição, você poderá saber imediatamente a integridade do cluster e fazer drill down até a página de desempenho do nó e do controlador ou navegar para ver gráficos de desempenho do cluster. Para clusters do AKS que foram descobertos e identificados como não monitorados, é possível habilitar o monitoramento a partir da exibição.

Para acessar a exibição de vários clusters, selecione Monitor no painel esquerdo do portal do Azure. Na seção Insights, selecione Contêineres.

Captura de tela que mostra um exemplo de painel com vários clusters no Azure Monitor.

Você pode filtrar os resultados apresentados na grade para mostrar cluster que sejam:

  • Azure: clusters do AKS e do AKS-Engine hospedados no Serviço de Kubernetes do Azure.
  • Azure Stack (versão prévia): clusters do AKS-Engine hospedados no Azure Stack.
  • Não Azure (versão prévia): clusters do Kubernetes hospedados localmente.
  • Todos: exibir todos os clusters do Kubernetes hospedados no Azure, no Azure Stack e em ambientes locais que estejam integrados aos insights do Contêiner.

Para exibir clusters de um ambiente específico, selecione-o em Ambiente no canto superior esquerdo.

Captura de tela que mostra um exemplo de seletor de Ambiente.

Na guia Clusters monitorados, você pode obter as seguintes informações:

  • Quantos clusters estão com estado crítico ou não íntegro, e quantos estão íntegros ou não estão informando um estado (chamado de estado Desconhecido).
  • Se todas as implantações do Mecanismo do Kubernetes do Azure (AKS-Engine) estão íntegras.
  • Quantos nós e pods de usuários e sistemas estão implantados por cluster.

Os status de integridade incluídos são:

  • Integridade: nenhum problema foi detectado para a VM e ela está funcionando conforme a necessidade.
  • Crítico: foram detectados um ou mais problemas críticos, que precisam ser resolvidos para restaurar o estado operacional normal esperado.
  • Aviso: um ou mais problemas são detectados e precisam ser resolvidos ou a condição de integridade poderá se tornar crítica.
  • Desconhecido: se o serviço não conseguir se conectar ao nó ou ao pod, o status mudará para um estado Desconhecido.
  • Não encontrado: o workspace, o grupo de recursos ou a assinatura que contém o workspace dessa solução foram excluídos.
  • Não autorizado: o usuário não tem as permissões necessárias para ler os dados no workspace.
  • Erro: ocorreu um erro ao tentar ler dados do workspace.
  • Mal configurado: os Insights do contêiner não foram configurados corretamente no workspace definido.
  • Nenhum dado: não houve relato de dados ao workspace nos últimos 30 minutos.

O estado de integridade calcula o status geral do cluster como o pior dos três estados com uma exceção. Se um dos três estados for Desconhecido, o estado geral do cluster será mostrado como Desconhecido.

A tabela a seguir fornece um detalhamento do cálculo que controla os estados de integridade de um cluster monitorado na exibição de vários clusters.

Cluster monitorado Status Disponibilidade
Pod de usuários Íntegros
Aviso
Crítico
Unknown
100%
90 – 99%
<90%
Não relatado nos últimos 30 minutos
Pod de sistemas Íntegros
Aviso
Crítico
Unknown
100%
N/D
100%
Não relatado nos últimos 30 minutos
Íntegros
Aviso
Crítico
Unknown
>85%
60 – 84%
<60%
Não relatado nos últimos 30 minutos

Na lista de clusters, você pode fazer drill down na página do cluster selecionando o nome do cluster. Vá para a página de desempenho Nós selecionando o rollup de nós na coluna Nós desse cluster específico. Você também pode fazer drill down na página de desempenho Controladores selecionando o rollup da coluna Pods de usuário ou Pods de sistema.

Exibir desempenho diretamente de um cluster

O acesso aos Insights do contêiner está disponível diretamente em um cluster do AKS com a escolha de Insights>Cluster no painel esquerdo ou com a escolha do cluster na exibição multiclusters. As informações sobre o cluster é organizada em quatro perspectivas:

  • Cluster
  • Nós
  • Controladores
  • Contêineres

Observação

As experiências descritas no restante deste artigo também se aplicam à exibição de desempenho e status de integridade dos clusters do Kubernetes hospedados no Azure Stack ou em outro ambiente quando selecionadas na exibição multiclusters.

A página padrão é aberta e exibe quatro gráficos de desempenho de linha que mostram métricas essenciais de desempenho para o cluster.

Captura de tela que mostra gráficos de desempenho de exemplo na guia de Cluster.

Os gráficos de desempenho exibem quatro métricas de desempenho:

  • Utilização da CPU do nó%: uma perspectiva agregada da utilização da CPU para todo o cluster. Para filtrar os resultados por intervalo de tempo, selecione Méd, Mín, 50º, 90º, 95º ou Máx no seletor de percentis acima do gráfico. Os filtros podem ser usados individualmente ou em combinação.
  • Utilização de memória do nó%: uma perspectiva agregada da utilização de memória para todo o cluster. Para filtrar os resultados por intervalo de tempo, selecione Méd, Mín, 50º, 90º, 95º ou Máx no seletor de percentis acima do gráfico. Os filtros podem ser usados individualmente ou em combinação.
  • Contagem de nós: uma contagem de nós e o status do Kubernetes. Os status dos nós de cluster representados são Total, Pronto e Não Pronto. Eles podem ser filtrados individualmente ou combinados no seletor acima do gráfico.
  • Contagem de pods ativos: contagem de pods e status do Kubernetes. Os status dos pods representados são Total, Pendente, Em execução, Desconhecido, Com êxito ou Com falha. Eles podem ser filtrados individualmente ou combinados no seletor acima do gráfico.

Use as teclas de seta para a esquerda e para a direita para percorrer cada ponto de dados no gráfico. Use as teclas de seta para cima e para baixo para percorrer as linhas de percentil. Selecione o ícone de pino no canto superior direito de um dos gráficos para fixar o gráfico selecionado no último painel do Azure que você exibiu. No painel, você pode redimensionar e reposicionar o gráfico. A escolha do gráfico no painel o redireciona aos Insights do contêiner e carrega o escopo e a exibição corretos.

Os insights do Contêiner também dão suporte ao Metrics Explorer do Azure Monitor, no qual você pode criar os seus próprios gráficos, correlacionar e investigar tendências e fixar em painéis. No Metrics Explorer, você também pode usar os critérios definidos para visualizar as suas métricas como a base de uma regra de alerta baseada em métrica.

Exibir métricas de contêiner no Metrics Explorer

No Metrics Explorer, você pode ver métricas de uso de nós e pods agregadas dos insights do Contêiner. A tabela a seguir resume os detalhes para ajudar você a entender como usar os gráficos de métricas para visualizar as métricas de contêiner.

Namespace Métrica Descrição
insights.container/nodes
cpuUsageMillicores Medição agregada da utilização da CPU no cluster. É um núcleo de CPU dividido em 1.000 unidades (mili = 1000). Usado par determinar o uso de núcleos em um contêiner quando vários aplicativos possam estar usando um núcleo.
cpuUsagePercentage Utilização média agregada da CPU medida em porcentagem em todo o cluster.
memoryRssBytes Memória RSS do contêiner usada em bytes.
memoryRssPercentage Memória RSS do contêiner usada em percentual.
memoryWorkingSetBytes Memória do conjunto de trabalho do contêiner usada.
memoryWorkingSetPercentage Memória do conjunto de trabalho do contêiner usada em porcentagem.
nodesCount Uma contagem de nós do Kubernetes.
insights.container/pods
PodCount Uma contagem de pods do Kubernetes.

Você pode dividir uma métrica para exibi-la por dimensão e visualizar como os segmentos diferentes se comparam entre si. Em um nó, você pode segmentar o gráfico pela dimensão do host. Em um pod, você pode segmentar pelas seguintes dimensões:

  • Controller
  • Namespace do Kubernetes
  • Fase

Analisar nós, controladores e integridade do contêiner

Quando você alterna para as guias Nós, Controladores e Contêineres, um painel de propriedades é exibido automaticamente no lado direito da página. Ele mostra as propriedades do item selecionado, que inclui rótulos que você definiu para organizar objetos Kubernetes. Quando um nó Linux é selecionado, a seção Capacidade de Disco Local também mostra o espaço em disco disponível e a porcentagem usada para cada disco apresentado ao nó. Selecione o link >> no painel para visualizá-lo ou ocultá-lo.

Como expandir os objetos na hierarquia, as atualizações de painel de propriedades com base no objeto selecionado. No painel, você também pode ver logs de contêiner (stdout/stderror), eventos e métricas de pod do Kubernetes selecionando o link Eventos ao vivo no topo do painel. Para obter mais informações sobre a configuração exigida para conceder e controlar o acesso à exibição desses dados, confira Configurar Dados Dinâmicos.

Enquanto você examina os recursos de cluster, pode ver esses dados no contêiner em tempo real. Para obter mais informações sobre esse recurso, confira Como exibir logs, eventos e métricas de pods do Kubernetes em tempo real.

Para exibir os dados de log do Kubernetes armazenados no seu workspace com base em pesquisas de logs predefinidas, selecione Exibir logs de contêiner na lista suspensa Exibir na análise. Para obter mais informações, confira Como consultar logs nos insights do Contêiner.

Use a opção + Adicionar Filtro no início da página para filtrar os resultados na exibição por Serviço, , Namespace ou Pool do Nó. Depois de selecionar o escopo do filtro, selecione um dos valores mostrados no campo Selecionar valores. Após ser configurado, o filtro será aplicado globalmente ao exibir qualquer perspectiva do cluster do AKS. A fórmula dá suporte apenas ao sinal de igual. Você pode adicionar mais filtros depois do primeiro para restringir ainda mais os resultados. Por exemplo, se você especificar um filtro por , poderá selecionar apenas Serviço ou Namespace como o segundo filtro.

A especificação de um filtro em uma guia continua a ser aplicada quando você seleciona outro. Ele é excluído depois que você seleciona o símbolo x ao lado do filtro especificado.

Alterne para a guia Nós e a hierarquia de linhas seguirá o modelo de objeto do Kubernetes, que começa com um nó no cluster. Expanda o nó para exibir um ou mais pods em execução no nó. Se mais de um contêiner for agrupado em um pod, eles serão exibidos como a última linha na hierarquia. Você também poderá exibir quantas cargas de trabalho não relacionadas a pod estão em execução no host se o host tiver pressão de memória ou processador.

Captura de tela que mostra um exemplo da hierarquia de Nós do Kubernetes no modo de exibição de desempenho.

Os contêineres do Windows Server que executam o sistema operacional Windows Server 2019 são mostrados depois de todos os nós baseados em Linux na lista. Quando você expande um nó do Windows Server, pode ver um ou mais pods e contêineres que são executados no nó. Depois que um nó é selecionado, o painel de propriedades mostra as informações da versão.

Captura de tela que mostra um exemplo de hierarquia de Nós com os nós do Windows Server listados.

Os Nós Virtuais de Instâncias de Contêiner do Azure que executam o sistema operacional Linux são mostrados após o último nó de cluster do AKS na lista. Quando você expande um nó virtual de Instâncias de Contêiner, pode ver um ou mais pods e contêineres das Instâncias de Contêiner que são executados no nó. As métricas não são coletadas e relatadas para nós, somente para os pods.

Captura de tela que mostra um exemplo de hierarquia de Nós com os nós das Instâncias de Contêiner listados.

Em um nó expandido, é possível fazer drill down do pod ou contêiner em execução no nó até o controlador para exibir dados de desempenho filtrados para esse controlador. Selecione o valor sob a coluna Controlador para o nó específico.

Captura de tela que mostra o drill down do nó até o controlador na exibição de desempenho.

Selecione controladores ou contêineres na parte superior da página para examinar o status e a utilização de recursos para esses objetos. Para examinar a utilização de memória, na lista suspensa Métrica, selecione RSS de Memória ou Conjunto de trabalho de memória. RSS de Memória só tem suporte para a versão do Kubernetes 1.8 e posteriores. Caso contrário, você exibirá valores para Min % as NaN %, que é um valor de tipo de dados numérico que representa um valor indefinido ou não representável.

Captura de tela que mostra uma exibição do desempenho dos nós de um Contêiner.

O conjunto de trabalho de memória mostra tanto a memória residente quanto a memória virtual (cache) incluídas e é um total do quanto o aplicativo está usando. RSS de memória mostra apenas a memória principal, que não é nada mais que a memória residente. Essa métrica mostra a capacidade real da memória disponível. Qual é a diferença entre a memória residente e a memória virtual?

  • A memória residente, ou memória principal, é a quantidade real de memória do computador disponível para os nós do cluster.
  • A memória virtual é o espaço reservado em disco rígido (cache) usado pelo sistema operacional para trocar dados da memória para o disco quando sofre pressão de memória e buscá-los novamente para a memória quando necessário.

Por padrão, os dados de desempenho são baseados nas últimas seis horas, mas você pode alterar a janela usando a opção Intervalo de Tempo na parte superior esquerda. Você também pode filtrar os resultados no intervalo de tempo selecionando Mín, Avg, 50º, 90º, 95º, e Máx no seletor de percentil.

Captura de tela que mostra uma seleção de percentil para filtragem de dados.

Quando você passa o mouse sobre o gráfico de barras na coluna Tendência, cada barra mostra o uso de CPU ou de memória, dependendo de qual métrica está selecionada, em de um período de amostra de 15 minutos. Depois de selecionar o gráfico de tendências em um teclado, use as teclas Alt+Page up ou Alt+Page down para percorrer cada barra individualmente. Você vê os mesmos detalhes que veria se passasse o mouse sobre a barra.

Captura de tela que mostra um exemplo de gráfico de barras de Tendência.

No próximo exemplo, para o primeiro nó da lista, aks-nodepool1-, o valor de Contêineres é 25. Esse valor é um valor acumulado do número total de contêineres implantados.

Captura de tela que mostra um exemplo de acumulação de contêineres por nó.

Essa informação pode ajudá-lo a identificar rapidamente se você tem um equilíbrio adequado de contêineres entre nós no seu cluster.

As informações apresentadas quando você exibe Nós são descritas na tabela a seguir.

Coluna Descrição
Nome O nome do host.
Status Exibição de Kubernetes do status do nó.
Mín %, Méd %, 50th %, 90th %, 95th %, Máx % Percentual médio de nós com base no percentil pela duração selecionada.
Mín, Méd, 50º, 90º, 95º, Máx Valor real de nós médio com base no percentil pela duração de tempo selecionada. O valor médio é medido usando o limite de CPU/memória definido para um nó. Para pods e contêineres, é o valor médio relatado pelo host.
Contêineres Número de contêineres.
Tempo de atividade Representa a hora desde que um nó foi iniciado ou reiniciado.
Controller Somente para os contêineres e pods. Mostra em qual controlador ele reside. Nem todos os pods estão em um controlador, assim, alguns poderão exibir N/D.
Tendência Mín%, Méd%, 50º%, 90º%, 95º%, Máx % Tendência de gráfico de barras representa o percentual médio de métrica de percentil do controlador.

Você poderá notar uma carga de trabalho depois de expandir um nó chamado Outro processo. Ele representa processos não conteinerizados que são executados no seu nó e inclui:

  • Processos de Kubernetes autogerenciados ou gerenciados que não estão em contêineres.
  • Processos de tempo de execução de contêiner.
  • Kubelet.
  • Processos do sistema em execução no seu nó.
  • Outras cargas de trabalho que não são de Kubernetes em execução no hardware do nó ou em uma VM.

É calculado por: Uso total de CAdvisor - Uso de processo conteinerizado.

No seletor, selecione Controladores.

Captura de tela que mostra a seleção de Controladores.]

Aqui você pode exibir a integridade do desempenho de seus controladores e controladores de nó virtual das Instâncias de Contêiner ou de pods de nó virtual não conectados a um controlador.

Captura de tela que mostra uma exibição de desempenho de controladores \<Name>.

A hierarquia de linhas começa com um controlador. Quando você expande um controlador, um ou mais pods são exibidos. Expanda um pod e a última linha mostrará o contêiner agrupado para o pod. Em um controlador expandido, é possível fazer drill down até o nó que em que ele está em execução a fim de exibir dados de desempenho filtrados para esse nó. Os pods das Instâncias de Contêiner não conectados a um controlador são listados por último na lista.

Captura de tela que mostra uma hierarquia de Controladores de exemplo com pods de Instâncias de Contêiner listados.

Selecione o valor sob a coluna para o controlador específico.

Captura de tela que mostra um exemplo de drill down do controlador até o nó na exibição de desempenho.

As informações que são exibidas quando você exibe controladores são descritas na tabela a seguir.

Coluna Descrição
Nome O nome do controlador.
Status O status de rollup dos contêineres depois que a execução é concluída com status como OK, Encerrado, Com falha, Parado ou Em pausa. Se o contêiner estiver em execução, mas o status não tiver sido devidamente exibido ou não tiver sido selecionado pelo agente e não tiver respondido por mais de 30 minutos, o status será Desconhecido. Mais detalhes do ícone de status são fornecidos na tabela a seguir.
Mín %, Méd %, 50th %, 90th %, 95th %, Máx % Média de rollup do percentual médio de cada entidade para a métrica e o percentil selecionados.
Mín, Méd, 50º, 90º, 95º, Máx Rollup da média de milinúcleo de CPU ou desempenho da memória do contêiner para o percentil selecionado. O valor médio é medido usando o limite de CPU/memória definido para um pod.
Contêineres Número total de contêineres para o controlador ou pod.
Reinícios Rollup da contagem de reinicialização dos contêineres.
Tempo de atividade Representa o tempo desde o início de um contêiner.
Somente para os contêineres e pods. Mostra em qual controlador ele reside.
Tendência Mín%, Méd%, 50º%, 90º%, 95º%, Máx % A tendência de gráfico de barras representa a métrica percentil do controlador.

Os ícones no campo status indicam o status online dos contêineres.

ícone Status
Ícone de status de execução pronto. Executando
Ícone de status de Espera ou Em pausa. Aguardando ou em pausa
Ícone do status de execução informado pela última vez. Relatado pela última vez como em execução, mas sem responder por mais de 30 minutos
Ícone de status de êxito. Parou com sucesso ou houve falha ao parar

O ícone de status mostra uma contagem com base no que o pod fornece. Mostra os dois piores estados. Quando você passa o mouse sobre o status, mostra um status de rollup de todos os pods no contêiner. Se não houver um estado pronto, o valor de status mostrará (0).

No seletor, selecione Contêineres.

Captura de tela que mostra a seleção de Contêineres.

Aqui, você pode exibir a integridade de desempenho dos seus contêineres do AKS e das Instâncias de Contêiner.

Captura de tela que mostra uma exibição de desempenho de contêineres \<Name>.

Em um contêiner, você pode fazer drill down até um pod ou nó para exibir dados de desempenho filtrados para esse objeto. Selecione o valor sob a coluna Pod ou para o contêiner específico.

Captura de tela que mostra um exemplo de drill down do nó até os contêineres na exibição de desempenho.

As informações que são exibidas quando você exibe contêineres são descritas na tabela a seguir.

Coluna Descrição
Nome O nome do controlador.
Status Status dos contêineres, se houver. Mais detalhes do ícone de status são fornecidos na tabela a seguir.
Mín %, Méd %, 50th %, 90th %, 95th %, Máx % O rollup do percentual médio de cada entidade para a métrica e o percentil selecionados.
Mín, Méd, 50º, 90º, 95º, Máx O rollup da média do desempenho de memória ou do milinúcleo da CPU do contêiner para o percentual selecionado. O valor médio é medido usando o limite de CPU/memória definido para um pod.
Pod Contêiner no qual reside o pod.
 Nó em que reside o contêiner.
Reinícios Representa o tempo desde o início de um contêiner.
Tempo de atividade Representa a hora desde que um contêiner foi iniciado ou reiniciado.
Tendência Mín%, Méd%, 50º%, 90º%, 95º%, Máx % A tendência de gráfico de barras representa o percentual métrico médio do contêiner.

Outros processos

A entrada Outros processos na exibição serve para ajudar você a entender claramente a causa raiz do alto uso de recursos no nó. Essas informações ajudam você a distinguir o uso entre processos conteinerizados e os processos não conteinerizados. Esses são processos não conteinerizados que são executados no nó e incluem o seguinte:

  • Processos de Kubernetes gerenciados ou autogerenciados não conteinerizados.
  • Processos de tempo de execução de contêiner.
  • Kubelet.
  • Processos do sistema em execução no seu nó.
  • Outras cargas de trabalho que não são de Kubernetes em execução no hardware do nó ou em uma VM.

O valor de outros processos é Total usage from CAdvisor - Usage from containerized process.

Status

Os ícones no campo status indicam os status online de pods, conforme descrito na tabela a seguir.

ícone Status
Ícone de status de execução pronto.
Ícone de status de Espera ou Em pausa. Aguardando ou em pausa
Ícone do status de execução informado pela última vez. Relatado pela última vez como em execução, mas sem responder por mais de 30 minutos
Ícone de status encerrado. Parou com sucesso ou houve falha ao parar
Ícone de status com falha. Estado com falha

Monitorar e visualizar as configurações de rede

O Gerenciador de Políticas da Rede do Azure inclui métricas Prometheus informativas que podem ser usadas para monitorar e entender melhor as suas configurações de rede. Ele fornece visualizações internas no portal do Azure ou nos Laboratórios do Grafana. Para obter mais informações, confira Monitorar e visualizar as configurações de rede com o Azure npm.

Próximas etapas