Eventos
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Esse artigo descreve como monitorar a integridade e o desempenho dos clusters do Kubernetes e as cargas de trabalho em execução neles usando o Azure Monitor e os serviços nativos de nuvem e do Azure relacionados. Isso inclui clusters em execução no Serviço de Kubernetes do Azure (AKS) ou em outras nuvens, como AWS e GCP. Diferentes conjuntos de diretrizes são fornecidos para as diferentes funções que normalmente gerenciam componentes exclusivos que compõem um ambiente do Kubernetes.
Importante
Este artigo fornece diretrizes completas sobre como monitorar as diferentes camadas do ambiente do Kubernetes com base em clusters de Serviço de Kubernetes do Azure (AKS) ou clusters Kubernetes em outras nuvens. Se você for iniciante no AKS ou no Azure Monitor, consulte Monitoramento do AKS para obter informações básicas para começar a monitorar um cluster do AKS.
Veja a seguir uma ilustração de um modelo comum de um ambiente típico do Kubernetes, começando da camada de infraestrutura por meio de aplicativos. Cada camada tem requisitos de monitoramento distintos que são abordados por diferentes serviços e normalmente gerenciados por diferentes funções na organização.
A responsabilidade pelas diferentes camadas de um ambiente do Kubernetes e os aplicativos que dependem dele normalmente são abordadas por várias funções. Dependendo do tamanho da sua organização, essas funções podem ser executadas por pessoas diferentes ou até mesmo equipes diferentes. A tabela a seguir descreve as diferentes funções, enquanto as seções abaixo fornecem os cenários de monitoramento que cada um deles normalmente encontrará.
Direitos | Descrição |
---|---|
Desenvolvedor | Desenvolva e mantenha o aplicativo em execução no cluster. Responsável pelo tráfego específico do aplicativo, incluindo o desempenho do aplicativo e falhas. Mantém a confiabilidade do aplicativo de acordo com os SLAs. |
Engenheiro de plataforma | Responsável pelo cluster do Kubernetes. Provisiona e mantém a plataforma usada pelo desenvolvedor. |
Engenheiro de rede | Responsável pelo tráfego entre cargas de trabalho e qualquer entrada/saída com o cluster. Analisa o tráfego de rede e executa a análise de ameaças. |
O Azure fornece um conjunto completo de serviços com base no Azure Monitor para monitorar a integridade e o desempenho de diferentes camadas da infraestrutura do Kubernetes e os aplicativos que dependem dela. Esses serviços funcionam em conjunto uns com os outros para fornecer uma solução de monitoramento completa e são recomendados tanto para o AKS quanto para os clusters do Kubernetes em execução em outras nuvens. Você pode ter um investimento existente em tecnologias nativas de nuvem endossadas pela Cloud Native Computing Foundation. Nesse caso, você pode optar por integrar as ferramentas do Azure ao seu ambiente existente.
Sua escolha de quais ferramentas implantar e sua configuração dependerá dos requisitos do seu ambiente específico. Por exemplo, você pode usar as ofertas gerenciadas no Azure para Prometheus e Grafana ou pode optar por usar a instalação existente dessas ferramentas com os clusters do Kubernetes no Azure. Sua organização também pode usar ferramentas alternativas para insights de contêiner para coletar e analisar logs do Kubernetes, como Splunk ou Datadog.
Importante
O monitoramento de um ambiente complexo, como o Kubernetes, envolve a coleta de uma quantidade significativa de telemetria, grande parte delas incorrendo em um custo. Você deve coletar apenas dados suficientes para atender às suas necessidades. Isso inclui a quantidade de dados coletados, a frequência da coleta e o período de retenção. Se você estiver muito consciente do custo, poderá optar por implementar um subconjunto da funcionalidade completa para reduzir os gastos de monitoramento.
O engenheiro de Rede é responsável pelo tráfego entre cargas de trabalho e qualquer entrada/saída com o cluster. Eles analisam o tráfego de rede e executam a análise de ameaças.
A tabela a seguir lista os serviços que normalmente são usados pelo engenheiro de rede para monitorar a integridade e o desempenho do cluster do Kubernetes e seus componentes.
Serviço | Descrição |
---|---|
Observador de Rede | Pacote de ferramentas no Azure para monitorar as redes virtuais usadas pelos clusters do Kubernetes e diagnosticar problemas detectados. |
Análise de tráfego | O recurso de Observador de Rede que analisa logs de fluxo para fornecer insights sobre o fluxo de tráfego. |
Insights de rede | Recurso do Azure Monitor que inclui uma representação visual do desempenho e da integridade de diferentes componentes de rede e fornece acesso às ferramentas de monitoramento de rede que fazem parte do Observador de Rede. |
Os Insights de rede são habilitados por padrão e não exigem nenhuma configuração. O Observador de Rede também normalmente está habilitado por padrão em cada região do Azure.
A seguir estão cenários comuns para monitorar a rede.
O engenheiro de plataforma, também conhecido como administrador de cluster, é responsável pelo próprio cluster do Kubernetes. Eles provisionam e mantêm a plataforma usada pelos desenvolvedores. Eles precisam entender a integridade do cluster e seus componentes e ser capazes de solucionar problemas detectados. Eles também precisam entender o custo para operar o cluster e, potencialmente, poder alocar custos para equipes diferentes.
Grandes organizações também podem ter um arquiteto de frota, que é semelhante ao engenheiro de plataforma, mas é responsável por vários clusters. Eles precisam de visibilidade em todo o ambiente e devem executar tarefas administrativas em escala. As recomendações em escala estão incluídas nas diretrizes abaixo. Confira O que é o Gerenciador de Frota de Kubernetes do Azure? para obter detalhes sobre como criar um recurso de frota para cenários de vários clusters e em escala.
A tabela a seguir lista os serviços do Azure para que o engenheiro de plataforma monitore a integridade e o desempenho do cluster do Kubernetes e seus componentes.
Serviço | Descrição |
---|---|
Insights do contêiner | Serviço do Azure para clusters Kubernetes habilitados para AKS e Azure Arc que usam uma versão em contêiner do agente do Azure Monitor para coletar logs stdout/stderr, métricas de desempenho e eventos Kubernetes de cada nó em seu cluster. Você pode exibir os dados no portal do Azure ou consultá-los usando o Log Analytics. Configure a experiência do Prometheus para usar visualizações de insights de contêiner com dados do Prometheus. |
Serviço Gerenciado do Azure Monitor para Prometheus | 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. O serviço gerenciado para Prometheus do Azure Monitor é uma solução totalmente gerenciada que é compatível com a linguagem de consulta Prometheus (PromQL) e alertas Prometheus e se integra ao Espaço Gerenciado do Azure para Grafana para visualização. Esse serviço dá suporte ao seu investimento em ferramentas de código aberto sem a complexidade de gerenciar seu próprio ambiente do Prometheus. |
Kubernetes habilitado para Azure Arc | Permite anexar clusters do Kubernetes em execução em qualquer lugar para que você possa gerenciá-los e configurá-los no Azure. Com o agente do Arc instalado, você pode monitorar o AKS e os clusters híbridos juntos usando os mesmos métodos e ferramentas, incluindo insights de contêiner e do Prometheus. |
Espaço Gerenciado do Azure para Grafana | Implementação totalmente gerenciada do Grafana, que é uma plataforma de visualização de dados de software livre comumente usada para apresentar dados do Prometheus. Vários painéis predefinidos do Grafana estão disponíveis para monitorar o Kubernetes e a solução de problemas de pilha completa. |
As seções a seguir identificam as etapas para o monitoramento completo do ambiente do Kubernetes usando os serviços do Azure na tabela acima. As opções de funcionalidade e integração são fornecidas para cada um para ajudá-lo a determinar onde talvez seja necessário modificar essa configuração para atender aos seus requisitos específicos.
A integração de insights de contêiner e o Prometheus Gerenciado podem fazer parte da mesma experiência descrita em Habilitar o monitoramento para clusters do Kubernetes. As seções a seguir descreveram cada uma separadamente para que você possa considerar todas as opções de integração e configuração para cada uma delas.
Importante
Para utilizar o serviço gerenciado do Azure Monitor para o Prometheus, é necessário ter um workspace do Azure Monitor. Para obter informações sobre considerações de design para uma configuração de espaço de trabalho, consulte Arquitetura de espaço de trabalho do Azure Monitor.
Habilite a extração de métricas do Prometheus pelo serviço gerenciado do Azure Monitor para Prometheus do cluster usando um dos seguintes métodos:
Se você já tiver um ambiente prometheus que deseja usar para seus clusters do AKS, habilite o serviço gerenciado do Azure Monitor para Prometheus e, em seguida, use a gravação remota para enviar dados para seu ambiente existente do Prometheus. Você também pode usar a gravação remota para enviar dados de seu ambiente do Prometheus autogerenciado existente para o serviço gerenciado do Azure Monitor para Prometheus.
Consulte Configuração de métricas padrão do Prometheus no Azure Monitor para obter detalhes sobre as métricas coletadas por padrão e a frequência da coleção. Se você quiser personalizar a configuração, consulte Personalizar a extração de métricas do Prometheus no serviço gerenciado do Azure Monitor para Prometheus.
Observação
Use o Grafana para monitorar seu ambiente Kubernetes se você já tiver um investimento existente em Grafana ou se preferir usar painéis do Grafana em vez dos insights de contêiner para analisar seus dados do Prometheus. Se você não quiser usar o Grafana, habilite a experiência do Prometheus nos insights de contêiner para que possa utilizar as visualizações de insights de contêiner com seus dados do Prometheus.
Crie uma instância do Grafana Gerenciado e vincule-a ao workspace do Azure Monitor para que você possa usar seus dados do Prometheus como uma fonte de dados. Você também pode executar essa configuração manualmente usando adicionar o serviço gerenciado para Prometheus do Azure Monitor como fonte de dados. Uma variedade de painéis predefinidos estão disponíveis para monitorar clusters do Kubernetes, incluindo vários que apresentam informações semelhantes como exibições de Insights do contêiner.
Se você tiver um ambiente do Grafana existente, poderá continuar a usá-lo e adicionar o serviço gerenciado do Azure Monitor para o Prometheus como uma fonte de dados. Você também pode adicionar a fonte de dados do Azure Monitor ao Grafana para usar dados coletados por insights de contêiner em painéis personalizados do Grafana. Execute essa configuração se quiser se concentrar nos painéis do Grafana em vez de usar os relatórios e exibições de insights do contêiner.
Quando você habilita os Insights de Contêiner para o cluster do Kubernetes, ele implanta uma versão em contêineres do agente do Azure Monitor que envia dados para um workspace do Log Analytics no Azure Monitor. Os insights de contêiner coletam stdout/stderr de contêiner, logs de infraestrutura e dados de desempenho. Todos os dados de log são armazenados em um workspace do Log Analytics em que podem ser analisados por meio da Linguagem de Consulta Kusto (KQL).
Consulte Habilitar insights de contêiner para pré-requisitos e opções de configuração para integrar seus clusters do Kubernetes. Integre usando Azure Policy para garantir que todos os clusters mantenham uma configuração consistente.
Depois que os insights de contêiner estiverem habilitados para um cluster, execute as seguintes ações para otimizar sua instalação.
Se você tiver uma solução existente para coleta de logs, siga as diretrizes para essa ferramenta ou habilite insights de contêiner e use o recurso de exportação de dados do workspace do Log Analytics para enviar dados para Hubs de Eventos do Azure encaminhar para o sistema alternativo.
Os logs dos componentes do plano de controle do AKS são implementados no Azure como logs de recursos. Atualmente, o Insights do contêiner não usa esses logs e, portanto, você precisa criar suas próprias consultas de log para exibi-las e analisá-las. Para obter detalhes sobre a estrutura e as consultas de log, consulte Como consultar logs do Insights do contêiner.
Crie uma configuração de diagnóstico para que cada cluster do AKS envie os logs de recursos para um workspace do Log Analytics. Use o Azure Policy para garantir uma configuração consistente em vários clusters.
Há custos para enviar logs de recursos para um workspace, portanto, você deve coletar apenas as categorias de log que pretende usar. Para obter uma descrição das categorias disponíveis para o AKS, consulte Logs de recursos. Comece coletando um número mínimo de categorias, depois modifique a configuração de diagnóstico para coletar categorias adicionais à medida que suas necessidades aumentam e conforme você entende os custos associados. Você pode enviar logs para uma conta de armazenamento do Azure a fim de reduzir custos se precisar manter as informações. Para obter detalhes sobre o custo de ingestão e retenção de dados de log, consulte Detalhes de preços dos Logs do Azure Monitor.
Caso não tenha certeza sobre quais logs de recursos habilitar inicialmente, use as recomendações presentes na tabela a seguir, que se baseiam nos requisitos mais comuns do cliente. Você pode habilitar outras categorias posteriormente, se necessário.
Categoria | Habilitar? | Destino |
---|---|---|
kube-apiserver | Habilitar | Espaço de trabalho do Log Analytics |
kube-audit | Habilitar | Armazenamento do Azure. Isso mantém os custos no mínimo, mas mantém os logs de auditoria caso eles sejam requeridos por um auditor. |
kube-audit-admin | Habilitar | Espaço de trabalho do Log Analytics |
kube-controller-manager | Habilitar | Espaço de trabalho do Log Analytics |
kube-scheduler | Desabilitar | |
cluster-autoscaler | Habilitar se o dimensionamento automático estiver habilitado | Espaço de trabalho do Log Analytics |
guard | Habilitar se o Microsoft Entra ID estiver habilitado | Espaço de trabalho do Log Analytics |
AllMetrics | Desabilitar uma vez que as métricas são coletadas no Prometheus Gerenciado | Espaço de trabalho do Log Analytics |
Se você tiver uma solução existente para coleta de logs, siga as diretrizes para essa ferramenta ou habilite insights de contêiner e use o recurso de exportação de dados do workspace do Log Analytics para enviar dados para Hubs de Eventos do Azure encaminhar para o sistema alternativo.
As alterações de configuração nos clusters do AKS são armazenadas no log de atividades. Crie uma configuração de diagnóstico para enviar esses dados ao workspace do Log Analytics para analisá-los com outros dados de monitoramento. Não há nenhum custo para essa coleta de dados e você pode analisar ou alertar sobre os dados usando o Log Analytics.
O nível do cluster inclui o componente a seguir:
Componente | Requisitos de monitoramento |
---|---|
Nó | Conheça o status de preparação e o desempenho da CPU, da memória, do disco e uso de IP para cada nó e monitore proativamente as tendências de uso deles antes de implantar uma carga de trabalho. |
FOLLOWINGA seguir estão cenários comuns para monitorar os componentes de nível de cluster.
Insights do contêiner
Painéis do Grafana
node_disk_io_time_seconds_total
e windows_logical_disk_free_bytes
para monitorar o armazenamento anexado.Log Analytics
Solução de problemas
kubectl debug
para SSH para os nós do AKS. Para obter mais informações sobre esse processo, confira Conectar SSH aos nós de cluster do AKS (Serviço de Kubernetes do Azure) para manutenção ou solução de problemas.Análise de custo
O nível do Kubernetes gerenciado inclui os componentes a seguir:
Componente | Monitoramento |
---|---|
Servidor de API | Monitore o status do servidor da API e identifique qualquer aumento na carga de solicitação e gargalos se o serviço estiver inoperante. |
Kubelet | Monitore o Kubelet para ajudar na solução de problemas de gerenciamento de pods, como pods que não iniciam, nós não prontos ou pods sendo encerrados. |
A seguir estão cenários comuns para monitorar seus componentes do Kubernetes gerenciado.
Insights do contêiner
Grafana
Log Analytics
Use consultas de logs com logs de recursos para analisar logs de plano de controle gerados por componentes do AKS.
Todas as atividades de configuração do AKS são registradas no log de atividades. Ao enviar o log de atividades para um workspace do Log Analytics, você pode analisá-lo com o Log Analytics. Por exemplo, a consulta de exemplo a seguir pode ser usada para retornar registros que identificam uma atualização bem-sucedida em todos os clusters do AKS.
AzureActivity
| where CategoryValue == "Administrative"
| where OperationNameValue == "MICROSOFT.CONTAINERSERVICE/MANAGEDCLUSTERS/WRITE"
| extend properties=parse_json(Properties_d)
| where properties.message == "Upgrade Succeeded"
| order by TimeGenerated desc
Solução de problemas
Os objetos do Kubernetes e os níveis de carga de trabalho incluem os componentes a seguir:
Componente | Requisitos de monitoramento |
---|---|
Implantações | Monitore o estado real vs. desejado da implantação e o status e a utilização de recursos dos pods sendo executados neles. |
Pods | Monitore o status e a utilização de recursos, incluindo a CPU e a memória, dos pods sendo executados no cluster do AKS. |
Contêineres | Monitore a utilização de recursos, incluindo a CPU e a memória, dos contêineres sendo executados no cluster do AKS. |
A seguir estão cenários comuns para monitorar seus objetos e cargas de trabalho do Kubernetes.
Insights do contêiner
Painéis do Grafana
Dados reais
Os Alertas no Azure Monitor notificam você proativamente a respeito de dados e padrões interessantes em seus dados de monitoramento. Eles permitem que você identifique e resolva problemas no seu sistema antes que os clientes os percebam. Se você tiver uma solução ITSM existente para alertas, poderá integrá-la ao Azure Monitor. Você também pode exportar dados do workspace para enviar dados do workspace do Log Analytics para outro local que dê suporte à sua solução de alerta atual.
A tabela a seguir descreve os diferentes tipos de regras de alerta personalizadas que você pode criar com base nos dados coletados pelos serviços descritos acima.
Tipo de Alerta | Descrição |
---|---|
Alertas do Prometheus | Os alertas do Prometheus são escritos em Prometheus Query Language (Prom QL) e aplicados nas métricas do Prometheus armazenadas nos serviços gerenciados do Azure Monitor para o Prometheus. Os alertas recomendados já incluem os alertas mais comuns do Prometheus e você pode criar regras de alerta de adição conforme necessário. |
Regras de alerta de métrica | As regras de alerta de métrica usam os mesmos valores de métrica do Metrics Explorer. Na verdade, você pode criar uma regra de alerta diretamente do Metrics Explorer com os dados que estiver analisando no momento. As regras de alerta de métrica podem ser úteis para alertar sobre o desempenho do AKS usando qualquer um dos valores nas métricas de referência de dados do AKS. |
Regras de alerta de pesquisa de logs | Use regras de alerta de pesquisa de logs para gerar um alerta dos resultados de uma consulta de log. Para obter mais informações, consulte Como criar alertas de pesquisa de logs do Insights do contêiner e Como consultar logs do Insights do contêiner. |
Comece com um conjunto de alertas recomendados do Prometheus das regras de alerta de métrica em Insights de contêiner (versão prévia) que incluem as condições de alerta mais comuns para um cluster do Kubernetes. Você pode adicionar mais regras de alerta mais tarde à medida que identifica condições de alerta adicionais.
Além de desenvolver o aplicativo, o desenvolvedor mantém o aplicativo em execução no cluster. Eles são responsáveis pelo tráfego específico do aplicativo, incluindo o desempenho e as falhas do aplicativo e mantêm a confiabilidade do aplicativo de acordo com os SLAs definidos pela empresa.
A tabela a seguir lista os serviços que são comumente utilizados pelo desenvolvedor para monitorar a integridade e o desempenho do cluster do Kubernetes e dos seus componentes.
Serviço | Descrição |
---|---|
Percepções sobre o aplicativo | Recurso do Azure Monitor que fornece o APM (monitoramento de desempenho do aplicativo) para monitorar aplicativos em execução no cluster do Kubernetes do desenvolvimento, por meio de teste e em produção. Identifique e reduza rapidamente problemas de latência e confiabilidade usando rastreamentos distribuídos. É compatível com OpenTelemetry para instrumentação neutra do fornecedor. |
Consulte Noções básicas de coleta de dados do Application Insights do Azure Monitor para obter opções sobre como configurar a coleta de dados do aplicativo em execução em seu cluster e critérios de decisão sobre o melhor método para seus requisitos específicos.
A seguir estão cenários comuns para monitorar seu aplicativo.
Desempenho do aplicativo
Falhas de aplicativo
Monitoramento de integridade
Logs de aplicativo
Malha de serviço
Eventos
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraTreinamento
Roteiro de aprendizagem
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Certificação
Microsoft Certified: Azure Developer Associate - Certifications
Crie soluções de ponta a ponta no Microsoft Azure para criar Funções do Azure, implementar e gerenciar aplicativos Web, desenvolver soluções utilizando o Armazenamento do Microsoft Azure e muito mais.