Práticas recomendadas para monitorar o Kubernetes com o Azure Monitor

Este artigo fornece práticas recomendadas para monitorar a integridade e o desempenho do Serviço Kubernetes do Azure (AKS) e dos clusters Kubernetes habilitados para Azure Arc. As orientações baseiam-se nos cinco pilares de excelência da arquitetura descritos no Azure Well-Architected Framework.

Fiabilidade

Na nuvem, reconhecemos que falhas acontecem. Em vez de tentar evitar simplesmente as falhas, o objetivo é minimizar os efeitos da falha de um único componente. Use as informações a seguir para aproveitar melhor o Azure Monitor para garantir a confiabilidade de seus clusters Kubernetes e ambiente de monitoramento.

Lista de verificação de estruturação

  • Habilite a raspagem de métricas do Prometheus para seu cluster.
  • Habilite o Container insights para a coleta de logs e dados de desempenho do cluster.
  • Crie configurações de diagnóstico para coletar logs de plano de controle para clusters AKS.
  • Habilite os alertas recomendados do Prometheus.
  • Garanta a disponibilidade do espaço de trabalho do Log Analytics com suporte a insights de contêiner.

Recomendações de configuração

Recomendação Benefício
Habilite a raspagem 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 Prometheus. Use o Azure Managed Grafana para analisar os dados do Prometheus coletados. Consulte Personalizar a raspagem de métricas do Prometheus no serviço gerenciado do Azure Monitor para que o Prometheus colete métricas adicionais além da configuração padrão.
Habilite o Container insights para a coleta de logs e dados de desempenho do cluster. O Container insights coleta logs stdout/stderr, métricas de desempenho e eventos do Kubernetes de cada nó do 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 em seus logs coletados.
Crie configurações de diagnóstico para coletar logs de plano de controle para clusters AKS. O AKS implementa logs de planos de controle como logs de recursos no Azure Monitor. Crie uma configuração de diagnóstico para enviar esses logs para seu espaço de trabalho do Log Analytics para que você possa usar consultas de log para identificar erros e problemas que afetam a disponibilidade.
Habilite os alertas recomendados do Prometheus. Os alertas no Azure Monitor notificam proativamente quando são detetados problemas. Comece com um conjunto de regras de alerta recomendadas do Prometheus que detetam os problemas mais comuns de disponibilidade e desempenho no cluster. Adicione potencialmente alertas de pesquisa de log usando dados coletados pelo Container insights.
Garanta a disponibilidade do espaço de trabalho do Log Analytics com suporte a insights de contêiner. O Container insights depende de um espaço de trabalho do Log Analytics. Consulte Práticas recomendadas para Logs do Azure Monitor para obter recomendações para garantir a confiabilidade do espaço de trabalho.

Segurança

A segurança é um dos aspetos mais importantes de qualquer arquitetura. O Azure Monitor fornece recursos para empregar o princípio de menor privilégio e defesa profunda. Use as informações a seguir para monitorar seus clusters Kubernetes e garantir que apenas usuários autorizados acessem os dados coletados.

Lista de verificação de estruturação

  • Use a autenticação de identidade gerenciada para seu cluster para se conectar ao Container insights.
  • Considere usar o link privado do Azure para que seu cluster se conecte ao seu espaço de trabalho do Azure Monitor usando um ponto de extremidade privado.
  • Use a análise de tráfego para monitorar o tráfego de rede de e para o cluster.
  • Habilite a observabilidade da rede.
  • Garanta a segurança do espaço de trabalho do Log Analytics com suporte a insights de contêiner.

Recomendações de configuração

Recomendação Benefício
Use a autenticação de identidade gerenciada para seu cluster para se conectar ao Container insights. A autenticação de identidade gerenciada é o padrão para novos clusters. Se você estiver usando a autenticação herdada, 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 seu espaço de trabalho do Azure Monitor usando um ponto de extremidade privado. O serviço gerenciado do Azure para Prometheus armazena seus dados em um espaço de trabalho 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 o link privado do Azure para permitir que seu cluster se conecte ao espaço de trabalho por meio de redes privadas autorizadas. O link privado também pode ser usado para forçar a ingestão de dados do espaço de trabalho por meio da Rota Expressa ou de uma VPN.

Consulte Link privado para ingestão de dados para o Managed Prometheus e o espaço de trabalho do Azure Monitor para obter detalhes sobre como configurar seu cluster para link privado. Consulte Usar pontos de extremidade privados para o Prometheus gerenciado e o espaço de trabalho do Azure Monitor para obter detalhes sobre como consultar seus dados usando o link privado.
Use a análise de tráfego para monitorar o tráfego de rede de e para o cluster. A análise de tráfego analisa os logs de fluxo NSG do Azure Network Watcher para fornecer informações sobre o fluxo de tráfego na sua nuvem do Azure. Use essa ferramenta para garantir que não haja exfiltração de dados para seu cluster e para detetar se IPs públicos desnecessários estão expostos.
Habilite a observabilidade da rede. O complemento de observabilidade de rede para AKS fornece observabilidade através das várias camadas na pilha de rede do Kubernetes. monitorar e observar o acesso entre serviços no cluster (tráfego leste-oeste).
Garanta a segurança do espaço de trabalho do Log Analytics com suporte a insights de contêiner. O Container insights depende de um espaço de trabalho do Log Analytics. Consulte Práticas recomendadas para Logs do Azure Monitor para obter recomendações para garantir a segurança do espaço de trabalho.

Otimização de custos

A otimização de custos refere-se a formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Você pode reduzir significativamente seu custo para o Azure Monitor entendendo suas diferentes opções de configuração e oportunidades para reduzir a quantidade de dados que ele coleta. Consulte Custo e utilização do Azure Monitor para compreender as diferentes formas como o Azure Monitor cobra e como ver a sua fatura mensal.

Lista de verificação de estruturação

  • Não habilite a coleta de insights do Container de métricas do Prometheus.
  • Configure a coleção de agentes para modificar a coleta de dados no Container insights.
  • Modifique as configurações para a coleta de dados métricos por Container insights.
  • Desative a coleta de dados métricos do Container insights se você não usar a experiência do Container insights no portal do Azure.
  • Se você não consultar a tabela de logs de contêiner regularmente ou usá-la para alertas, configure-a como logs básicos.
  • Limite a coleta de logs de recursos de que você não precisa.
  • Use o log específico de recursos para logs de recursos AKS e configure tabelas como logs básicos.
  • Use o OpenCost para coletar detalhes sobre seus custos do Kubernetes.

Recomendações de configuração

Recomendação Benefício
Não habilite a coleta de insights de contêiner de métricas do Prometheus no espaço de trabalho do Log Analytics se você tiver habilitado a raspagem de métricas com o Prometheus. Além de extrair métricas do Prometheus do seu cluster usando o serviço gerenciado do Azure Monitor para Prometheus, você pode configurar o Container insights para coletar métricas do Prometheus em seu espaço de trabalho do Log Analytics. Isso é redundante com os dados no Managed Prometheus e resultará em custo adicional.
Configure o agente para modificar a coleta de dados no Container insights. Analise os dados coletados pelo Container insights conforme descrito em Controlando a ingestão para reduzir custos e ajustar sua configuração para interromper a coleta de dados de que você não precisa.
Modifique as configurações para a coleta de dados métricos por Container insights. Consulte Habilitar configurações de otimização de custos para obter detalhes sobre como modificar a frequência com que os dados métricos são coletados e os namespaces coletados pelo Container insights.
Desative a coleta de dados métricos do Container insights se você não usar a experiência do Container insights no portal do Azure. O Container insights coleta muitos dos mesmos valores métricos do Managed Prometheus. Você pode desabilitar a coleta dessas métricas configurando Insights de contêiner para coletar somente logs e eventos , conforme descrito em Habilitar configurações de otimização de custos em Insights de contêiner. Essa configuração desabilita a experiência de insights de contêiner no portal do Azure, mas você pode usar o Grafana para visualizar métricas do Prometheus e o Log Analytics para analisar dados de log coletados por insights de contêiner.
Se você não consultar a tabela de logs de contêiner regularmente ou usá-la para alertas, configure-a como logs básicos. Converta seu esquema de insights de contêiner para ContainerLogV2 , que é compatível com logs básicos e pode fornecer economias de custos significativas, conforme descrito em Controlando a ingestão para reduzir custos.
Limite a coleta de logs de recursos de que você não precisa. Os logs de plano de controle para clusters AKS são implementados como logs de recursos no Azure Monitor. Crie uma configuração de diagnóstico para enviar esses dados para um espaço de trabalho do Log Analytics. Consulte Coletar logs de plano de controle para clusters AKS para obter recomendações sobre quais categorias você deve coletar.
Use o log específico de recursos para logs de recursos AKS e configure tabelas como logs básicos. O AKS suporta o modo de diagnóstico do Azure ou o modo específico de recursos para logs de recursos. Especifique 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ê consulta apenas ocasionalmente e não usa para alertas.
Use o OpenCost para coletar detalhes sobre seus custos do Kubernetes. O OpenCost é um projeto de sandbox CNCF de código aberto e neutro do fornecedor para entender seus custos do Kubernetes e apoiar sua capacidade de visibilidade de custos AKS. Ele exporta dados de custos detalhados, além de preços do Azure específicos do cliente, para o armazenamento do Azure para ajudar o administrador de cluster a analisar e categorizar custos.

Excelência operacional

A excelência operacional refere-se aos processos operacionais necessários para manter um serviço funcionando de forma confiável na produção. Use as informações a seguir para minimizar os requisitos operacionais para monitorar seus clusters Kubernetes.

Lista de verificação de estruturação

  • Revise as diretrizes para monitorar todas as camadas do seu ambiente 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 da nuvem.
  • Integre clusters AKS em suas ferramentas de monitoramento existentes.
  • Use a política do Azure para habilitar a coleta de dados do cluster do Kubernetes.

Recomendações de configuração

Recomendação Benefício
Revise as diretrizes para monitorar todas as camadas do seu ambiente Kubernetes. Monitore o desempenho do cluster Kubernetes com O Container insights inclui orientação e práticas recomendadas para monitorar todo o ambiente Kubernetes a partir 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 seus clusters Kubernetes em execução em outras nuvens sejam monitorados usando as mesmas ferramentas que seus clusters AKS, incluindo insights de contêiner e serviço gerenciado do Azure Monitor para Prometheus.
Use os serviços gerenciados do Azure para ferramentas nativas da nuvem. O serviço gerenciado do Azure Monitor para Prometheus e o Azure managed Grafana dão suporte a todos os recursos das ferramentas nativas da nuvem Prometheus e Grafana sem precisar operar sua infraestrutura subjacente. Você pode provisionar rapidamente essas ferramentas e integrar seus clusters Kubernetes com sobrecarga mínima. Esses serviços permitem que você acesse uma extensa biblioteca de regras e painéis da comunidade para monitorar seu ambiente Kubernetes.
Integre clusters AKS em suas ferramentas de monitoramento existentes. Se você tiver um investimento existente no Prometheus e no Grafana, integre seus clusters AKS e serviços gerenciados do Azure em seu ambiente existente usando as orientações em Monitorar clusters Kubernetes usando serviços do Azure e ferramentas nativas da nuvem.
Use a política do Azure para habilitar a coleta de dados do cluster do Kubernetes. Use a Política do Azure para habilitar a coleta de dados para habilitar métricas do Prometheus, insights de contêiner e configurações de diagnóstico. Isso garante que todos os novos clusters sejam monitorados automaticamente e impõe sua configuração de monitoramento.

Eficiência de desempenho

Eficiência de desempenho é a capacidade da sua carga de trabalho para dimensionar para satisfazer as exigências que os utilizadores lhe colocam de forma eficiente. Use as informações a seguir para monitorar o desempenho de seus clusters Kubernetes e garantir que eles estejam configurados para o máximo desempenho.

Lista de verificação de estruturação

  • Habilite a coleta de métricas do Prometheus para seu cluster.
  • Habilite o Container insights para acompanhar o desempenho do cluster.
  • Habilite os alertas recomendados do Prometheus.

Recomendações de configuração

Recomendação Benefício
Habilite a coleta de métricas do Prometheus para seu cluster. O Prometheus é uma solução de métricas nativa da nuvem da Cloud Native Compute Foundation e a ferramenta mais comum usada para coletar e analisar dados métricos de clusters 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 Prometheus. Use o Azure Managed Grafana para analisar os dados do Prometheus coletados.

Consulte Personalizar a raspagem de métricas do Prometheus no serviço gerenciado do Azure Monitor para que o Prometheus colete métricas adicionais além da configuração padrão.
Habilite o Container insights para acompanhar o desempenho do cluster. Ao habilitar o Container insights para seu cluster Kubernetes, você pode usar modos de exibição e pastas de trabalho para acompanhar o desempenho dos componentes do cluster. Estes dados podem sobrepor-se aos dados recolhidos pelo Prometheus. Consulte Otimização de custos para obter recomendações sobre custo.
Habilite os alertas recomendados do Prometheus. Os alertas no Azure Monitor notificam proativamente quando são detetados problemas. Comece com um conjunto de regras de alerta recomendadas do Prometheus que detetam os problemas mais comuns de disponibilidade e desempenho no cluster. Adicione potencialmente alertas de pesquisa de log usando dados coletados pelo Container insights.

Próximo passo