Compartilhar via


Habilitar monitoramento para clusters do Kubernetes

Este artigo descreve como habilitar o monitoramento completo dos seus clusters do Kubernetes utilizando os seguintes recursos do Azure Monitor:

Usando o portal do Azure, você pode habilitar todos os recursos ao mesmo tempo. Você também pode habilitá-los individualmente utilizando a CLI do Azure,o modelo do Azure Resource Manager, Terraform ou Azure Policy. Cada um desses métodos é descrito neste artigo.

Importante

Os clusters do Kubernetes geram muitos dados de log, o que pode resultar em custos significativos se você não for seletivo sobre os logs coletados. Antes de habilitar o monitoramento para seu cluster, consulte os seguintes artigos para garantir que seu ambiente seja otimizado para custo e que você limite sua coleção de logs apenas aos dados necessários:

Clusters com suporte

Este artigo fornece orientações de integração para os seguintes tipos de clusters. As diferenças no processo para cada tipo estão destacadas nas seções relevantes.

Pré-requisitos

Permissões

Pré-requisitos do Prometheus gerenciado

  • O cluster deve usar a autenticação de identidade gerenciada.
  • Os seguintes provedores de recursos devem ser registrados na assinatura do cluster e no workspace do Azure Monitor:
    • Microsoft.ContainerService (Serviço de Contêineres)
    • Microsoft.insights
    • Microsoft.GerenciamentoDeAlertas
    • Microsoft.Monitor
    • Os seguintes provedores de recursos devem ser registrados na assinatura da assinatura do workspace do Grafana:
      • Microsoft.Dashboard

Pré-requisitos dos clusters do Kubernetes habilitados para Arc

Observação

A extensão Kubernetes Habilitada para Arc do Prometheus Gerenciado não é compatível com as seguintes configurações:

  • Distribuições do Red Hat Openshift, incluindo o ARO (Red Hat OpenShift no Azure)
  • Nós do Windows*

*Para clusters habilitados para ARC com nós do Windows, você pode configurar o Prometheus Gerenciado do Azure em um nó Linux dentro do cluster e configurar a extração de métricas de pontos de extremidade de métricas em execução nos nós do Windows.

Espaços de Trabalho

A tabela a seguir descreve os workspaces necessários para suportar o Prometheus gerenciado e os Insights de contêiner. Você pode criar cada workspace como parte do processo de integração ou usar um workspace já existente. Confira Criar uma arquitetura de workspace do Log Analytics para obter diretrizes sobre quantos workspaces criar e onde posicioná-los.

Recurso Espaço de trabalho Observações
Prometheus Gerenciado Workspace do Azure Monitor A permissão Contributor é suficiente para habilitar o complemento para enviar dados para o workspace do Azure Monitor. Você precisará de permissão no nível de Owner para vincular seu Workspace do Azure Monitor para exibir métricas no Espaço Gerenciado do Azure para Grafana. Isso é necessário porque o usuário que executa a etapa de integração precisa ser capaz de fornecer a função Monitoring Reader à Identidade do Sistema de Espaço Gerenciado do Azure para Grafana no Workspace do Azure Monitor para consultar as métricas.
Insights do contêiner Espaço de Trabalho do Log Analytics Você pode anexar um cluster a um espaço de trabalho do Log Analytics em uma assinatura diferente do Azure no mesmo locatário do Microsoft Entra, mas deve usar a CLI do Azure ou um modelo do Azure Resource Manager. No momento, não é possível executar essa configuração com o portal do Azure.

Se você estiver conectando um cluster existente a um workspace do Log Analytics em outra assinatura, o provedor de recursos Microsoft.ContainerService deverá ser registrado na assinatura com o workspace do Log Analytics. Para saber mais, confira Registrar provedores de recursos.

Para obter uma lista dos pares de mapeamento com suporte a serem usados para o workspace padrão, consulte Mapeamento de regiões para insights de contêiner. Consulte Configurar o Azure Monitor com o Perímetro de Segurança de Rede para obter diretrizes sobre como configurar o workspace com o perímetro de segurança de rede.
Grafana Gerenciado Workspace do Espaço Gerenciado do Azure para Grafana Vincule seu workspace do Grafana ao seu workspace do Azure Monitor para disponibilizar as métricas do Prometheus coletadas do seu cluster nos painéis do Grafana.

Habilitar Prometheus e Grafana

Use um dos métodos a seguir para habilitar a extração de métricas do Prometheus no seu cluster e ativar o Grafana gerenciado para visualizar as métricas. Confira Vincular um workspace do Grafana para opções de conectar seu workspace do Azure Monitor e o workspace do Espaço Gerenciado do Azure para Grafana.

Importante

  • Se você implantar usando um modelo ou o Azure Policy, verifique se os pontos de extremidade de coleta de dados, as regras de coleta de dados e as associações de regras de coleta de dados estão nomeados como MSProm-<Location of Azure Monitor Workspace>-<Name of cluster resource>, caso contrário, o processo de integração não será concluído com êxito.

  • Se você tiver um único Recurso do Azure Monitor vinculado a privado, a habilitação do Prometheus não funcionará se o cluster do AKS e o Workspace do Azure Monitor estiverem em regiões diferentes. Crie um novo DCE e um DCRA na mesma região do cluster. Associe o novo DCE ao cluster e nomeie o novo DCRA como configurationAccessEndpoint. Consulte Habilitar link privado para monitoramento do Kubernetes no Azure Monitor.

Habilitar com a CLI

Se você não especificar um workspace do Azure Monitor já existente nos comandos a seguir, será usado o workspace padrão para o grupo de recursos. Se ainda não houver um workspace padrão na região do seu cluster, um novo será criado com um nome seguindo o formato DefaultAzureMonitorWorkspace-<mapped_region> dentro de um grupo de recursos chamado DefaultRG-<cluster_region>.

Pré-requisitos

  • É necessária a versão 2.49.0 ou superior da CLI do Azure.
  • É necessário desinstalar a extensão aks-preview dos clusters do AKS usando o comando az extension remove --name aks-preview.
  • Instale a extensão k8s-extension com o comando az extension add --name k8s-extension.
  • É necessária a extensão k8s versão 1.4.1 ou superior.

Parâmetros opcionais

Cada um dos comandos para AKS e Arc-Enabled Kubernetes permitem os seguintes parâmetros opcionais. O nome do parâmetro é diferente para cada um, mas seu uso é o mesmo.

Parâmetro Nome e descrição
Chaves de anotação AKS: --ksm-metric-annotations-allow-list
Arc: --AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList

Lista de chaves de anotações do Kubernetes separadas por vírgulas usadas na métrica do recurso kube_resource_annotations. Por exemplo, kube_pod_annotations é a métrica de anotações do recurso de pods. Por padrão, essa métrica contém apenas rótulos de nome e namespace. Para incluir mais anotações, forneça uma lista de nomes de recursos no plural e chaves de anotação do Kubernetes que você deseja permitir para elas. Um único * pode ser fornecido para cada recurso para permitir anotações, mas isso tem sérias implicações de desempenho. Por exemplo, pods=[kubernetes.io/team,...],namespaces=[kubernetes.io/team],....
Chaves de rótulo AKS: --ksm-metric-labels-allow-list
Arc: --AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist

Lista separada por vírgulas de mais chaves de rótulo do Kubernetes usadas na métrica kube_resource_labels da métrica do recurso kube_resource_labels. Por exemplo, kube_pod_labels é a métrica de rótulos do recurso de pods. Por padrão, essa métrica contém apenas rótulos de nome e namespace. Para incluir mais rótulos, forneça uma lista dos nomes de recursos no seu formato plural e chaves de rótulo do Kubernetes que você quer permitir para eles. Um único * pode ser fornecido para cada recurso para permitir rótulos, mas isso tem severas implicações de desempenho. Por exemplo, pods=[app],namespaces=[k8s-label-1,k8s-label-n,...],....
Regras de gravação AKS: --enable-windows-recording-rules

Permite habilitar os grupos de regras de gravação necessários para o funcionamento adequado dos painéis do Windows.

Cluster do AKS

Use a opção -enable-azure-monitor-metrics, az aks create ou az aks update (dependendo se você estiver criando um novo cluster ou atualizando um cluster existente) para instalar o complemento de métricas que extrai as métricas do Prometheus.

### Use default Azure Monitor workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group>

### Use existing Azure Monitor workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --azure-monitor-workspace-resource-id <workspace-name-resource-id>

### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --azure-monitor-workspace-resource-id <azure-monitor-workspace-name-resource-id> --grafana-resource-id  <grafana-workspace-name-resource-id>

### Use optional parameters
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --ksm-metric-labels-allow-list "namespaces=[k8s-label-1,k8s-label-n]" --ksm-metric-annotations-allow-list "pods=[k8s-annotation-1,k8s-annotation-n]"

Cluster habilitado para Arc

### Use default Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics

## Use existing Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id>

### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id>

### Use optional parameters
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id> AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList="pods=[k8s-annotation-1,k8s-annotation-n]" AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist "namespaces=[k8s-label-1,k8s-label-n]"

Os seguintes parâmetros opcionais adicionais estão disponíveis para clusters habilitados para Azure Arc:

Parâmetro Descrição Padrão Configuração do cluster Upstream Arc
ClusterDistribution A distribuição do cluster. Azure.Cluster.Distribution sim
CloudEnvironment O ambiente de nuvem para o cluster. Azure.Cluster.Cloud sim
MountCATrustAnchorsDirectory Se deve ou não montar o diretório de âncoras de confiança da CA. true Não
MountUbuntuCACertDirectory Se deve ou não montar o diretório de certificados CA do Ubuntu. true a menos que uma aks_edge distro. Não

Habilitar os Insights do contêiner

Use um dos métodos a seguir para habilitar o Insights de contêiner. Depois de concluir, confira Configurar a coleta de dados do agente para obter Insights de contêiner para ajustar a configuração e assegurar que não esteja coletando mais dados do que o necessário.

Importante

Use um dos comandos a seguir para habilitar o monitoramento dos clusters habilitados para Arc e AKS. Se você não especificar um workspace do Log Analytics já existente nos comandos a seguir, será usado o workspace padrão para o grupo de recursos. Se um workspace padrão ainda não existir na região do cluster, um será criado com um nome no formato DefaultWorkspace-<GUID>-<Region>.

Pré-requisitos

  • CLI do Azure versão 2.43.0 ou posterior
  • A autenticação de identidade gerenciada será padrão na versão 2.49.0 ou superior da CLI.
  • Extensão k8s do Azure versão 1.3.7 ou superior
  • A autenticação de identidade gerenciada é o padrão na versão de extensão1.43.0 ou superior da extensão k8s.
  • Não há suporte para autenticação de identidade gerenciada para clusters do Kubernetes habilitados para Arc com Azure Red Hat Openshift (ARO) ou nós do Windows. Use a autenticação herdada.
  • Para a CLI versão 2.54.0 ou superior, o esquema de registro em log será configurado para ContainerLogV2 usando o ConfigMap.

Observação

Você pode habilitar o esquema ContainerLogV2 para um cluster usando a REGRA de Coleta de Dados (DCR) ou o ConfigMap do cluster. Se ambas as configurações estiverem habilitadas, o ConfigMap terá precedência. Os logs stdout e stderr só serão ingeridos na tabela ContainerLog quando o DCR e o ConfigMap forem explicitamente definidos como desativados.

Cluster do AKS

### Use default Log Analytics workspace
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name>

### Use existing Log Analytics workspace
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id>

### Use legacy authentication
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id> --enable-msi-auth-for-monitoring false

Exemplo

az aks enable-addons --addon monitoring --name "my-cluster" --resource-group "my-resource-group" --workspace-resource-id "/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"

Cluster habilitado para Arc

### Use default Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers

### Use existing Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID=<workspace-resource-id>

### Use managed identity authentication (default as k8s-extension version 1.43.0)
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=true

### Use advanced configuration settings
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings  amalogs.resources.daemonset.limits.cpu=150m amalogs.resources.daemonset.limits.memory=600Mi amalogs.resources.deployment.limits.cpu=1 amalogs.resources.deployment.limits.memory=750Mi

### With custom mount path for container stdout & stderr logs
### Custom mount path not required for Azure Stack Edge version > 2318. Custom mount path must be /home/data/docker for Azure Stack Edge cluster with version <= 2318
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.logsettings.custommountpath=<customMountPath>

Confira a seção de solicitações e limites de recursos do gráfico Helm para as definições de configuração disponíveis.

Exemplo

az k8s-extension create --name azuremonitor-containers --cluster-name "my-cluster" --resource-group "my-resource-group" --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID="/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"

Cluster habilitado para Arc com proxy de encaminhamento

Se o cluster estiver configurado com um proxy de encaminhamento, as configurações de proxy serão aplicadas automaticamente à extensão. No caso de um cluster com AMPLS + proxy, a configuração de proxy deve ser ignorada. Integre a extensão com a definição de configuração amalogs.ignoreExtensionProxySettings=true.

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.ignoreExtensionProxySettings=true

Cluster habilitado para Arc com nós ARO, OpenShift ou Windows

Não há suporte para autenticação de identidade gerenciada para clusters Kubernetes habilitados para Arc com nós ARO (Red Hat OpenShift no Azure), OpenShift ou Windows. Use a autenticação herdada especificando amalogs.useAADAuth=false como no exemplo a seguir.

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=false

Excluir instância de extensão

O comando a seguir exclui apenas a instância de extensão, mas não exclui o espaço de trabalho do Log Analytics. Os dados no recurso do Log Analytics permanecem intactos.

az k8s-extension delete --name azuremonitor-containers --cluster-type connectedClusters --cluster-name <cluster-name> --resource-group <resource-group>

Habilite o monitoramento completo pelo portal Azure

Novo cluster AKS (Prometheus, Contêiner Insights e Grafana)

Quando você cria um novo cluster do AKS no portal do Azure, as caixas de seleção Habilitar Logs de Contêiner, Habilitar métricas do Prometheus, Habilitar Grafana e Habilitar Alertas Recomendados são selecionadas por padrão na guia Monitoramento.

Captura de tela da guia Monitoramento do novo cluster AKS.

Cluster existente (Prometheus, Contêiner Insights e Grafana)

  1. Navegue até seu cluster no portal do Azure.
  2. No menu de serviço, selecione Monitorar>Configurações do Monitor.
  3. Métricas do Prometheus, Grafana e Logs de Contêiner e eventos são selecionados para você. Se você tiver um workspace existente do Azure Monitor, um workspace existente do Grafana e um workspace existente do Log Analytics, eles estarão automaticamente selecionados para você.
  4. Selecione Configurações avançadas se quiser selecionar espaço de trabalho alternativas ou criar novas. A configuração de perfis de log e perfis clássicos permite que você modifique os detalhes da coleção padrão para reduzir os custos de monitoramento. Confira Habilitar configurações de otimização de custos no Insights de Contêiner para obter mais detalhes.
  5. Selecione Configurar.

Habilitar a coleta de métricas do Windows (versão prévia)

Observação

Não há limite de CPU/memória no windows-exporter-daemonset.yaml, portanto, ele pode provisionar em excesso os nós do Windows
Para obter mais detalhes, confira Reserva de recursos

Ao implantar cargas de trabalho, defina limites de recursos de memória e CPU nos contêineres. Isso também subtrai do NodeAllocatable e ajuda o agendador de todo o cluster a determinar quais pods colocar em quais nós. O agendamento de pods sem limites pode provisionar excessivamente os nós do Windows e, em casos extremos, pode fazer com que os nós se tornem não íntegros.

A partir da versão 6.4.0-main-02-22-2023-3ee44b9e do contêiner complementar do Managed Prometheus (prometheus_collector), a coleta de métricas do Windows foi habilitada para clusters do AKS. A integração para o complemento de Métricas do Azure Monitor permite que os pods do Windows DaemonSet comecem a serem executados em seus pools de nós. Tanto o Windows Server 2019 quanto o Windows Server 2022 são suportados. Siga estas etapas para permitir que os pods coletem métricas de seus pools de nós do Windows.

  1. Instale manualmente o exportador de janelas em nós do AKS para acessar as métricas do Windows implantando o arquivo YAML windows-exporter-daemonset. Habilite os seguintes coletores:

    • [defaults]
    • container
    • memory
    • process
    • cpu_info

    Para obter mais coletores, confira Exportador do Prometheus para métricas do Windows.

    Implante o arquivo YAML windows-exporter-daemonset. Observe que, se houver algum taint aplicado ao nó, você precisará aplicar as tolerâncias apropriadas.

        kubectl apply -f windows-exporter-daemonset.yaml
    
  2. Aplicar ama-metrics-settings-configmap ao seu cluster. Defina os valores boolianos windowsexporter e windowskubeproxy para true. Para obter mais informações, consulte Configurações do complemento de Métricas configmap.

  3. Habilite as regras de gravação necessárias para os painéis prontos para uso:

    • Se estiver integrando usando a CLI, inclua a opção --enable-windows-recording-rules.
    • Se estiver integrando usando um modelo do ARM, Bicep ou Azure Policy, defina enableWindowsRecordingRules como true no arquivo de parâmetros.
    • Se o cluster já estiver integrado, use este modelo do ARM e este arquivo de parâmetro para criar os grupos de regras. Isso adicionará as regras de gravação necessárias e não é uma operação do ARM no cluster, além de não afetar o estado de monitoramento atual dele.
  4. [Somente para nodes do Windows em clusters habilitados para ARC] Se você estiver habilitando o Managed Prometheus para um cluster habilitado para ARC, poderá configurar o Managed Prometheus que está em execução em um node Linux dentro do cluster para coletar métricas de endpoints em execução nos nodes do Windows. Adicione o seguinte trabalho de extração a ama-metrics-prometheus-config-configmap.yaml e aplique o configmap ao cluster.

  scrape_configs:
    - job_name: windows-exporter
      scheme: http
      scrape_interval: 30s
      label_limit: 63
      label_name_length_limit: 511
      label_value_length_limit: 1023
      tls_config:
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        insecure_skip_verify: true
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      kubernetes_sd_configs:
      - role: node
      relabel_configs:
      - source_labels: [__meta_kubernetes_node_name]
        target_label: instance
      - action: keep
        source_labels: [__meta_kubernetes_node_label_kubernetes_io_os]
        regex: windows
      - source_labels:
        - __address__
        action: replace
        target_label: __address__
        regex: (.+?)(\:\d+)?
        replacement: $$1:9182
kubectl apply -f ama-metrics-prometheus-config-configmap.yaml

Verificar implantação

Utilize a ferramenta de linha de comando kubectl para verificar se o agente foi implantado corretamente.

Prometheus Gerenciado

Verifique se o DaemonSet foi implantado corretamente nos pools de nós do Linux

kubectl get ds ama-metrics-node --namespace=kube-system

O número de pods deve ser igual ao número de nós do Linux no cluster. A saída deve ser assemelhar ao exemplo a seguir:

User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME               DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-metrics-node   1         1         1       1            1           <none>          10h

Verifique se os nós do Windows foram implantados corretamente

kubectl get ds ama-metrics-win-node --namespace=kube-system

O número de pods deve ser igual ao número de nós do Windows no cluster. A saída deve ser assemelhar ao exemplo a seguir:

User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME                   DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-metrics-win-node   3         3         3       3            3           <none>          10h

Verifique se os dois ReplicaSets foram implantados no Prometheus

kubectl get rs --namespace=kube-system

A saída deve ser assemelhar ao exemplo a seguir:

User@aksuser:~$kubectl get rs --namespace=kube-system
NAME                            DESIRED   CURRENT   READY   AGE
ama-metrics-5c974985b8          1         1         1       11h
ama-metrics-ksm-5fcf8dffcd      1         1         1       11h

Insights do contêiner

Verifique se os DaemonSets foram implantados corretamente nos pools de nós do Linux

kubectl get ds ama-logs --namespace=kube-system

O número de pods deve ser igual ao número de nós do Linux no cluster. A saída deve ser assemelhar ao exemplo a seguir:

User@aksuser:~$ kubectl get ds ama-logs --namespace=kube-system
NAME       DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-logs   2         2         2         2            2           <none>          1d

Verifique se os nós do Windows foram implantados corretamente

kubectl get ds ama-logs-windows --namespace=kube-system

O número de pods deve ser igual ao número de nós do Windows no cluster. A saída deve ser assemelhar ao exemplo a seguir:

User@aksuser:~$ kubectl get ds ama-logs-windows --namespace=kube-system
NAME                   DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR     AGE
ama-logs-windows           2         2         2         2            2       <none>            1d

Verifique a implantação da solução Insights de contêiner

kubectl get deployment ama-logs-rs --namespace=kube-system

A saída deve ser assemelhar ao exemplo a seguir:

User@aksuser:~$ kubectl get deployment ama-logs-rs --namespace=kube-system
NAME          READY   UP-TO-DATE   AVAILABLE   AGE
ama-logs-rs   1/1     1            1           24d

Exibir configuração com a CLI

Use o comando aks show para descobrir se a solução está habilitada, a ID do recurso do workspace do Log Analytics e informações resumidas sobre o cluster.

az aks show --resource-group <resourceGroupofAKSCluster> --name <nameofAksCluster>

O comando retornará informações referentes à solução formatadas em JSON. A seção addonProfiles deve incluir informações sobre o omsagent, como no exemplo a seguir:

"addonProfiles": {
    "omsagent": {
        "config": {
            "logAnalyticsWorkspaceResourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
            "useAADAuth": "true"
        },
        "enabled": true,
        "identity": null
    },
}

Recursos provisionados

Quando você habilita o monitoramento, os seguintes recursos do Azure são criados em sua assinatura:

Nome do Recurso Tipo de recurso Grupo de recursos Região/Localização Descrição
MSCI-<aksclusterregion>-<clustername> Regra de Coleta de Dados Igual ao cluster Igual ao workspace do Log Analytics Esta regra de coleta de dados destina-se à coleta de logs pelo agente do Azure Monitor, que utiliza o workspace do Log Analytics como destino e está associada ao recurso de cluster do AKS.
MSPROM-<aksclusterregion>-<clustername> Regra de Coleta de Dados Igual ao cluster Igual ao workspace do Azure Monitor Essa regra de coleta de dados destina-se à coleta de métricas do Prometheus por complemento de métricas, que o workspace do Azure Monitor escolheu como destino e também está associada ao recurso de cluster do AKS
MSPROM-<aksclusterregion>-<clustername> Ponto de extremidade da Coleta de Dados Igual ao cluster Igual ao workspace do Azure Monitor Esse ponto de extremidade da coleta de dados é usado pela regra de coleta de dados acima para ingerir métricas do Prometheus do complemento de métricas

Quando você cria um novo workspace do Azure Monitor, os recursos adicionais a seguir são criados como parte dele

Nome do Recurso Tipo de recurso Grupo de recursos Região/Localização Descrição
<azuremonitor-workspace-name> Regra de Coleta de Dados MA_<azuremonitor-workspace-name>_<azuremonitor-workspace-region>_managed Igual ao workspace do Azure Monitor DCR criada quando você usa o servidor Prometheus OSS para Gravação Remota no Workspace do Azure Monitor.
<azuremonitor-workspace-name> Ponto de extremidade da coleta de dados MA_<azuremonitor-workspace-name>_<azuremonitor-workspace-region>_managed Igual ao workspace do Azure Monitor DCE criado quando você usa o servidor Prometheus OSS para Gravação Remota no Workspace do Azure Monitor.

Diferenças entre clusters do Windows e do Linux

As principais diferenças no monitoramento de um cluster do Windows Server em comparação com um cluster do Linux incluem:

  • O Windows não tem uma métrica de RSS de Memória. Como resultado, ela não está disponível para nós e contêineres do Windows. A métrica Conjunto de Trabalho está disponível.
  • As informações sobre a capacidade de armazenamento do disco não estão disponíveis para nós do Windows.
  • Somente ambientes de pod são monitorados, não ambientes do Docker.
  • Com a versão prévia, há suporte para até 30 contêineres do Windows Server. Essa limitação não se aplica a contêineres do Linux.

Observação

O suporte aos insights do Contêiner para o sistema operacional Windows Server 2022 está em versão prévia.

O agente do Linux em contêineres (pod replicaset) faz chamadas à API para todos os nós do Windows na porta segura do Kubelet (10250) no cluster para coletar métricas relacionadas ao desempenho do nó e do contêiner. A porta segura do Kubelet (:10250) deve ser aberta na rede virtual do cluster para entrada e saída de modo que a coleta de métricas relacionadas desempenho do contêiner e do nó do Windows funcione.

Se tiver um cluster do Kubernetes com nós do Windows, revise e configure o grupo de segurança de rede e as políticas de rede para verificar se a porta segura do Kubelet (:10250) está aberta tanto para entrada quanto para saída na rede virtual do cluster.

Próximas etapas

  • Se enfrentar problemas ao tentar integrar a solução, examine o Guia de solução de problemas.
  • Com o monitoramento habilitado para coletar a integridade e a utilização de recursos do seu cluster AKS e cargas de trabalho em execução neles, saiba como usar insights do Contêiner.