Share via


Monitorar as métricas do painel de controle do AKS (Serviço de Kubernetes do Azure) (versão prévia)

A integridade do painel de controle do AKS (Serviço de Kubernetes do Azure) é fundamental para o desempenho e a confiabilidade do cluster. As métricas do painel de controle (versão prévia) fornecem mais visibilidade de sua disponibilidade e desempenho, permitindo maximizar a observabilidade geral e manter a excelência operacional. Essas métricas são totalmente compatíveis com o Prometheus e Grafana e podem ser personalizadas para armazenar apenas o que você considera necessário. Com essas novas métricas, você pode coletar todas as métricas do servidor de API, ETCD, Agendador, Autoscaler e gerenciador de controladores.

Este artigo irá ajudar você a entender esse novo recurso, como implementá-lo e como observar a telemetria coletada.

Pré-requisitos e limitações

Instalar ou atualizar a extensão aks-preview da CLI do Azure

Importante

As versões prévias do recurso AKS estão disponíveis em uma base de autoatendimento e aceitação. As visualizações são fornecidas "como estão" e "conforme disponíveis" e estão excluídas dos acordos de nível de serviço e da garantia limitada. As versões prévias do AKS são parcialmente cobertas pelo suporte ao cliente em uma base de melhor esforço. Dessa forma, esses recursos não são destinados ao uso em produção. Para obter mais informações, consulte os seguintes artigos:

Instale a extensão aks-preview da CLI do Azure usando o comando az extension add.

az extension add --name aks-preview

Se você precisar atualizar a versão da extensão, poderá fazer isso usando o comando az extension update.

az extension update --name aks-preview

Registrar o sinalizador de recurso "AzureMonitorMetricsControlPlanePreview"

Registre o sinalizador de recursos AzureMonitorMetricsControlPlanePreview usando o comando az feature register, conforme mostrado no seguinte exemplo:

az feature register --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"

Demora alguns minutos para o status exibir Registrado. Verifique o status do registro usando o comando az feature show:

az feature show --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"

Quando o status reflete Registrado, atualize o registro do provedor de recursos Microsoft.ContainerService usando o comando az provider register:

az provider register --namespace "Microsoft.ContainerService"

Habilitar métricas do painel de controle em seu cluster do AKS

Você pode habilitar as métricas do painel de controle com o complemento do serviço gerenciado para Prometheus do Azure Monitor durante a criação do cluster ou para um cluster existente. Para coletar métricas do Prometheus do cluster do Kubernetes, consulte Habilitar o Prometheus e o Grafana para clusters do Kubernetes e siga as etapas na guia CLI para um cluster do AKS. Na linha de comando, inclua os parâmetros --generate-ssh-keys e --enable-managed-identity.

Se o seu cluster já tiver o complemento do Prometheus implantado, basta executar um az aks update para garantir que as atualizações do cluster comecem a coletar métricas do plano de controle.

az aks update -n <cluster-name> -g <resource-group>

Observação

Ao contrário das métricas coletadas de nós de cluster, as métricas do painel de controle são coletadas por um componente que não faz parte do complemento ama-metrics. A habilitação do sinalizador de recurso AzureMonitorMetricsControlPlanePreview e o complemento Prometheus gerenciado garante que as métricas do painel de controle sejam coletadas. Depois de habilitar a coleta de métricas, pode levar vários minutos para que os dados apareçam no workspace.

Consultar métricas do painel de controle

As métricas do painel de controle são armazenadas em um workspace do Azure Monitor na região do cluster. Elas podem ser consultadas diretamente do workspace ou por meio da instância do Espaço Gerenciado do Azure para Grafana conectada ao workspace. Para localizar o workspace do Azure Monitor associado ao cluster, no painel esquerdo do cluster do AKS selecionado, navegue até a seção Monitoramento e selecione Insights. Na página Insights do Contêiner para o cluster, selecione Monitorar Configurações.

Captura de tela do espaço de trabalho do Azure Monitor.

Se você estiver usando o Espaço Gerenciado do Azure para Grafana para visualizar os dados, poderá importar os painéis a seguir. O AKS fornece modelos do painel de controle para ajudá-lo a exibir e analisar os dados de telemetria do painel de controle em tempo real.

Personalizar métricas do painel de controle

Por padrão, os AKs incluem um conjunto pré-configurado de métricas para coletar e armazenar para cada componente. API server e etcd estão habilitados por padrão. Essa lista pode ser personalizada por meio do ama-settings-configmap. A lista de métricas de perfil minimal-ingestion está disponível aqui.

O seguinte lista os destinos padrão:

controlplane-apiserver = true
controlplane-cluster-autoscaler = false
controlplane-kube-scheduler = false
controlplane-kube-controller-manager = false
controlplane-etcd = true

As várias opções são semelhantes ao Prometheus Gerenciado do Azure listado aqui.

Todos os ConfigMaps devem ser aplicados ao namespace kube-system de qualquer cluster.

Ingerir apenas métricas mínimas do destino padrão

Esse é o comportamento padrão com a configuração default-targets-metrics-keep-list.minimalIngestionProfile="true". Somente as métricas listadas posteriormente neste artigo são ingeridas para cada um dos destinos padrão, que nesse caso é controlplane-apiserver e controlplane-etcd.

Ingerir todas as métricas de todos os destinos

Execute as etapas a seguir para coletar todas as métricas de todos os destinos no cluster.

  1. Baixe o arquivo ConfigMap ama-metrics-settings-configmap.yaml e renomeie-o para configmap-controlplane.yaml.

  2. Defina minimalingestionprofile = false e verifique se os destinos em default-scrape-settings-enabled que você deseja extrair estão definidos como true. Os únicos destinos que você pode especificar são: controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler, controlplane-kube-controller-manager e controlplane-etcd.

  3. Aplique o ConfigMap executando o comando kubectl apply.

    kubectl apply -f configmap-controlplane.yaml
    

    Depois que a configuração for aplicada, leva vários minutos até que as métricas dos destinos especificados raspados do painel de controle apareçam no workspace do Azure Monitor.

Ingerir algumas outras métricas além das métricas mínimas

Minimal ingestion profile é uma configuração que ajuda a reduzir o volume de ingestão de métricas, pois somente as métricas usadas por painéis padrão, regras de gravação padrão e alertas padrão são coletados. Execute as etapas a seguir para personalizar esse comportamento.

  1. Baixe o arquivo ConfigMap ama-metrics-settings-configmap e renomeie-o para configmap-controlplane.yaml.

  2. Defina minimalingestionprofile = true e verifique se os destinos em default-scrape-settings-enabled que você deseja extrair estão definidos como true. Os únicos destinos que você pode especificar são: controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler, controlplane-kube-controller-manager e controlplane-etcd.

  3. Em default-targets-metrics-keep-list, especifique a lista de métricas para os destinos true. Por exemplo,

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
    
  • Aplique o ConfigMap executando o comando kubectl apply.

    kubectl apply -f configmap-controlplane.yaml
    

    Depois que a configuração for aplicada, leva vários minutos até que as métricas dos destinos especificados raspados do painel de controle apareçam no workspace do Azure Monitor.

Ingerir apenas métricas específicas de alguns destinos

  1. Baixe o arquivo ConfigMap ama-metrics-settings-configmap e renomeie-o para configmap-controlplane.yaml.

  2. Defina minimalingestionprofile = false e verifique se os destinos em default-scrape-settings-enabled que você deseja extrair estão definidos como true. Os únicos destinos que você pode especificar aqui são controlplane-apiserver, controlplane-cluster-autoscaler, controlplane-kube-scheduler,controlplane-kube-controller-manager e controlplane-etcd.

  3. Em default-targets-metrics-keep-list, especifique a lista de métricas para os destinos true. Por exemplo,

    controlplane-apiserver= "apiserver_admission_webhook_admission_duration_seconds| apiserver_longrunning_requests"
    
  • Aplique o ConfigMap executando o comando kubectl apply.

    kubectl apply -f configmap-controlplane.yaml
    

    Depois que a configuração for aplicada, leva vários minutos até que as métricas dos destinos especificados raspados do painel de controle apareçam no workspace do Azure Monitor.

Solucionar problemas de métricas do painel de controle

Verifique se o sinalizador de recurso AzureMonitorMetricsControlPlanePreview está habilitado e se os pods de ama-metrics estão em execução.

Observação

Os métodos de solução de problemas para o serviço gerenciado do Azure Prometheus não serão movidos diretamente aqui, pois os componentes que extraem o painel de controle não estão presentes no complemento do Prometheus gerenciado.

Formatação ou erros de ConfigMap

Verifique novamente a formatação do ConfigMap e se os campos estão preenchidos corretamente com os valores pretendidos. Especificamente, default-targets-metrics-keep-list, minimal-ingestion-profile e default-scrape-settings-enabled.

Isolar o painel de controle do problema do plano de dados

Comece definindo algumas métricas relacionadas ao nó para true e verifique se as métricas estão sendo encaminhadas para o workspace. Isso ajuda a determinar se o problema é específico para extração das métricas do painel de controle.

Eventos ingeridos

Depois de aplicar as alterações, você pode abrir o explorador de métricas a partir da página Visão geral do Azure Monitor ou na seção Monitoramento do cluster selecionado. No portal do Azure, selecione Métricas. Verifique se há um aumento ou diminuição no número de eventos ingeridos por minuto. Isso deve ajudá-lo a determinar se a métrica específica está ausente ou se todas as métricas estão ausentes.

A métrica específica não é exposta

Houve casos em que as métricas estão documentadas, mas não expostas do destino e não foram encaminhadas para o workspace do Azure Monitor. Nesse caso, é necessário verificar se outras métricas estão sendo encaminhadas para o workspace.

Sem acesso ao workspace do Azure Monitor

Ao habilitar o complemento, você pode ter especificado um workspace existente ao qual não tem acesso. Nesse caso, pode parecer que as métricas não estão sendo coletadas e encaminhadas. Crie um novo workspace ao habilitar o complemento ou ao criar o cluster.

Desabilitar métricas do painel de controle em seu cluster do AKS

Você pode desabilitar as métricas do painel de controle a qualquer momento desabilitando o sinalizador de recurso, desabilitando o Prometheus gerenciado ou excluindo o cluster do AKS.

Sinalizador de visualização ativado após a configuração do Prometheus Gerenciado

Se o sinalizador de visualização (AzureMonitorMetricsControlPlanePreview) tiver sido ativado em um cluster do Managed Prometheus existente, será necessário forçar uma atualização para que o cluster emita métricas do plano de controle

Você pode executar uma atualização do az aks para garantir que as atualizações do cluster comecem a coletar métricas do plano de controle.

az aks update -n <cluster-name> -g <resource-group>

Observação

Essa ação não remove os dados existentes armazenados no workspace do Azure Monitor.

Execute o comando a seguir para remover o complemento de métricas que extrai as métricas do Prometheus.

az aks update --disable-azure-monitor-metrics -n <cluster-name> -g <cluster-resource-group>

Execute o comando a seguir para desabilitar a extração de métricas do painel de controle no cluster do AKS cancelando o registro do sinalizador de recurso AzureMonitorMetricsControlPlanePreview usando o comando az feature unregister.

az feature unregister "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"

Perguntas Frequentes

  • Essas métricas podem ser eliminadas com o prometheus auto-hospedado?

    • As métricas do plano de controle atualmente não podem ser extraídas com o prometheus auto-hospedado. O Prometheus auto-hospedado será capaz de raspar a instância única, dependendo do balanceador de carga. Essas métricas não são precisas, pois muitas vezes há várias réplicas das métricas do plano de controle que só serão visíveis por meio do Managed Prometheus
  • Por que o agente do usuário não está disponível nas métricas do plano de controle?

Próximas etapas

Depois de avaliar a versão prévia do recurso, compartilhe seus comentários. Estamos interessados em saber o que você pensa.