Monitorizar o desempenho do cluster Kubernetes com Informações de contentores

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

Livros

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

Vista multi-cluster a partir do Azure Monitor

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

Para acessar o modo de 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 multicluster do Azure Monitor.

Você pode definir o escopo dos resultados apresentados na grade para mostrar clusters que são:

  • Azure: clusters AKS e AKS Engine hospedados no Serviço Kubernetes do Azure.
  • Azure Stack (Pré-visualização): clusters do Motor AKS alojados no Azure Stack.
  • Não Azure (Pré-visualização): clusters Kubernetes alojados no local.
  • Todos: exiba todos os clusters do Kubernetes hospedados no Azure, no Azure Stack e em ambientes locais integrados ao Container insights.

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ê aprenderá o seguinte:

  • Quantos clusters estão em um estado crítico ou não íntegro versus quantos estão saudáveis ou não relatando (referido como um estado desconhecido).
  • Se todas as implantações do Mecanismo Kubernetes do Azure (Mecanismo AKS) estão íntegras.
  • Quantos nós e pods de usuário e sistema são implantados por cluster.

Os estados de saúde incluídos são:

  • Íntegro: Não são detetados problemas na VM e ela está funcionando conforme necessário.
  • Crítico: Um ou mais problemas críticos são detetados que devem ser resolvidos para restaurar o estado operacional normal conforme o esperado.
  • Aviso: Um ou mais problemas são detetados que devem ser resolvidos ou a condição de integridade pode se tornar crítica.
  • Desconhecido: Se o serviço não conseguiu estabelecer uma conexão com o nó ou pod, o status será alterado para um estado Desconhecido.
  • Não encontrado: o espaço de trabalho, o grupo de recursos ou a assinatura que contém o espaço de trabalho para esta solução foi excluído.
  • Não autorizado: o usuário não tem as permissões necessárias para ler os dados no espaço de trabalho.
  • Erro: Ocorreu um erro ao tentar ler dados do espaço de trabalho.
  • Mal configurado: o Container insights não foi configurado corretamente no espaço de trabalho especificado.
  • Sem dados: os dados não foram reportados ao espaço de trabalho nos últimos 30 minutos.

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

A tabela a seguir fornece um detalhamento do cálculo que controla os estados de integridade de um cluster monitorado no modo de exibição multicluster.

Cluster monitorado Status Disponibilidade
Pod de utilizador Bom estado de funcionamento
Aviso
Crítico
Desconhecido
100%
90 - 99%
<90%
Não notificado nos últimos 30 minutos
Pod do sistema Bom estado de funcionamento
Aviso
Crítico
Desconhecido
100%
N/A
100%
Não notificado nos últimos 30 minutos
Node Bom estado de funcionamento
Aviso
Crítico
Desconhecido
>85%
60 - 84%
<60%
Não notificado nos últimos 30 minutos

Na lista de clusters, você pode fazer uma busca detalhada até a página Cluster selecionando o nome do cluster. Em seguida, vá para a página de desempenho Nós selecionando o pacote cumulativo de nós na coluna Nós para esse cluster específico. Ou, você pode fazer uma busca detalhada na página Desempenho dos controladores selecionando o rollup da coluna Pods de usuário ou Pods de sistema.

Visualize o desempenho diretamente de um cluster

O acesso ao Container insights está disponível diretamente de um cluster AKS selecionando Cluster de Insights> no painel esquerdo ou quando você selecionou um cluster na exibição de vários clusters. As informações sobre seu cluster são organizadas em quatro perspetivas:

  • Cluster
  • Nós
  • Controllers
  • Contentores

Nota

As experiências descritas no restante deste artigo também são aplicáveis para exibir o desempenho e o status de integridade de seus clusters Kubernetes hospedados no Azure Stack ou em outro ambiente quando selecionados no modo de exibição de vários clusters.

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

Captura de ecrã que mostra exemplos de gráficos de desempenho no separador Cluster.

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

  • Utilização da CPU do nó %: Uma perspetiva agregada da utilização da CPU para todo o cluster. Para filtrar os resultados para o intervalo de tempo, selecione Média, Mín, 50º, 90º, 95º ou Máximo no seletor de percentis acima do gráfico. Os filtros podem ser usados individualmente ou combinados.
  • Utilização da memória do nó %: Uma perspetiva agregada da utilização da memória para todo o cluster. Para filtrar os resultados para o intervalo de tempo, selecione Média, Mín, 50º, 90º, 95º ou Máximo no seletor de percentis acima do gráfico. Os filtros podem ser usados individualmente ou combinados.
  • Contagem de nós: uma contagem de nós e 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: uma contagem de pods e status do Kubernetes. Os status dos pods representados são Total, Pendente, Em execução, Desconhecido, Sucedido ou Reprovado. 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 qualquer 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. Selecionar o gráfico no painel redireciona você para Insights de contêiner e carrega o escopo e a exibição corretos.

O Container insights também dá suporte ao Azure Monitor Metrics Explorer, onde você pode criar seus próprios gráficos de plotagem, correlacionar e investigar tendências e fixar em painéis. No Metrics Explorer, você também pode usar os critérios definidos para visualizar suas métricas como base de uma regra de alerta baseada em métricas.

Exibir métricas de contêiner no Metrics Explorer

No Metrics Explorer, você pode exibir métricas agregadas de utilização de nó e pod a partir de insights de contêiner. A tabela a seguir resume os detalhes para ajudá-lo a entender como usar os gráficos de métricas para visualizar métricas de contêiner.

Espaço de Nomes Métrico Description
insights.container/nós
cpuUsageMillicores Medição agregada da utilização da CPU em todo o cluster. É um núcleo de CPU dividido em 1.000 unidades (mili = 1000). Usado para determinar o uso de núcleos em um contêiner onde muitos aplicativos podem estar usando um núcleo.
cpuUsagePercentage Utilização média agregada da CPU medida em porcentagem em todo o cluster.
memóriaRssBytes Memória RSS de contêiner usada em bytes.
memóriaRssPercentage Memória RSS do contêiner usada em porcentagem.
memóriaWorkingSetBytes Memória do conjunto de trabalho do contêiner usado.
memoryWorkingSetPercentage Memória do conjunto de trabalho do contêiner usada em porcentagem.
nósContagem Uma contagem de nós do Kubernetes.
insights.container/pods
PodCount Uma contagem de pods do Kubernetes.

Você pode dividir uma métrica para visualizá-la por dimensão e visualizar como diferentes segmentos dela se comparam entre si. Para um nó, você pode segmentar o gráfico pela dimensão do host . A partir de um pod, você pode segmentá-lo pelas seguintes dimensões:

  • Comando
  • Espaço de nomes do Kubernetes
  • Fase

Analise 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 os rótulos definidos para organizar objetos do Kubernetes. Quando um nó Linux é selecionado, a seção Capacidade do 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 exibir ou ocultar o painel.

À medida que você expande os objetos na hierarquia, o painel de propriedades é atualizado com base no objeto selecionado. No painel, você também pode visualizar logs de contêiner do Kubernetes (stdout/stderror), eventos e métricas de pod selecionando a guia Eventos ao vivo na parte superior do painel. Para obter mais informações sobre a configuração necessária para conceder e controlar o acesso para exibir esses dados, consulte Configurar o Live Data.

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

Para exibir os dados de log do Kubernetes armazenados em seu espaço de trabalho com base em pesquisas de log predefinidas, selecione Exibir logs de contêiner na lista suspensa Exibir na análise . Para obter mais informações, consulte Como consultar logs de Insights de contêiner.

Use a opção + Adicionar Filtro na parte superior da página para filtrar os resultados da exibição por Serviço, , Namespace ou Pool de Nós. Depois de selecionar o escopo do filtro, selecione um dos valores mostrados no campo Selecionar valor(es). Depois que o filtro é configurado, ele é aplicado globalmente enquanto visualiza qualquer perspetiva do cluster AKS. A fórmula suporta apenas o sinal de igual. Você pode adicionar mais filtros em cima do primeiro para restringir ainda mais seus resultados. Por exemplo, se você especificar um filtro por , só poderá selecionar Serviço ou Namespace para o segundo filtro.

A especificação de um filtro em uma guia continua a ser aplicada quando você seleciona outra. 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 linha segue o modelo de objeto do Kubernetes, que começa com um nó no cluster. Expanda o nó para visualizar um ou mais pods em execução no nó. Se mais de um contêiner estiver agrupado em um pod, eles serão exibidos como a última linha na hierarquia. Você também pode visualizar quantas cargas de trabalho não relacionadas ao pod estão sendo executadas no host se o host tiver pressão de processador ou memória.

Captura de tela que mostra um exemplo da hierarquia do nó do Kubernetes na visualizaçã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. Ao expandir um nó do Windows Server, você pode exibir um ou mais pods e contêineres que são executados no nó. Depois que um nó é selecionado, o painel de propriedades mostra informações de versão.

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

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

Captura de tela que mostra um exemplo de hierarquia de nós com instâncias de contêiner listadas.

A partir de um nó expandido, você pode detalhar do pod ou contêiner que é executado no nó para o controlador para exibir os dados de desempenho filtrados para esse controlador. Selecione o valor na coluna Controlador para o nó específico.

Captura de tela que mostra o detalhamento de nó para controlador na visualização de desempenho.

Selecione controladores ou contêineres na parte superior da página para revisar o status e a utilização de recursos desses objetos. Para rever a utilização da memória, na lista pendente Métrica , selecione RSS da memória ou Conjunto de trabalho da memória. O RSS de memória é suportado apenas para Kubernetes versão 1.8 e posterior. Caso contrário, você exibirá valores para Min % como 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 de desempenho de nós de contêiner.

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

  • Memória residente, ou memória principal, é a quantidade real de memória da máquina disponível para os nós do cluster.
  • A memória virtual é o espaço reservado no disco rígido (cache) usado pelo sistema operacional para trocar dados da memória para o disco quando sob pressão de memória e, em seguida, buscá-los de volta à 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 TimeRange no canto superior esquerdo. Você também pode filtrar os resultados dentro do intervalo de tempo selecionando Min, Avg, 50th, 90th, 95th e Max no seletor de percentis.

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 sob a coluna Tendência , cada barra mostra o uso da CPU ou da memória, dependendo da métrica selecionada, dentro de um período de amostra de 15 minutos. Depois de selecionar o gráfico de tendências através de um teclado, use a tecla Alt+Page para cima ou Alt+Page para baixo para percorrer cada barra individualmente. Você obtém os mesmos detalhes que obteria se passasse o mouse sobre a barra.

Captura de tela que mostra um exemplo de focalização do gráfico de barras de tendência.

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

Captura de tela que mostra um exemplo de pacote cumulativo de contêineres por nó.

Essas informações podem ajudá-lo a identificar rapidamente se você tem um equilíbrio adequado de contêineres entre nós em seu cluster.

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

Column Descrição
Name O nome do anfitrião.
Status Visualização do Kubernetes do status do nó.
Min %, Preço médio %, 50º %, 90º %, 95º %, Max % Porcentagem média do nó com base no percentil durante a duração selecionada.
Mín, Média, 50, 90, 95, Max Valor real médio dos nós com base no percentil durante a duração do tempo selecionado. O valor médio é medido a partir do limite CPU/Memória definido para um nó. Para pods e contêineres, é o valor médio relatado pelo host.
Contentores Número de contentores.
Tempo de Atividade Representa o tempo desde que um nó foi iniciado ou reinicializado.
Comando Apenas para contentores e vagens. Ele mostra em qual controlador ele reside. Nem todos os pods estão em um controlador, então alguns podem exibir N/A.
Tendência Min %, Preço médio %, 50º %, 90º %, 95º %, Max % A tendência do gráfico de barras representa a porcentagem métrica média do percentil do controlador.

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

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

É calculado pelo uso total do CAdvisor - Usage do processo conteinerizado.

No seletor, selecione Controladores.

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

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

Captura de ecrã que mostra uma vista de desempenho dos controladores \<Name> .

A hierarquia de linhas começa com um controlador. Ao expandir um controlador, você visualiza um ou mais pods. Expanda um pod e a última linha exibe o contêiner agrupado ao pod. A partir de um controlador expandido, você pode fazer uma busca detalhada até o nó em que ele está sendo executado para exibir os dados de desempenho filtrados para esse nó. Os pods de instâncias de contêiner não conectados a um controlador são listados em último lugar na lista.

Captura de tela que mostra um exemplo de hierarquia de controladores com pods de instâncias de contêiner listados.

Selecione o valor na coluna Nó para o controlador específico.

Captura de tela que mostra um exemplo de detalhamento do controlador para o nó na visualização de desempenho.

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

Column Descrição
Name O nome do controlador.
Status O status de rollup dos contêineres após a conclusão da execução com status como OK, Terminado, Falhado, Parado ou Pausado. Se o contêiner estiver em execução, mas o status não tiver sido exibido corretamente ou não tiver sido captado 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.
Min %, Preço médio %, 50º %, 90º %, 95º %, Max % Média de rollup da percentagem média de cada entidade para a métrica e percentil selecionados.
Mín, Média, 50, 90, 95, Max Rollup do desempenho médio de milinúcleo da CPU ou memória do contêiner para o percentil selecionado. O valor médio é medido a partir do limite de CPU/memória definido para um pod.
Contentores Número total de contêineres para o controlador ou pod.
Reinícios Rollup da contagem de reinicialização de contêineres.
Tempo de Atividade Representa o tempo desde que um contêiner foi iniciado.
Apenas para contentores e vagens. Ele mostra em qual controlador ele reside.
Tendência Min %, Preço médio %, 50º %, 90º %, 95º %, Max % A tendência do gráfico de barras representa a métrica do percentil médio do controlador.

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

Ícone Status
Ícone de status de execução pronta. Em Execução
Ícone de estado em espera ou em pausa. Em espera ou pausado
Ícone de status de execução relatado pela última vez. Último relato de execução, mas não responde há mais de 30 minutos
Ícone de status bem-sucedido. Interrompido com êxito ou falha ao parar

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

No seletor, selecione Contêineres.

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

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

Captura de ecrã que mostra uma vista de desempenho de contentores \<Name> .

A partir de um contêiner, você pode detalhar até um pod ou nó para exibir dados de desempenho filtrados para esse objeto. Selecione o valor na coluna Pod ou Node para o contêiner específico.

Captura de tela que mostra um exemplo de detalhamento de nó para contêineres na visualização de desempenho.

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

Column Descrição
Name O nome do controlador.
Status Estatuto dos contentores, se for caso disso. Mais detalhes do ícone de status são fornecidos na tabela a seguir.
Min %, Preço médio %, 50º %, 90º %, 95º %, Max % O rollup da percentagem média de cada entidade para a métrica e percentil selecionados.
Mín, Média, 50, 90, 95, Max O rollup do desempenho médio de milinúcleo ou memória da CPU do contêiner para o percentil selecionado. O valor médio é medido a partir do limite de CPU/memória definido para um pod.
Pod Recipiente onde a cápsula reside.
 Nó onde reside o contentor.
Reinícios Representa o tempo desde que um contêiner foi iniciado.
Tempo de Atividade Representa o tempo desde que um contêiner foi iniciado ou reinicializado.
Tendência Min %, Preço médio %, 50º %, 90º %, 95º %, Max % A tendência do gráfico de barras representa a porcentagem métrica média do percentil do contêiner.

Outros processos

A entrada Outros processos na visualização Nó destina-se a ajudá-lo a entender claramente a causa raiz do alto uso de recursos em seu nó. Essas informações ajudam a distinguir o uso entre processos em contêineres e processos não conteinerizados. Esses são processos não conteinerizados que são executados em seu nó e incluem o seguinte:

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

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

Status

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

Ícone Status
Ícone de status de execução pronta.
Ícone de estado em espera ou em pausa. Em espera ou pausado
Ícone de status de execução relatado pela última vez. Último relato de execução, mas não responde há mais de 30 minutos
Ícone de status encerrado. Interrompido com êxito ou falha ao parar
Ícone de status com falha. Estado com falha

Monitorar e visualizar configurações de rede

O Azure Network Policy Manager inclui métricas informativas do Prometheus que você pode usar para monitorar e entender melhor suas configurações de rede. Disponibiliza visualizações incorporadas no portal do Azure ou no Grafana Labs. Para obter mais informações, consulte Monitorar e visualizar configurações de rede com o Azure npm.

Próximos passos

  • Consulte Criar alertas de desempenho com o Container insights para saber como criar alertas para alta utilização de CPU e memória para dar suporte ao seu DevOps ou processos e procedimentos operacionais.
  • Consulte Exemplos de consulta de log para ver consultas predefinidas e exemplos para avaliar ou personalizar para alertar, visualizar ou analisar seus clusters.
  • Consulte Monitorar a integridade do cluster para saber como exibir o status de integridade do cluster do Kubernetes.