Solucionar problemas de um tempo de execução de integração auto-hospedada com suporte do Kubernetes

Este artigo aborda os detalhes para solucionar problemas do novo runtime de integração auto-hospedada que é baseado em Kubernetes para Linux.

Você pode procurar todos os erros que vir no guia de erros abaixo. Para obter suporte e diretrizes de solução de problemas para problemas de SHIR, talvez seja necessário gerar uma ID de Upload de Log e entrar em contato com o suporte da Microsoft.

Coletar logs de tempo de execução de integração auto-hospedada do Kubernetes

Para gerar a ID de Upload de Log para o Suporte da Microsoft:

  1. Depois que uma verificação mostrar o status Com falha, navegue até a VM ou computador em que a ferramenta IRCTL está instalada.
  2. Use o ./irctl log uploadcomando.
  3. Quando os logs forem carregados, mantenha um registro da ID de Upload de Log que é impresso.
  4. Se o runtime de integração auto-hospedada não for registrado, use o guia abaixo para baixar os logs para o local e enviá-los para o suporte da Microsoft

Para coletar o log do runtime de integração auto-hospedada e o log de execução de verificação para solucionar problemas do SHIR, use o ./irctl log downloadcomando.

Por exemplo:

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

Os logs são baixados para o caminho de destino.

Observação

O log é reservado por 14 dias. Persista-o carregando-o para a Microsoft ou baixando-o em seu computador local.

Erro de conectividade IRCTL para o Kubernetes

Você pode obter uma configuração de contexto do Kubernetes do administrador do Kubernetes e o registro 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 auto-hospedada, é necessária uma configuração correta do Kubernetes e uma conectividade estável.

Resolução

  1. Verifique se o arquivo de contexto do Kubernetes está localizado no caminho correto.
  2. Certifique-se de que o computador IRCTL possa acessar o servidor de API do cluster Kubernetes.

Erro de permissão IRCTL

Ao se conectar, você poderá 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 auto-hospedada, são necessárias permissões suficientes para vários recursos do Kubernetes.

Resolução

Regenere o token de conta de serviço do Kubernetes com uma função de Administração.

Erro de conectividade IRCTL para o ponto de extremidade do serviço Microsoft Purview

Quando você tenta registrar o runtime de integração auto-hospedada com suporte do Kubernetes, o comando IRCTL create pode retornar os seguintes erros:

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

Motivo

O IRCTL não pode se conectar ao back-end do serviço. Esse problema geralmente é causado por configurações de rede ou firewall.

Resolução

Examine a topologia de rede do computador host IRCTL. Consulte estas seções da página de solução de problemas gerais do runtime de integração: Firewall, DNSServer, confianças de certificado SSL e proxy http.

A chave de registro não está autorizada

Quando você tenta registrar o runtime de integração auto-hospedada com suporte do Kubernetes, o comando IRCTL create pode retornar os seguintes erros:

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

Motivo

Eles expiraram ou foram revogados manualmente.

Resolução

Gere novamente a chave na página do runtime de integração no portal do Microsoft Purview e registre-se novamente.

Erro de tempo limite de criação de IR auto-hospedado do Kubernetes

Quando você tenta registrar o runtime de integração auto-hospedada com suporte do Kubernetes, o comando IRCTL create pode ser executado por muito tempo até que ele finalmente atinja o tempo limite.

Captura de tela da linha de comando após o tempo limite da criação.

Você pode começar verificando o status dos Pods nos namespaces 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:

Causa - Conectividade com o ponto de extremidade de serviço do Microsoft Purview

O Kubernetes não pode se conectar ao MCR (mcr.microsoft.com). Esse erro geralmente é causado por configurações de rede ou firewall.

Se vir o status como 'ImagePullBackOff', significa que o Kubernetes não pode se conectar ao MCR (mcr.microsoft.com) para baixar imagens do Pod. Esse erro geralmente é causado por configurações de rede ou firewall.

Captura de tela da linha de comando mostrando o status ImagePullBackOff.

Resolução - Conectividade com o ponto de extremidade de serviço do Microsoft Purview

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

Observação

As etapas de solução de problemas necessárias são diferentes para cada provedor de Kubernetes. O local de implantação e os detalhes de rede individuais variam entre as redes. Você precisa revisar a conectividade por meio da rede da sua organização.

Examine a topologia de rede do computador host IRCTL. Consulte estas seções da página de solução de problemas gerais do runtime de integração: Firewall, DNSServer, confianças de certificado SSL e proxy http.

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

Se o status de alguns dos Pods estiver preso em 'Pendente', use o comando describe 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 describe podem dizer o motivo pelo qual o pod está pendente. O erro FailedScheduling com mensagem detalhada mostra que o número total de pods excede o número máximo do pod em um nó. Um novo pod não pode ser agendado para o nó selecionado.

Observação

Se não houver eventos vistos na descrição, tente excluir o pod manualmente por kubectl delete pod comando e rastreie 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 dar suporte à utilização normal e a cenários de upgrade.

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

Quando você tenta registrar o tempo de execução de integração auto-hospedada com suporte do Kubernetes, o comando IRCTRL create pode ser executado por muito tempo até que eventualmente atinja o tempo limite. Ou, após uma instalação bem-sucedida, o status do runtime de integração auto-hospedada é exibido como não íntegro ou offline no portal do Microsoft Purview.

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

Você 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 pode se conectar ao back-end do serviço. Esse erro geralmente é causado por configurações de rede ou firewall.

Resolução

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

Observação

As etapas de solução de problemas necessárias são diferentes para cada provedor de Kubernetes. O local de implantação e os detalhes de rede individuais variam entre as redes. Você precisa revisar a conectividade por meio da rede da sua organização.

Examine a topologia de rede do computador host IRCTL. Consulte estas seções da página de solução de problemas gerais do runtime de integração: Firewall, DNSServer, confianças de certificado SSL e proxy http.

Cancelar o registro de um runtime cujo recurso local não está disponível

Se o seu runtime de integração auto-hospedada local for excluído acidentalmente do cluster do Kubernetes, você não poderá excluí-lo usando o irctl delete comando e não poderá instalá-lo em outro cluster do Kubernetes.

Motivo

Um runtime de integração auto-hospedada só pode ser instalado em um cluster do Kubernetes. Depois de registrado, ele não pode ser instalado em outro cluster antes de ser cancelado.

Resolução

  1. Verifique o status local da integração auto-hospedada. Você deve ver que nenhum runtime de integração auto-hospedada em execução foi encontrado.

    $./irctl describe
    
  2. Verifique o runtime de integração auto-hospedada no portal do Microsoft Purview. Você deve ver um status Offline. (No entanto, há uma latência de 1 hora para a expiração do token.)

  3. Selecione Cancelar instalação ao lado do status e confirme a operação.

  4. Após a conclusão do cancelamento do registro, você poderá ver o status exibido como Não registrado.

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

  6. Reinstale o runtime de integração.

Próximas etapas