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:
- Assim que uma análise mostrar status Falhou, navegue para a VM ou máquina onde a ferramenta IRCTL está instalada.
- Utilize o
./irctl log upload
comando . - Quando os registos forem carregados, mantenha um registo do ID de Carregamento do Registo que é impresso.
- 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 download
comando .
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
- Certifique-se de que o ficheiro de contexto do Kubernetes está localizado no caminho correto.
- 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.
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:
- Conectividade com o ponto final de serviço do Microsoft Purview
- Erro de configuração do nó do Kubernetes
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.
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
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
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.)
Selecione Anular o registo da instalação junto à status e confirme a operação.
Depois de concluída a anulação do registo, pode ver a status é apresentada como Não registada.
Selecione o runtime de integração e obtenha a chave de registo.