Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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
logs
comandos ,exec
,attach
,top
, ouport-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 exec
comandos , 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.