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
- Só dá suporte ao serviço gerenciado para Prometheus do Azure Monitor.
- Não há suporte para o link privado.
- Somente o ama-metrics-settings-config-map padrão pode ser personalizado. Não há suporte para todas as outras personalizações.
- O cluster deve usar a autenticação de identidade gerenciada.
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.
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.
Baixe o arquivo ConfigMap ama-metrics-settings-configmap.yaml e renomeie-o para
configmap-controlplane.yaml
.Defina
minimalingestionprofile = false
e verifique se os destinos emdefault-scrape-settings-enabled
que você deseja extrair estão definidos comotrue
. Os únicos destinos que você pode especificar são:controlplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
econtrolplane-etcd
.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.
Baixe o arquivo ConfigMap ama-metrics-settings-configmap e renomeie-o para
configmap-controlplane.yaml
.Defina
minimalingestionprofile = true
e verifique se os destinos emdefault-scrape-settings-enabled
que você deseja extrair estão definidos comotrue
. Os únicos destinos que você pode especificar são:controlplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
econtrolplane-etcd
.Em
default-targets-metrics-keep-list
, especifique a lista de métricas para os destinostrue
. 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
Baixe o arquivo ConfigMap ama-metrics-settings-configmap e renomeie-o para
configmap-controlplane.yaml
.Defina
minimalingestionprofile = false
e verifique se os destinos emdefault-scrape-settings-enabled
que você deseja extrair estão definidos comotrue
. Os únicos destinos que você pode especificar aqui sãocontrolplane-apiserver
,controlplane-cluster-autoscaler
,controlplane-kube-scheduler
,controlplane-kube-controller-manager
econtrolplane-etcd
.Em
default-targets-metrics-keep-list
, especifique a lista de métricas para os destinostrue
. 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?
- As métricas do plano de controle no Kubernetes não possuem o agente do usuário. O agente do usuário só está disponível por meio de registros do Plano de Controle disponíveis em Configurações de diagnóstico
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.
- Saiba mais sobre a lista de métricas padrão para o painel de controle do AKS.