Insights do contentor de resolução de problemas

Ao configurar a monitorização do seu cluster Azure Kubernetes Service (AKS) com insights de Contentores, poderá encontrar um problema que impeça a recolha de dados ou o estado de reporte. Este artigo detalha algumas questões comuns e etapas de resolução de problemas.

Erro de autorização durante a operação de integração ou atualização

Ao permitir insights do Contentor ou atualizar um cluster para suportar métricas de recolha, pode receber um erro semelhante ao seguinte - O cliente <> de identidade do utilizador" com o id de objeto "" não tem autorização para executar ação 'Microsoft.Autorização/funAsignments/write' sobre o âmbito

Durante o processo de embarque ou atualização, a concessão das Métricas de Monitorização Publisher atribuição de funções é tentada no recurso cluster. O utilizador que inicia o processo para permitir insights do Contentor ou a atualização para suportar a recolha de métricas deve ter acesso à microsoft.Autorização/funAsignments/write permissão no âmbito do cluster AKS. Apenas os membros das funções incorporadas do Proprietário e do Administrador de Acesso ao Utilizador têm acesso a esta permissão. Se as suas políticas de segurança requerem a atribuição de permissões de nível granular, recomendamos que veja as funções personalizadas e a atribua aos utilizadores que o exijam.

Também pode conceder manualmente esta função a partir do portal Azure, realizando os seguintes passos:

  1. Inicie sessão no portal do Azure.
  2. No portal do Azure, clique em Todos os serviços, que se encontra no canto superior esquerdo. Na lista de recursos, escreva Kubernetes. À medida que começa a escrever, a lista filtra com base na sua entrada. Selecione Azure Kubernetes.
  3. Na lista de agrupamentos de Kubernetes, selecione um da lista.
  4. A partir do menu da esquerda, clique no controlo de acesso (IAM).
  5. Selecione + Adicione para adicionar uma atribuição de função e selecione as Métricas de Monitorização Publisher função e no tipo de caixa Select AKS para filtrar os resultados apenas nos principais de serviço de clusters definidos na subscrição. Selecione o da lista específica para esse cluster.
  6. Selecione Guardar para terminar a atribuição do papel.

Os insights do contentor estão ativados, mas não reportam qualquer informação

Se os insights do contentor estiverem ativados e configurados com sucesso, mas não conseguir visualizar informações sobre o estado ou não forem devolvidos resultados de uma consulta de registo, diagnostica o problema seguindo estes passos:

  1. Verifique o estado do agente executando o comando:

    kubectl get ds omsagent --namespace=kube-system

    A saída deve assemelhar-se ao seguinte exemplo, que indica que foi corretamente implantada:

    User@aksuser:~$ kubectl get ds omsagent --namespace=kube-system
    NAME       DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR                 AGE
    omsagent   2         2         2         2            2           beta.kubernetes.io/os=linux   1d
    
  2. Se tiver Windows nós do Servidor, verifique o estado do agente executando o comando:

    kubectl get ds omsagent-win --namespace=kube-system

    A saída deve assemelhar-se ao seguinte exemplo, que indica que foi corretamente implantada:

    User@aksuser:~$ kubectl get ds omsagent-win --namespace=kube-system
    NAME                   DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR                   AGE
    omsagent-win           2         2         2         2            2           beta.kubernetes.io/os=windows   1d
    
  3. Verifique o estado de implantação com a versão do agente 06072018 ou posterior utilização do comando:

    kubectl get deployment omsagent-rs -n=kube-system

    A saída deve assemelhar-se ao seguinte exemplo, que indica que foi corretamente implantada:

    User@aksuser:~$ kubectl get deployment omsagent-rs -n=kube-system
    NAME       DESIRED   CURRENT   UP-TO-DATE   AVAILABLE    AGE
    omsagent   1         1         1            1            3h
    
  4. Verifique o estado da cápsula para verificar se está em funcionamento utilizando o comando: kubectl get pods --namespace=kube-system

    A saída deve assemelhar-se ao seguinte exemplo com um estatuto de Running for the omsagent:

    User@aksuser:~$ kubectl get pods --namespace=kube-system
    NAME                                READY     STATUS    RESTARTS   AGE
    aks-ssh-139866255-5n7k5             1/1       Running   0          8d
    azure-vote-back-4149398501-7skz0    1/1       Running   0          22d
    azure-vote-front-3826909965-30n62   1/1       Running   0          22d
    omsagent-484hw                      1/1       Running   0          1d
    omsagent-fkq7g                      1/1       Running   0          1d
    omsagent-win-6drwq                  1/1       Running   0          1d
    

Mensagens de erro

A tabela abaixo resume os erros conhecidos que pode encontrar durante a utilização de insights do Recipiente.

Mensagens de erro Ação
Mensagem de erro No data for selected filters Poderá demorar algum tempo a estabelecer o fluxo de dados de monitorização para os clusters recentemente criados. Deixe pelo menos 10 a 15 minutos para que os dados apareçam para o seu cluster.
Mensagem de erro Error retrieving data Enquanto o cluster de serviço Azure Kubernetes está se estabelecendo para monitorização de saúde e desempenho, uma ligação é estabelecida entre o cluster e o espaço de trabalho Azure Log Analytics. Um espaço de trabalho Log Analytics é utilizado para armazenar todos os dados de monitorização do seu cluster. Este erro pode ocorrer quando o seu espaço de trabalho Log Analytics foi eliminado. Verifique se o espaço de trabalho foi apagado e se foi, terá de voltar a permitir a monitorização do seu cluster com insights de Contentores e especificar um espaço de trabalho existente ou criar um novo espaço de trabalho. Para voltar a ativar, terá de desativar a monitorização do cluster e voltar a ativar as informações do Contentor.
Error retrieving data depois de adicionar insights de recipiente através de az aks cli Quando ativar a az aks cli monitorização, os insights do recipiente podem não ser corretamente acionados. Verifique se a solução está implantada. Para verificar, vá ao seu espaço de trabalho Log Analytics e veja se a solução está disponível selecionando Soluções a partir do painel do lado esquerdo. Para resolver este problema, terá de recolocar a solução seguindo as instruções sobre como implantar insights do Contentor

Para ajudar a diagnosticar o problema, fornecemos um script de resolução de problemas.

O agente de insights de contentores ReplicaSet Pods não está programado no cluster não-Azure Kubernetes

O agente de insights do contentor ReplicaSet Pods tem uma dependência dos seguintes nós de nó no trabalhador (ou agente) para o agendamento:

nodeSelector:
  beta.kubernetes.io/os: Linux
  kubernetes.io/role: agent

Se os nós dos seus trabalhadores não tiverem etiquetas de nó anexadas, então o agente ReplicaSet Pods não será agendado. Consulte os selecionadores de etiquetas de atribuição de Kubernetes para obter instruções sobre como fixar a etiqueta.

Os gráficos de desempenho não mostram CPU ou memória de nódoas e contentores num cluster não-Azure

O agente de insights de contentores Pods utiliza o ponto final do cAdvisor no agente de nó para recolher as métricas de desempenho. Verifique se o agente contentorizado do nó está configurado para permitir que cAdvisor port: 10255 sejam abertos em todos os nós do cluster para recolher métricas de desempenho.

O cluster não-Azure Kubernetes não está a aparecer em insights de contentores

Para visualizar o cluster não-Azure Kubernetes em insights de contentores, é necessário ler o acesso no espaço de trabalho Log Analytics que suporta este Insight e no contentor Informações recurso de solução ContainerInsights (espaço de trabalho).

As métricas não estão a ser recolhidas

  1. Verifique se o cluster se encontra numa região suportada para métricas personalizadas.

  2. Verifique se as Métricas de Monitorização Publisher atribuição de funções existe utilizando o seguinte comando CLI:

    az role assignment list --assignee "SP/UserassignedMSI for omsagent" --scope "/subscriptions/<subid>/resourcegroups/<RG>/providers/Microsoft.ContainerService/managedClusters/<clustername>" --role "Monitoring Metrics Publisher"
    

    Para clusters com MSI, o utilizador designado identificação do cliente para alterações omsagent cada vez que a monitorização é ativada e desativada, pelo que a atribuição de funções deve existir no id do cliente msi atual.

  3. Para clusters com Azure Ative Directory identidade do casulo ativada e utilizando o MSI:

    • Verifique a etiqueta requerida kubernetes.azure.com/managedby: as aks estão presentes nas cápsulas omsagent utilizando o seguinte comando:

      kubectl get pods --show-labels -n kube-system | grep omsagent

    • Verifique se as exceções são ativadas quando a identidade do casulo é ativada utilizando um dos métodos suportados em https://github.com/Azure/aad-pod-identity#1-deploy-aad-pod-identity .

      Executar o seguinte comando para verificar:

      kubectl get AzurePodIdentityException -A -o yaml

      Deve receber uma saída semelhante à seguinte:

      apiVersion: "aadpodidentity.k8s.io/v1"
      kind: AzurePodIdentityException
      metadata:
      name: mic-exception
      namespace: default
      spec:
      podLabels:
      app: mic
      component: mic
      ---
      apiVersion: "aadpodidentity.k8s.io/v1"
      kind: AzurePodIdentityException
      metadata:
      name: aks-addon-exception
      namespace: kube-system
      spec:
      podLabels:
      kubernetes.azure.com/managedby: aks
      

Instalação de Extensão de Contentores monitores Azure falha com um erro que contém "manifestos contêm um recurso que já existe" no cluster Azure Arc Enabled Kubernetes

Os manifestos de erro contêm um recurso que já existe indica que os recursos do Informações agente de contentores já existem no cluster Azure Arc Enabled Kubernetes. Isto indica que o agente de insights do contentor já está instalado através do gráfico HELM de contentores azuremonitor ou do Addon de Monitorização se for o Cluster AKS que está ligado ao Arco de Azure. A solução para esta questão é limpar os recursos existentes do agente de insights de contentores se existir e, em seguida, permitir a extensão dos contentores do monitor Azure.

Para clusters não-AKS

  1. Contra o cluster K8s que está ligado ao Arco de Azure, corra abaixo do comando para verificar se a versão do cartão de leme azmon-containers-release-1 existe ou não:

    helm list -A

  2. Se a saída do comando acima indicado indicar que existe libertação de azmon-containers-1, elimine a versão do gráfico de leme:

    helm del azmon-containers-release-1

Para clusters AKS

  1. Corra abaixo os comandos e procure o perfil de addon omsagent para verificar o addon de monitorização AKS ativado ou não:

    az  account set -s <clusterSubscriptionId>
    az aks show -g <clusterResourceGroup> -n <clusterName>
    
  2. Se houver um perfil de addon omsagent config com o conjunto de recursos do espaço de trabalho de análise de registo na saída do comando acima indica que o addon de monitorização AKS ativado e que precisa de ser desativado:

    az aks disable-addons -a monitoring -g <clusterResourceGroup> -n <clusterName>

Se acima das etapas não resolveram a instalação de problemas de extensão de contentores do Azure Monitor, por favor crie um bilhete para a Microsoft para mais investigação.

Passos seguintes

Com a monitorização possibilitada para capturar métricas de saúde tanto para os nós do cluster AKS como para as cápsulas, estas métricas de saúde estão disponíveis no portal Azure. Para aprender a usar insights de recipiente, consulte a saúde do Serviço Azure Kubernetes.