Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste artigo, você aprenderá a monitorar o plano de controle do AKS (Serviço de Kubernetes do Azure) usando métricas de plano de controle no Azure Monitor.
O AKS dá suporte a um subconjunto de métricas do plano de controle gratuitamente por meio das métricas da plataforma do Azure Monitor. O recurso de métricas do plano de controle fornece visibilidade sobre a disponibilidade e o desempenho de componentes críticos do plano de controle, como o servidor de API etcd, o agendador, o dimensionador automático e o gerenciador de controladores no AKS. O recurso também é totalmente compatível com o serviço gerenciado do Prometheus e do Espaço Gerenciado do Azure para Grafana. Você pode usar essas métricas para maximizar a observabilidade geral e manter a excelência operacional para o cluster do AKS.
Métricas da plataforma do painel de controle
O AKS oferece algumas métricas grátis do plano de controle para monitorar o servidor de API e o etcd. Essas métricas são coletadas automaticamente para todos os clusters do AKS sem custo. Você pode analisar as métricas usando o gerenciador de métricas no portal do Azure. Você também pode criar alertas baseados em métricas usando os dados de métricas.
Para ver a lista completa de métricas de plataforma do painel de controle com suporte, confira a referência de monitoramento do AKS.
Pré-requisitos e limitações
- O recurso de métricas do plano de controle dá suporte apenas ao serviço gerenciado do Prometheus em Azure Monitor.
- Não há suporte para o Link Privado do Azure.
- Você pode personalizar apenas o arquivo de configmap padrão
ama-metrics-settings-configmap.yaml. Não há suporte para nenhuma outra personalização. - O cluster do AKS deve usar a autenticação de identidade gerenciada.
Habilitar métricas do plano de controle em um cluster do AKS
Habilite as métricas do plano de controle usando o serviço gerenciado para o complemento do Prometheus ao criar um novo cluster ou atualizar um cluster existente.
Observação
Ao contrário das métricas coletadas de nós de cluster, as métricas do plano de controle são coletadas por um componente que não faz parte do ama-metrics complemento. A habilitação das métricas do plano de controle (por exemplo, usando a opção --enable-control-plane-metrics) com o controle do serviço gerenciado para Prometheus garante que as métricas do plano de controle sejam coletadas. Os clusters do AKS que foram habilitados anteriormente para métricas do plano de controle durante a fase de visualização passam automaticamente a ter --enable-control-plane-metrics habilitado e continuam a coletar métricas do plano de controle. Depois de habilitar a coleta de métricas, pode levar vários minutos para que os dados apareçam no workspace.
Novo cluster do AKS
Use o az aks create comando para habilitar a coleção de métricas do plano de controle por meio do serviço gerenciado do Prometheus. Para saber como coletar o serviço gerenciado para métricas do Prometheus do cluster do AKS, confira Habilitar o Prometheus e o Grafana para clusters do AKS.
az aks create --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --enable-control-plane-metrics --enable-azure-monitor-metrics
Cluster do AKS existente
Se o cluster já tiver o serviço gerenciado para o complemento do Prometheus, atualize o cluster para garantir que ele colete métricas do plano de controle usando o az aks update comando:
az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --enable-control-plane-metrics
Métricas do plano de controle de consulta
As métricas do painel de controle são armazenadas em um workspace do Azure Monitor na região do cluster. Você pode consultar as métricas diretamente no espaço de trabalho ou usando a Espaço Gerenciado do Azure para Grafana conectada ao espaço de trabalho.
No portal do Azure, acesse o recurso de cluster do AKS.
No menu à esquerda, selecione Monitorar>Configurações do Monitor.
Vá para o workspace do Azure Monitor vinculado ao cluster.
No workspace do Azure Monitor, em Prometheus Gerenciado, consulte as métricas usando o Gerenciador do Prometheus.
Observação
O AKS fornece modelos de painel para ajudar você a exibir e analisar os dados telemétricos do painel de controle em tempo real. Se você usar o Grafana Gerenciado do Azure para visualizar os dados, poderá importar os seguintes painéis:
Personalizar métricas do painel de controle
O AKS inclui um conjunto pré-configurado de métricas a serem coletadas e armazenadas para cada componente. As métricas para o servidor de API e etcd são coletadas por padrão. Você pode personalizar a lista de métricas coletadas modificando o ama-metrics-settings-configmap.yaml arquivo de configmap.
Os destinos padrão incluem os seguintes valores:
controlplane-metrics: |-
default-targets-scrape-enabled: |-
apiserver = true
cluster-autoscaler = false
node-auto-provisioning = false
kube-scheduler = false
kube-controller-manager = false
etcd = true
Todos os arquivos de configmap devem ser aplicados ao kube-system namespace para qualquer cluster.
Observação
Alteração do esquema v2: a configuração dos destinos agora fica separadamente em cluster-metrics e controlplane-metrics, permitindo o controle separado do volume de ingestão para destinos no nível do cluster e destinos do plano de controle. Se você estiver migrando da v1, substitua as configurações nas seções correspondentes dentro de cluster-metrics e controlplane-metrics; observe também o seguinte:
- Altere o nome da chave de "default-scrape-settings-enabled" para "default-targets-scrape-enabled"
- Para destinos na seção controlplane-metrics, remova o prefixo "controlplane-"
- Altere "minimalingestionprofile = true" na keep-list para "minimal-ingestion-profile: |- / enabled = true" como uma seção própria
Personalizar um perfil de ingestão
Você pode personalizar um arquivo de importação para métricas coletadas. Para obter mais informações, confira Perfil de ingestão mínima para métricas do painel de controle no serviço gerenciado do Prometheus.
Ingerir apenas métricas mínimas de destinos padrão
- Definido
controlplane-metrics.minimal-ingestion-profilecomotrue, portanto, ele ingere apenas o conjunto mínimo de métricas para cada um dos destinos padrão:controlplane-apiserverecontrolplane-etcd.
Ingerir todas as métricas de todos os destinos
Baixe o arquivo de configmap
ama-metrics-settings-configmap.yaml.Renomeie o arquivo
configmap-controlplane.yamlde configmap.Defina
controlplane-metrics.minimal-ingestion-profilecomofalse.Em
controlplane-metrics.default-targets-scrape-enabled, verifique se os destinos que você deseja extrair estão definidos comotrue.Os destinos que você pode definir são:
apiservercluster-autoscalernode-auto-provisioningkube-schedulerkube-controller-manageretcd
Aplique o arquivo de configmap usando o
kubectl applycomando:kubectl apply -f configmap-controlplane.yaml
Depois de aplicar a configuração, leva vários minutos para que as métricas dos destinos especificados que são coletadas do plano de controle apareçam no espaço de trabalho do Azure Monitor.
Ingerir mais do que métricas mínimas
Usar a controlplane-metrics.minimal-ingestion-profile configuração ajuda a reduzir o volume de ingestão de métricas. Se definido como true, somente as regras de gravação padrão, os alertas padrão e as métricas que aparecem nos painéis padrão serão coletados.
Baixe o arquivo de configmap
ama-metrics-settings-configmap.yaml.Renomeie o arquivo
configmap-controlplane.yamlde configmap.Defina
controlplane-metrics.minimal-ingestion-profilecomotrue.Em
controlplane-metrics.default-targets-scrape-enabled, verifique se os destinos que você deseja extrair estão definidos comotrue.Os destinos que você pode definir são:
apiservercluster-autoscalernode-auto-provisioningkube-schedulerkube-controller-manageretcd
Em
controlplane-metrics.default-targets-metrics-keep-list, especifique a lista de métricas para os destinostrue.Por exemplo:
apiserver= "apiserver_admission_webhook_admission_duration_seconds|apiserver_longrunning_requests"Aplique o arquivo de configmap usando o
kubectl applycomando:kubectl apply -f configmap-controlplane.yaml
Depois de aplicar a configuração, leva vários minutos para que as métricas dos destinos especificados que são coletadas do plano de controle apareçam no espaço de trabalho do Azure Monitor.
Ingerir métricas específicas de destinos específicos
Baixe o arquivo de configmap
ama-metrics-settings-configmap.yaml.Renomeie o arquivo
configmap-controlplane.yamlde configmap.Defina
controlplane-metrics.minimal-ingestion-profilecomofalse.Em
controlplane-metrics.default-targets-scrape-enabled, verifique se os destinos que você deseja extrair estão definidos comotrue.Os destinos que você pode definir são:
apiservercluster-autoscalernode-auto-provisioningkube-schedulerkube-controller-manageretcd
Em
controlplane-metrics.default-targets-metrics-keep-list, especifique a lista de métricas para os destinostrue.Por exemplo:
apiserver= "apiserver_admission_webhook_admission_duration_seconds|apiserver_longrunning_requests"Aplique o arquivo de configmap:
kubectl apply -f configmap-controlplane.yaml
Depois de aplicar a configuração, leva vários minutos para que as métricas dos destinos especificados que são coletadas do plano de controle apareçam no espaço de trabalho do Azure Monitor.
Solucionar problemas de métricas do painel de controle
Não se esqueça de habilitar o sinalizador --enable-control-plane-metrics e se os pods ama-metrics estão em execução.
Observação
Os métodos de solução de problemas para o serviço gerenciado do Prometheus não se aplicam diretamente neste cenário. Os componentes que extraem o painel de controle não estão incluídos no complemento do serviço gerenciado para Prometheus.
Formatação de arquivo de configuração: certifique-se de usar a formatação correta no arquivo de configmap. Verifique se os campos
controlplane-metrics.default-targets-metrics-keep-listecontrolplane-metrics.minimal-ingestion-profilecontrolplane-metrics.default-targets-scrape-enabledoutros campos estão preenchidos corretamente com seus valores pretendidos.Isole o painel de controle do plano de dados: comece definindo algumas das métricas relacionadas ao nó para
truee, em seguida verifique se as métricas estão sendo encaminhadas para o workspace. Concluir essas etapas ajudará você a determinar se um problema é específico ao extrair as métricas do painel de controle.Uma alteração no número de eventos ingeridos: depois de aplicar as alterações, você pode abrir o gerenciador de métricas no portal do Azure. Vá para o painel de visão geral do Azure Monitor para o cluster ou vá para a seção Monitoramento do cluster selecionado. Verifique se há um aumento ou uma diminuição no número de eventos ingeridos por minuto. Essas informações podem ajudá-lo a determinar se uma métrica específica está ausente ou se todas as métricas estão ausentes.
Uma métrica específica não é exposta: em alguns cenários, uma métrica é documentada, mas não é exposta do destino e não é encaminhada para o workspace do Azure Monitor. Nesse caso, é necessário verificar se outras métricas são encaminhadas para a área de trabalho.
Alteração do esquema v2: a configuração de destinos no esquema v2 do configmap agora é separada em cluster-metrics e controlplane-metrics, permitindo o controle separado do volume de ingestão para destinos no nível do cluster e destinos do plano de controle. Se você estiver migrando da v1, substitua as configurações nas seções correspondentes dentro de cluster-metrics e controlplane-metrics. Observe também que o nome da chave foi alterado de "default-scrape-settings-enabled" para "default-targets-scrape-enabled"
Observação
Se você quiser coletar a métrica
apiserver_request_duration_secondsou outra métrica de bucket, deverá definir a série inteira na família de histogramas:apiserver = "apiserver_request_duration_seconds_bucket|apiserver_request_duration_seconds_sum|apiserver_request_duration_seconds_count"Sem acesso ao workspace do Azure Monitor: ao habilitar o complemento, você pode especificar um workspace existente que não pode acessar. Nesse cenário, parece que as métricas não são coletadas e encaminhadas. Crie um novo workspace para usar para coletar métricas 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 plano de controle a qualquer momento usando o sinalizador --disable-control-plane-metrics ou desabilitando o complemento do serviço gerenciado para Prometheus.
Para desabilitar as métricas do plano de controle de extração no cluster do AKS, use o comando
az aks update:az aks update --disable-control-plane-metrics --name $CLUSTER_NAME --resource-group $RESOURCE_GROUPRemova o complemento de métricas que raspa as métricas do Prometheus usando o
az aks updatecomando. Observe que desativar as métricas do Prometheus desativa a coleta de métricas de outros alvos no seu cluster do AKS.az aks update --disable-azure-monitor-metrics --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP
Perguntas frequentes
Posso extrair as métricas do painel de controle usando o Prometheus auto-hospedado?
Não. Atualmente, você não pode extrair as métricas do painel de controle usando o Prometheus auto-hospedado. O Prometheus auto-hospedado pode extrair métricas de apenas uma instância, dependendo do balanceador de carga, portanto, as métricas não são confiáveis. Muitas vezes, várias réplicas das métricas do plano de controle são visíveis apenas por meio do serviço gerenciado do Prometheus.
Por que o agente de usuário não está disponível nas métricas do plano de controle?
No AKS, as métricas do plano de controle não têm o agente do usuário. O agente de usuário só está disponível por meio dos logs do plano de controle que você acessa nas configurações de diagnóstico.