Compartilhar via


Resolver problemas de um runtime de integração autoalojado suportado pelo Kubernetes

Este artigo aborda os detalhes para a resolução de problemas do novo runtime de integração autoalojado baseado no Kubernetes para Linux.

Pode procurar quaisquer erros que veja no guia de erros abaixo. Para obter suporte e documentação de orientação de resolução de problemas do SHIR, poderá ter de gerar um ID de Carregamento de Registos e contactar o suporte da Microsoft.

Recolher registos do runtime de integração autoalojado do Kubernetes

Para gerar o ID de Carregamento do Registo para Suporte da Microsoft:

  1. Assim que uma análise mostrar status Falhou, navegue para a VM ou máquina onde a ferramenta IRCTL está instalada.
  2. Utilize o ./irctl log uploadcomando .
  3. Quando os registos forem carregados, mantenha um registo do ID de Carregamento do Registo que é impresso.
  4. Se o runtime de integração autoalojado não se registar, utilize o guia abaixo para transferir registos para o local e enviá-lo para o suporte da Microsoft

Para recolher o registo do runtime de integração autoalojado e o registo de execução de análise para resolver problemas do SHIR, utilize o ./irctl log downloadcomando .

Por exemplo:

./irctl log download --destination "C:\Users\user\logs\"

Os registos serão transferidos para o caminho de destino.

Observação

O registo será reservado durante 14 dias. Mantenha-o ao carregá-lo para a Microsoft ou transferi-lo para o seu computador local.

Erro de conectividade IRCTL no Kubernetes

Poderá obter uma configuração de contexto do Kubernetes junto do administrador do Kubernetes e o registo pode falhar com uma das seguintes mensagens de erro:

  • Error: invalid flag context [] .kube/config: no such file or directory
  • [Warning] Failed to create kube client with context [] with error

Motivo

Ao instalar um runtime de integração autoalojado, é necessária uma configuração correta do Kubernetes e uma conectividade estável.

Resolução

  1. Certifique-se de que o ficheiro de contexto do Kubernetes está localizado no caminho correto.
  2. Confirme que o computador IRCTL consegue aceder ao servidor de API do cluster do Kubernetes.

Erro de permissão IRCTL

Ao ligar, pode ver as seguintes mensagens de erro:

  • [Error] Failed to list namespaces to get Running SHIR
  • [Error] Failed to get configmap/ create job/ etc.

Motivo

Ao instalar um runtime de integração autoalojado, são necessárias permissões suficientes para vários recursos do Kubernetes.

Resolução

Regenerar o token de conta de serviço do Kubernetes com uma Função de Administração.

Erro de conectividade IRCTL ao ponto final de serviço do Microsoft Purview

Quando tenta registar o runtime de integração autoalojado suportado pelo Kubernetes, o comando IRCTL create pode devolver os seguintes erros:

  • [Error] Failed to register SHIR with error: Post “https://[REGION].compute.governance.azure.com/purviewAccounts/[]/integrationruntimes/[]/registerselfhostedintegrationruntime: []”

Motivo

A IRCTL não consegue ligar ao back-end do serviço. Normalmente, este problema é causado por definições de rede ou firewall.

Resolução

Reveja a topologia de rede do computador anfitrião IRCTL. Veja estas secções da página de resolução de problemas do runtime de integração geral: Firewall, DNSServer, confianças de certificados SSL e proxy http.

A chave de registo não está autorizada

Quando tenta registar o runtime de integração autoalojado suportado pelo Kubernetes, o comando IRCTL create pode devolver os seguintes erros:

  • [Error] failed to register SHIR with error: Request is not authorized.

Motivo

Tinham expirado ou foram revogados manualmente.

Resolução

Volte a gerar a chave a partir da página do integration runtime no portal do Microsoft Purview e registe-se novamente.

Erro de tempo limite excedido da criação do IR autoalojado do Kubernetes

Quando tenta registar o runtime de integração autoalojado suportado pelo Kubernetes, o comando IRCTL create pode ser executado durante muito tempo até atingir o limite de tempo.

Captura de ecrã da linha de comandos após a criação exceder o limite de tempo.

Pode começar por verificar a status de Pods nos espaços de nomes mencionados pelo irctl describe comando.

Por exemplo:

./irctl describe 

K8s SHIR Name:shir-demo 
Purview AccountName:   shirdemopurview 
Installation ID:       00000000-0000-0000-0000-000000000000 
Kubernetes Namespace:  shirdemopurview-shir-demo, compute-fleet-system(control-plane) 
K8s SHIR Version:      Unknown (Installation not completed) 
Status:                Initializing 
Healthiness:           Unhealthy

kubectl get pods --namespace shirdemopurview-shir-demo

NAME                                       READY   STATUS    RESTARTS   AGE 
batch-defaultspec-4pbwx                    0/1     Pending   0          10m 
batch-defaultspec-7t9bl                    0/1     Pending   0          10m 
dynamic-config-provider-778c686fdc-9mkjb   0/1     Pending   0          10m 
interactive-schemaprocess-bcrmf            0/1     Pending   0          10m 
interactive-schemaprocess-fn66x            0/1     Pending   0          10m 
logagent-ds-84jqn                          0/1     Pending   0          10m 
logagent-ds-k7vw8                          0/1     Pending   0          10m 
user-credential-proxy-579c899b64-d4q5v     0/1     Pending   0          10m 

Existem algumas causas potenciais, listadas abaixo:

Causa – conectividade com o ponto final de serviço do Microsoft Purview

O Kubernetes não consegue ligar ao MCR (mcr.microsoft.com). Normalmente, este erro é causado pelas definições de rede ou por uma firewall.

Se vir a status como "ImagePullBackOff", significa que o Kubernetes não consegue ligar ao MCR (mcr.microsoft.com) para transferir imagens do Pod. Normalmente, este erro é causado pelas definições de rede ou por uma firewall.

Captura de ecrã da linha de comandos a mostrar o status ImagePullBackOff.

Resolução – conectividade com o ponto final de serviço do Microsoft Purview

Reveja a topologia de rede do cluster do Kubernetes. Por exemplo, para o Azure Kubernetes, deve marcar:

Observação

Os passos de resolução de problemas necessários serão diferentes para cada fornecedor do Kubernetes. A localização da implementação e os detalhes de rede individuais variam entre redes. Terá de rever a conectividade através da rede da sua organização.

Reveja a topologia de rede do computador anfitrião IRCTL. Veja estas secções da página de resolução de problemas do runtime de integração geral: Firewall, DNSServer, confianças de certificados SSL e proxy http.

Causa – Erro de configuração do nó do Kubernetes

Se o status de alguns dos Pods bloqueados em "Pendente", utilize o comando descrever pod para ver os detalhes do Pod.

Por exemplo:

kubectl describe pod batch-defaultspec-4pbwx  --namespace shirdemopurview-shir-demo

Events: 
  Type     Reason            Age                From               Message 

  ----     ------            ----               ----               ------- 

  Warning  FailedScheduling  13m                default-scheduler  0/5 nodes are available: 1 Too many pods. preemption: 0/5 nodes are available: 5 No preemption victims found for incoming pod.. 

Os Eventos do comando descrever podem indicar o motivo pelo qual o Pod está pendente. O erro FailedScheduling com uma mensagem detalhada mostra que o número total de Pods foi excedido o número máximo do Pod num Nó. Não é possível agendar um novo Pod para o Nó selecionado.

Observação

Se não existirem Eventos vistos na descrição, tente eliminar o Pod manualmente por kubectl delete pod comando e controle o recém-criado.

Resolução – Erro de configuração do nó do Kubernetes

Reserve 20 números de pod para o runtime de integração do kubernetes para suportar cenários normais de utilização e atualização.

Erro de conectividade do Kubernetes com o ponto final de serviço do Microsoft Purview

Quando tenta registar o runtime de integração autoalojado suportado pelo Kubernetes, o comando irCTRL create pode ser executado durante muito tempo até atingir o tempo limite. Em alternativa, após uma instalação bem-sucedida, o runtime de integração autoalojado status é apresentado como estando em mau estado de funcionamento ou offline no portal do Microsoft Purview.

Verifique os registos com este comando: kubectl logs [podName] -n compute-fleet-system

Pode ver um destes erros:

  • “TraceMessage”:”HttpRequestFailed”, “Host”: “fleet.[REGION].compute.governance.azure.com”
  • Exception":"System.Net.Http.HttpRequestException: Connection refused fleet.[REGION].compute.governance.azure.com:443
  • System.AggregateException: Failed to acquire identity token from https://fleet. [REGION].compute.governance.azure.com:443

Motivo

O Kubernetes não consegue ligar ao back-end do serviço. Normalmente, este erro é causado pelas definições de rede ou por uma firewall.

Resolução

Reveja a topologia de rede do cluster do Kubernetes. Por exemplo, para o Azure Kubernetes, deve marcar:

Observação

Os passos de resolução de problemas necessários serão diferentes para cada fornecedor do Kubernetes. A localização da implementação e os detalhes de rede individuais variam entre redes. Terá de rever a conectividade através da rede da sua organização.

Reveja a topologia de rede do computador anfitrião IRCTL. Veja estas secções da página de resolução de problemas do runtime de integração geral: Firewall, DNSServer, confianças de certificados SSL e proxy http.

Anular o registo de um runtime cujo recurso local está indisponível

Se o runtime de integração autoalojado local for eliminado do cluster do Kubernetes por acidente, não poderá eliminá-lo com o irctl delete comando e não poderá instalá-lo noutro cluster do Kubernetes.

Motivo

Um runtime de integração autoalojado só pode ser instalado num cluster do Kubernetes. Depois de ser registado, não pode ser instalado noutro cluster antes de ser anulado.

Resolução

  1. Verifique o status local de integração autoalojado. Deverá ver que não foi encontrado nenhum runtime de integração autoalojado em execução.

    $./irctl describe
    
  2. Verifique o runtime de integração autoalojado no portal do Microsoft Purview. Deverá ver uma status Offline. (No entanto, existe uma latência de 1 hora para a expiração do token.)

  3. Selecione Anular o registo da instalação junto à status e confirme a operação.

  4. Depois de concluída a anulação do registo, pode ver a status é apresentada como Não registada.

  5. Selecione o runtime de integração e obtenha a chave de registo.

  6. Reinstale o runtime de integração.

Próximas etapas