Melhores práticas para monitorar o Kubernetes com o Azure Monitor

Este artigo fornece as melhores práticas para monitorar a integridade e o desempenho dos seus clusters do AKS (Serviço de Kubernetes do Azure) e do Kubernetes habilitado para Azure Arc. As diretrizes se baseiam nos cinco pilares de excelência em arquitetura descritos no Azure Well-Architected Framework.

Confiabilidade

Na nuvem, reconhecemos antecipadamente que as falhas ocorrerão. Em vez de tentar evitar completamente a falha, a meta é minimizar os efeitos de uma falha em um componente individual. Use as informações a seguir para aproveitar melhor o Azure Monitor e garantir a confiabilidade dos seus clusters do Kubernetes e do ambiente de monitoramento.

Lista de verificação de projeto

  • Habilite a extração de métricas do Prometheus para seu cluster.
  • Habilite os Insights de contêiner para coleta de logs e dados de desempenho do seu cluster.
  • Crie configurações de diagnóstico para coletar logs do painel de controle para clusters do AKS.
  • Habilite os alertas recomendados pelo Prometheus.
  • Verifique a disponibilidade do workspace do Log Analytics que dá suporte aos Insights de contêiner.

Recomendações de configuração

Recomendação Benefício
Habilite a extração de métricas do Prometheus para seu cluster. Habilite o Prometheus em seu cluster com o serviço gerenciado do Azure Monitor para Prometheus se você ainda não tiver um ambiente do Prometheus. Use o Espaço Gerenciado do Azure para Grafana para analisar os dados coletados do Prometheus. Consulte Personalizar a extração de métricas do Prometheus no serviço gerenciado do Azure Monitor para o Prometheus para coletar métricas adicionais além da configuração padrão.
Habilite os Insights de contêiner para coleta de logs e dados de desempenho do seu cluster. Os Insights do contêiner coletam logs stdout/stderr, métricas de desempenho e eventos do Kubernetes de cada nó do seu cluster. Ele fornece painéis e relatórios para analisar esses dados, incluindo a disponibilidade de seus nós e outros componentes. Use o Log Analytics para identificar quaisquer erros de disponibilidade nos logs coletados.
Crie configurações de diagnóstico para coletar logs do painel de controle para clusters do AKS. O AKS implementa os logs do painel de controle como logs de recursos no Azure Monitor. Crie uma configuração de diagnóstico para enviar esses logs ao workspace do Log Analytics para que você possa usar as consultas de log para identificar erros e problemas que afetam a disponibilidade.
Habilite os alertas recomendados pelo Prometheus. Os alertas no Azure Monitor notificam você proativamente quando problemas são detectados. Comece com um conjunto de regras de alerta recomendadas pelo Prometheus que detectam os problemas mais comuns de disponibilidade e desempenho do seu cluster. Potencialmente, adicione alertas de pesquisa de logs usando os dados coletados pelos Insights do contêiner.
Verifique a disponibilidade do workspace do Log Analytics que dá suporte aos Insights de contêiner. Os Insights do contêiner dependem de um workspace do Log Analytics. Consulte As melhores práticas para logs do Azure Monitor para obter recomendações para garantir a confiabilidade do workspace.

Segurança

A Segurança é um dos aspectos mais importantes de qualquer arquitetura. O Azure Monitor fornece recursos para empregar os princípios de privilégios mínimos e defesa em profundidade. Use as informações a seguir para monitorar os seus clusters do Kubernetes e garantir que somente usuários autorizados acessem os dados coletados.

Lista de verificação de projeto

  • Use a autenticação de identidade gerenciada para que o seu cluster se conecte aos Insights do contêiner.
  • Considere usar o link privado do Azure para que seu cluster se conecte ao workspace do Azure Monitor usando um ponto de extremidade privado.
  • Use a análise de tráfego para monitorar o tráfego de rede do seu cluster e para ele.
  • Habilite observabilidade de rede.
  • Verifique a segurança do workspace do Log Analytics que dá suporte aos insights de contêiner.

Recomendações de configuração

Recomendação Benefício
Use a autenticação de identidade gerenciada para que o seu cluster se conecte aos Insights do contêiner. A autenticação de identidade gerenciada é o padrão para novos clusters. Se estiver usando a autenticação herdada, você deverá migrar para a identidade gerenciada para remover a autenticação local baseada em certificado.
Considere usar o link privado do Azure para que seu cluster se conecte ao workspace do Azure Monitor usando um ponto de extremidade privado. O serviço gerenciado do Azure para Prometheus armazena seus dados em um workspace do Azure Monitor que usa um ponto de extremidade público por padrão. As conexões com pontos de extremidade públicos são protegidas com criptografia de ponta a ponta. Se você precisar de um ponto de extremidade privado, poderá usar um link Privado do Azure para permitir que seu cluster se conecte ao workspace por meio de redes privadas autorizadas. O link privado também pode ser usado para forçar a ingestão de dados do workspace por meio do ExpressRoute ou de uma VPN.

Consulte Link privado para ingestão de dados para o workspace do Prometheus Gerenciado e do Azure Monitor para obter detalhes sobre como configurar seu cluster para um link privado. Consulte Usar pontos de extremidade privados para o workspace do Prometheus Gerenciado e do Azure Monitor para obter detalhes sobre como consultar seus dados usando um link privado.
Use a análise de tráfego para monitorar o tráfego de rede do seu cluster e para ele. A análise de tráfego analisa os logs de fluxo de NSG do Observador de Rede do Azure para fornecer insights sobre o fluxo de tráfego em sua nuvem do Azure. Use essa ferramenta para garantir que não haja exfiltração de dados para seu cluster e para detectar se algum IPs público desnecessário está exposto.
Habilite observabilidade de rede. O complemento de observabilidade de rede para AKS fornece observabilidade entre as várias camadas na pilha de rede do Kubernetes para monitorar e observar o acesso entre os serviços no cluster (tráfego leste-oeste).
Verifique a segurança do workspace do Log Analytics que dá suporte aos insights de contêiner. Os Insights do contêiner dependem de um workspace do Log Analytics. Consulte Práticas recomendadas para logs do Azure Monitor para obter recomendações para garantir a segurança do workspace.

Otimização de custo

A Otimização de custos se refere a maneiras de reduzir as despesas desnecessárias e melhorar a eficiência operacional. Você pode reduzir consideravelmente seus custos com o Azure Monitor compreendendo as diferentes opções de configuração e oportunidades a fim de reduzir o volume de dados coletados. Confira Custos e uso do Azure Monitor para entender as diferentes maneiras de cobrança do Azure Monitor e como ver sua fatura mensal.

Observação

Confira Otimizar custos no Azure Monitor para obter recomendações de otimização de custos em todos os recursos do Azure Monitor.

Lista de verificação de projeto

  • Não habilite a coleção de métricas do Prometheus nos Insights de contêiner.
  • Configure a coleção de agentes para modificar a coleta de dados nos Insights do contêiner.
  • Modifique as configurações para coleta de dados de métrica pelos Insights do contêiner.
  • Desabilite a coleta de dados de métrica dos Insights do contêiner se você não usa a experiência de Insights do contêiner no portal do Azure.
  • Se você não consulta a tabela de logs de contêiner regularmente nem a usa para alertas, configure-a como logs básicos.
  • Limite a coleção de logs de recursos que você não precisa.
  • Use o log específico do recurso para logs de recursos do AKS e configure tabelas como logs básicos.
  • Use o OpenCost para coletar detalhes sobre os custos do Kubernetes.

Recomendações de configuração

Recomendação Benefício
Não habilite nos Insights do contêiner a coleção de métricas do Prometheus no workspace do Log Analytics se você tiver habilitado a extração de métricas com o Prometheus. Além de extrair as métricas do Prometheus do cluster usando o serviço gerenciado do Azure Monitor para Prometheus, você pode configurar os Insights do contêiner para coletar métricas do Prometheus em seu workspace do Log Analytics. Isso é redundante com os dados no Prometheus Gerenciado e resultará em custos adicionais.
Configure o agente para modificar a coleta de dados nos Insights do contêiner. Analise os dados coletados pelos Insights de contêiner, conforme descrito em Como controlar a ingestão para reduzir os custos, e ajuste a configuração para interromper a coleta de dados de que você não precisa.
Modifique as configurações para coleta de dados de métrica pelos Insights do contêiner. Consulte Habilitar configurações de otimização de custo para obter detalhes sobre como modificar a frequência em que os dados de métrica são coletados e os namespaces coletados pelos Insights do contêiner.
Desabilite a coleta de dados de métrica dos Insights do contêiner se você não usa a experiência de Insights do contêiner no portal do Azure. Os Insights do contêiner coletam muitos dos mesmos valores de métrica que o Prometheus Gerenciado. Você pode desabilitar a coleta dessas métricas configurando Insights do contêiner para coletar somente Logs e eventos, conforme descrito em Habilitar configurações de otimização de custo em Insights do contêiner. Essa configuração desabilita a experiência de Insights do contêiner no portal do Azure, mas você pode usar o Grafana para visualizar as métricas do Prometheus e o Log Analytics para analisar os dados de log coletados pelos Insights do contêiner.
Se você não consulta a tabela de logs de contêiner regularmente nem a usa para alertas, configure-a como logs básicos. Converta seu esquema dos Insights do contêiner em ContainerLogV2, que é compatível com os Logs Básicos e pode fornecer uma economia de custos significativa, conforme descrito em Controlar a ingestão para reduzir custos.
Limite a coleção de logs de recursos que você não precisa. Os logs do painel de controle para clusters do AKS são implementados como logs de recursos no Azure Monitor. Crie uma configuração de diagnóstico para enviar esses dados para um workspace do Log Analytics. Consulte Coletar logs do painel de controle para clusters do AKS para obter recomendações sobre quais categorias você deve coletar.
Use o log específico do recurso para logs de recursos do AKS e configure tabelas como logs básicos. O AKS dá suporte ao modo de diagnóstico do Azure ou ao modo específico do recurso para os logs de recursos. Especifique os logs de recursos para habilitar a opção de configurar as tabelas para logs básicos, que fornecem uma taxa de ingestão reduzida para logs que você só consulta ocasionalmente e não usa para alertas.
Use o OpenCost para coletar detalhes sobre os custos do Kubernetes. O OpenCost é um projeto de área restrita CNCF de software livre e neutro para entender os custos do Kubernetes e dar suporte à sua capacidade de visibilidade de custos do AKS. Ele exporta dados de custo detalhado além dos preços específicos do Azure para o armazenamento do Azure para ajudar o administrador do cluster a analisar e categorizar os custos.

Excelência operacional

Excelência operacional refere-se aos processos de operações necessários para manter um serviço em execução confiável na produção. Use as informações a seguir para minimizar os requisitos operacionais de monitoramento dos seus clusters do Kubernetes.

Lista de verificação de projeto

  • Examine as diretrizes para monitorar todas as camadas do seu ambiente do Kubernetes.
  • Use o Kubernetes habilitado para Azure Arc para monitorar seus clusters fora do Azure.
  • Use os serviços gerenciados do Azure para ferramentas nativas de nuvem.
  • Integre clusters do AKS às ferramentas de monitoramento existentes.
  • Use o Azure Policy para habilitar a coleta de dados do seu cluster do Kubernetes.

Recomendações de configuração

Recomendação Benefício
Examine as diretrizes para monitorar todas as camadas do seu ambiente do Kubernetes. Monitorar o desempenho do seu cluster do Kubernetes com os Insights de contêiner inclui as diretrizes e as melhores práticas para monitorar todo o ambiente do Kubernetes das camadas de rede, cluster e aplicativo.
Use o Kubernetes habilitado para Azure Arc para monitorar seus clusters fora do Azure. O Kubernetes habilitado para Azure Arc permite que os clusters do Kubernetes em execução em outras nuvens sejam monitorados usando as mesmas ferramentas que os clusters do AKS, incluindo os Insights de contêiner e o serviço gerenciado do Azure Monitor para Prometheus.
Use os serviços gerenciados do Azure para ferramentas nativas de nuvem. O serviço gerenciado do Azure Monitor para Prometheus e o Espaço Gerenciado do Azure para o Grafana dão suporte a todos os recursos das ferramentas nativas de nuvem do Prometheus e do Grafana sem precisar operar a infraestrutura subjacente deles. Você pode provisionar rapidamente essas ferramentas e integrar seus clusters do Kubernetes com sobrecarga mínima. Esses serviços permitem que você acesse uma ampla biblioteca de regras e painéis da comunidade para monitorar seu ambiente do Kubernetes.
Integre clusters do AKS às ferramentas de monitoramento existentes. Se você tiver um investimento existente no Prometheus e no Grafana, integre seus clusters do AKS e serviços gerenciados do Azure ao seu ambiente existente usando as diretrizes em Monitorar clusters do Kubernetes usando serviços do Azure e ferramentas nativas de nuvem.
Use o Azure Policy para habilitar a coleta de dados do seu cluster do Kubernetes. Use o Azure Policy para habilitar a coleta de dados para habilitar as métricas do Prometheus, os Insights de contêiner e as configurações de diagnóstico. Isso garante que todos os novos clusters sejam monitorados automaticamente e imponham sua configuração de monitoramento.

Eficiência de desempenho

A eficiência do desempenho é a capacidade de dimensionar sua carga de trabalho para atender às demandas colocadas por usuários de maneira eficiente. Use as informações a seguir para monitorar o desempenho dos seus clusters do Kubernetes e garantir que eles estejam configurados para o desempenho máximo.

Lista de verificação de projeto

  • Habilite a coleção de métricas do Prometheus para seu cluster.
  • Habilite os Insights de contêiner para acompanhar o desempenho do seu cluster.
  • Habilite os alertas recomendados pelo Prometheus.

Recomendações de configuração

Recomendação Benefício
Habilite a coleção de métricas do Prometheus para seu cluster. O Prometheus é uma solução de métricas nativas de nuvem do Cloud Native Compute Foundation e a ferramenta mais comum usada para coletar e analisar dados de métrica de clusters do Kubernetes. Habilite o Prometheus em seu cluster com o serviço gerenciado do Azure Monitor para Prometheus se você ainda não tiver um ambiente do Prometheus. Use o Espaço Gerenciado do Azure para Grafana para analisar os dados coletados do Prometheus.

Consulte Personalizar a extração de métricas do Prometheus no serviço gerenciado do Azure Monitor para o Prometheus para coletar métricas adicionais além da configuração padrão.
Habilite os Insights de contêiner para acompanhar o desempenho do seu cluster. Aohabilitar os Insights de contêiner para seu cluster do Kubernetes, você pode usar as exibições e as pastas de trabalho para acompanhar o desempenho dos componentes do seu cluster. Esses dados podem se sobrepor aos dados coletados pelo Prometheus. Consulte Otimização de custo para obter recomendações sobre o custo.
Habilite os alertas recomendados pelo Prometheus. Os alertas no Azure Monitor notificam você proativamente quando problemas são detectados. Comece com um conjunto de regras de alerta recomendadas pelo Prometheus que detectam os problemas mais comuns de disponibilidade e desempenho do seu cluster. Potencialmente, adicione alertas de pesquisa de logs usando os dados coletados pelos Insights do contêiner.

Próxima etapa