Compartilhar via


Mensagem "Erro do servidor: erro ao discar back-end: discar tcp"

Sintomas

Você recebe uma mensagem de erro "Erro do servidor: erro ao discar backend: discar tcp" ao executar uma das seguintes ações:

  • Use qualquer um dos kubectl logscomandos , exec, attach, top, ou port-forward .
  • Use ferramentas de cliente Kubernetes de terceiros para obter a mesma funcionalidade que os comandos no item de lista anterior.

Por que o erro ocorre

O servidor de API do Kubernetes precisa encaminhar solicitações de API para um componente upstream para vários casos de uso. Esse erro ocorrerá se o servidor de API não puder estabelecer uma conexão TCP com o componente upstream. Exemplos desses componentes upstream incluem serviços kubernetes que estão dentro do cluster e kubelet.

Se o problema persistir, é provável que a causa seja um bloqueio de rede. Para identificar a configuração de rede responsável, primeiro determine o escopo do problema.

Restringindo: todos os kubectl subcomandos estão falhando?

Tente executar pelo menos os kubectl execcomandos , kubectl logs <podname>, e .kubectl top pods

Se for apenas kubectl logs <podname> ou kubectl exec falhar, verifique se o problema ocorre por ter pods em nós diferentes.

Se apenas kubectl top pods falhar, verifique se o problema ocorre para pods em todos os nós ou apenas para pods em um nó.

Causa 1: a porta kubelet (node:10250) está bloqueada

Problemas de acesso específicos do pod, como aqueles que ocorrem ao executar kubectl logs e kubectl exec, ocorrem se o servidor de API não puder acessar o nó na porta 10250 para acessar a API do Kubelet. Esses problemas podem ser causados por uma conexão bloqueada por um NSG (Grupo de Segurança de Rede) ou firewall.

Para resolver o problema, verifique se o NSG na sub-rede do nó inclui uma regra de entrada que pode bloquear a porta TCP 10250.

Causa 2: falha de serviço específico

O Kubernetes acessa svc/metrics-server no kube-system namespace para executar comandos kubectl top. Existem outros cenários, como webhooks de admissão, nos quais o servidor de API também pode acessar outros serviços. É importante observar que, dependendo do padrão de falha do serviço, a mensagem de erro pode variar.

Para solucionar o problema, verifique a mensagem de erro para identificar qual serviço é afetado e revise o status dos pods, serviços e endpoints relacionados.

Causa 3: Konnectivity ou falha de túnel

Quando a Integração de VNet do Servidor de API não está habilitada, o AKS implanta uma solução de túnel que faz proxy de solicitações de servidor de API para locais de rede no cluster. A maioria dos clusters do AKS usa a solução Konnectivity. O Konnectivity não requer que você abra portas especiais no servidor API. Para obter mais informações, consulte Regras de rede necessárias do AKS.

Para resolver o problema, verifique se o konnectivity-agent no kube-system namespace está em execução e se seus contêineres estão em um estado pronto. Tente excluir os pods para ver se a conexão se recupera depois que os novos pods estiverem prontos.

Aviso de isenção de responsabilidade para informações de terceiros

Os produtos de terceiros mencionados neste artigo são produzidos por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, do desempenho ou da confiabilidade desses produtos.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.