Monitorar métricas do plano de controle do Serviço Kubernetes do Azure (AKS) (visualização)
A integridade do plano de controle do Serviço Kubernetes do Azure (AKS) é crítica para o desempenho e a confiabilidade do cluster. As métricas do plano de controle (visualização) fornecem mais visibilidade sobre sua disponibilidade e desempenho, permitindo maximizar a observabilidade geral e manter a excelência operacional. Essas métricas são totalmente compatíveis com Prometheus e Grafana, e podem ser personalizadas para armazenar apenas o que você considerar necessário. Com essas novas métricas, você pode coletar todas as métricas do servidor de API, ETCD, Scheduler, Autoscaler e controller manager.
Este artigo ajuda você a entender esse novo recurso, como implementá-lo e como observar a telemetria coletada.
Pré-requisitos e limitações
- Suporta apenas o serviço gerido do Azure Monitor para Prometheus.
- O link privado não é suportado.
- Somente o padrão ama-metrics-settings-config-map pode ser personalizado. Todas as outras personalizações não são suportadas.
- O cluster deve usar a autenticação de identidade gerenciada.
Instalar ou atualizar a extensão da CLI do aks-preview
Azure
Importante
Os recursos de visualização do AKS estão disponíveis em uma base de autosserviço e opt-in. As visualizações prévias são fornecidas "como estão" e "conforme disponíveis" e são excluídas dos contratos de nível de serviço e da garantia limitada. As visualizações do AKS são parcialmente cobertas pelo suporte ao cliente com base no melhor esforço. Como tal, estas funcionalidades não se destinam a utilização em produção. Para obter mais informações, consulte os seguintes artigos de suporte:
Instale a aks-preview
extensão da CLI do Azure usando o az extension add
comando.
az extension add --name aks-preview
Se você precisar atualizar a versão da extensão, você pode fazer isso usando o az extension update
comando.
az extension update --name aks-preview
Registrar o sinalizador de recurso 'AzureMonitorMetricsControlPlanePreview'
Registre o AzureMonitorMetricsControlPlanePreview
sinalizador de recurso usando o comando az feature register , conforme mostrado no exemplo a seguir:
az feature register --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
Leva alguns minutos para que o status mostre Registrado. Verifique o status do registro usando o comando az feature show :
az feature show --namespace "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
Quando o status refletir Registrado, atualize o registro do provedor de recursos Microsoft.ContainerService usando o comando az provider register :
az provider register --namespace "Microsoft.ContainerService"
Habilite as métricas do plano de controle em seu cluster AKS
Você pode habilitar métricas de plano de controle com o serviço gerenciado do Azure Monitor para o complemento Prometheus durante a criação do cluster ou para um cluster existente. Para coletar métricas do Prometheus do seu cluster Kubernetes, consulte Habilitar o Prometheus e o Grafana para clusters do Kubernetes e siga as etapas na guia CLI para um cluster AKS. Na linha de comando, certifique-se de incluir os parâmetros --generate-ssh-keys
e --enable-managed-identity
.
Se o cluster já tiver o complemento Prometheus implantado, você pode simplesmente executar um az aks update
para garantir que o cluster seja atualizado para começar a coletar métricas do plano de controle.
az aks update -n <cluster-name> -g <resource-group>
Nota
Ao contrário das métricas coletadas dos nós do cluster, as métricas do plano de controle são coletadas por um componente que não faz parte do complemento ama-metrics . Ativar o AzureMonitorMetricsControlPlanePreview
sinalizador de recurso e o complemento prometheus gerenciado garante que as métricas do plano de controle sejam coletadas. Depois de habilitar a coleta de métricas, pode levar vários minutos para que os dados apareçam no espaço de trabalho.
Consultando métricas do plano de controle
As métricas do plano de controle são armazenadas em um espaço de trabalho do monitor do Azure na região do cluster. Eles podem ser consultados diretamente do espaço de trabalho ou por meio da instância do Azure Managed Grafana conectada ao espaço de trabalho. Para localizar o espaço de trabalho do Azure Monitor associado ao cluster, no painel esquerdo do cluster AKS selecionado, navegue até a seção Monitoramento e selecione Insights. Na página Informações do Contêiner do cluster, selecione Configurações do Monitor.
Se estiver a utilizar o Azure Managed Grafana para visualizar os dados, pode importar os seguintes dashboards. O AKS fornece modelos de painel para ajudá-lo a visualizar e analisar os dados de telemetria do seu plano de controle em tempo real.
Personalizar métricas do plano 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. Esta lista pode ser personalizada através do ama-settings-configmap. A lista de métricas de minimal-ingestion
perfil está disponível aqui.
A seguir estão listados 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 Azure Managed Prometheus listado aqui.
Todos os ConfigMaps devem ser aplicados ao kube-system
namespace de qualquer cluster.
Ingerir apenas métricas mínimas para os destinos padrão
Este é 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 neste caso é controlplane-apiserver
e controlplane-etcd
.
Ingerir todas as métricas de todos os alvos
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 sobdefault-scrape-settings-enabled
os quais você deseja raspar 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 é aplicada, leva vários minutos até que as métricas dos destinos especificados raspadas do plano de controle apareçam no espaço de trabalho do Azure Monitor.
Ingerir algumas outras métricas, além das mínimas
Minimal ingestion profile
é uma configuração que ajuda a reduzir o volume de ingestão de métricas, pois apenas métricas usadas por painéis padrão, regras de registro padrão ou 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 sobdefault-scrape-settings-enabled
os quais você deseja raspar 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
.default-targets-metrics-keep-list
Em , especifique a lista de métricas para astrue
metas. 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 é aplicada, leva vários minutos até que as métricas dos destinos especificados raspadas do plano de controle apareçam no espaço de trabalho do Azure Monitor.
Ingerir apenas métricas específicas de alguns alvos
Baixe o arquivo ConfigMap ama-metrics-settings-configmap e renomeie-o para
configmap-controlplane.yaml
.Defina
minimalingestionprofile = false
e verifique se os destinos sobdefault-scrape-settings-enabled
os quais você deseja raspar 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
.default-targets-metrics-keep-list
Em , especifique a lista de métricas para astrue
metas. 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 é aplicada, leva vários minutos até que as métricas dos destinos especificados raspadas do plano de controle apareçam no espaço de trabalho do Azure Monitor.
Solucionar problemas de métricas do plano de controle
Certifique-se de verificar se o sinalizador AzureMonitorMetricsControlPlanePreview
de recurso está ativado e se os ama-metrics
pods estão em execução.
Nota
Os métodos de solução de problemas para o serviço gerenciado do Azure Prometheus não serão traduzidos diretamente aqui, pois os componentes que raspam o plano de controle não estão presentes no complemento Prometheus gerenciado.
Formatação ou erros do ConfigMap
Certifique-se de verificar novamente a formatação do ConfigMap e se os campos estão preenchidos corretamente com os valores pretendidos. Especificamente o default-targets-metrics-keep-list
, minimal-ingestion-profile
, e default-scrape-settings-enabled
.
Isolar o plano de controle do problema do plano de dados
Comece definindo algumas das métricas relacionadas ao nó e true
verifique se as métricas estão sendo encaminhadas para o espaço de trabalho. Isso ajuda a determinar se o problema é específico para raspar métricas do plano de controle.
Acontecimentos ingeridos
Depois de aplicar as alterações, você pode abrir o explorador de métricas na página de 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. Ele deve ajudá-lo a determinar se a métrica específica está faltando ou todas as métricas estão faltando.
A métrica específica não é exposta
Houve casos em que as métricas são documentadas, mas não expostas a partir do destino e não foram encaminhadas para o espaço de trabalho do Azure Monitor. Nesse caso, é necessário verificar se outras métricas estão sendo encaminhadas para o espaço de trabalho.
Sem acesso ao espaço de trabalho do Azure Monitor
Ao habilitar o complemento, você pode ter especificado um espaço de trabalho existente ao qual não tem acesso. Nesse caso, pode parecer que as métricas não estão sendo coletadas e encaminhadas. Certifique-se de criar um novo espaço de trabalho ao habilitar o complemento ou ao criar o cluster.
Desative as métricas do plano de controle em seu cluster AKS
Você pode desativar as métricas do plano de controle a qualquer momento, desativando o sinalizador de recurso, desativando o Prometheus gerenciado ou excluindo o cluster AKS.
Sinalizador de visualização ativado após a configuração do Managed Prometheus
Se o sinalizador de visualização(AzureMonitorMetricsControlPlanePreview
) foi habilitado em um cluster Managed Prometheus existente, será necessário forçar uma atualização para que o cluster emita métricas de plano de controle
Você pode executar uma atualização az aks para garantir que o cluster seja atualizado para começar a coletar métricas do plano de controle.
az aks update -n <cluster-name> -g <resource-group>
Nota
Esta ação não remove quaisquer dados existentes armazenados na sua área de trabalho do Azure Monitor.
Execute o seguinte comando para remover o complemento de métricas que raspa as métricas do Prometheus.
az aks update --disable-azure-monitor-metrics -n <cluster-name> -g <cluster-resource-group>
Execute o seguinte comando para desativar a raspagem de métricas do plano de controle no cluster AKS cancelando o registro do AzureMonitorMetricsControlPlanePreview
sinalizador de recurso usando o comando az feature unregister .
az feature unregister "Microsoft.ContainerService" --name "AzureMonitorMetricsControlPlanePreview"
FAQs
Essas métricas podem ser raspadas com prometheus auto-hospedado?
- As métricas do plano de controle atualmente não podem ser raspadas com prometheus auto-hospedado. O prometheus auto-hospedado será capaz de raspar a única instância 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 através do Managed Prometheus
Por que o agente do usuário não está disponível por meio das métricas do plano de controle?
- As métricas de plano de controle no Kubernetes não têm o agente do usuário. O agente do usuário só está disponível por meio de logs do Plano de Controle disponíveis por meio das configurações de Diagnóstico
Próximos passos
Depois de avaliar este recurso de visualização, compartilhe seus comentários. Estamos interessados em ouvir o que você pensa.
- Saiba mais sobre a lista de métricas padrão para o plano de controle AKS.