Partilhar via


O tráfego entre pools de nós é bloqueado por um grupo de segurança de rede personalizado

Este artigo discute como resolver um cenário no qual um NSG (grupo de segurança de rede) personalizado bloqueia o tráfego entre pools de nós em um cluster do AKS (Serviço de Kubernetes do Microsoft Azure).

Sintomas

A resolução do Sistema de Nomes de Domínio (DNS) dos pods do pool de nós do usuário falha.

Tela de fundo

Em cenários que envolvem vários pools de nós, os pods no kube-system namespace podem ser colocados em um pool de nós (o pool de nós do sistema) enquanto os pods do aplicativo são colocados em um pool de nós diferente (o pool de nós do usuário). Em alguns cenários, os pods que se comunicam entre si podem estar em pools de nós diferentes.

O AKS permite que os clientes tenham pools de nós em sub-redes diferentes. Esse recurso significa que os clientes também podem associar NSGs diferentes à sub-rede de cada pool de nós.

Causa 1: O NSG de um pool de nós bloqueia o tráfego de entrada

O acesso de entrada no NSG de um pool de nós bloqueia o tráfego. Por exemplo, um NSG personalizado no pool de nós do sistema (que hospeda os pods DNS principais) bloqueia o tráfego de entrada na porta UDP (User Datagram Protocol) 53 da sub-rede do pool de nós do usuário.

Diagrama de um grupo de segurança de rede personalizado que bloqueia o tráfego de entrada na porta UDP 53 no pool de nós de usuário de um cluster do Serviço de Kubernetes do Azure.

Solução 1: Configurar o NSG personalizado para permitir o tráfego entre os pools de nós

Verifique se o NSG personalizado permite o tráfego necessário entre os pools de nós, especificamente na porta UDP 53. O AKS não atualizará o NSG personalizado associado a sub-redes.

Causa 2: o acesso de saída no NSG de um pool de nós bloqueia o tráfego

O NSG em outro pool de nós bloqueia o acesso de saída ao pod. Por exemplo, um NSG personalizado no pool de nós do usuário bloqueia o tráfego de saída na porta UDP 53 para o pool de nós do sistema.

Diagrama de um grupo de segurança de rede personalizado que bloqueia o tráfego de saída na porta UDP 53 no pool de nós do sistema de um cluster do Serviço de Kubernetes do Azure.

Solução 2: configurar o NSG personalizado para permitir o tráfego entre os pools de nós

Consulte Solução 1: Configurar o NSG personalizado para permitir o tráfego entre os pools de nós.

Causa 3: a porta TCP 10250 está bloqueada

Outro cenário comum é que a porta TCP (Transmission Control Protocol) 10250 está bloqueada entre os pools de nós.

Nessa situação, um usuário pode receber uma mensagem de erro semelhante ao seguinte texto:

$ kubectl logs nginx-57cdfd6dd9-xb7hk
Error from server: Get https://<node>:10250/containerLogs/default/nginx-57cdfd6dd9-xb7hk/nginx: net/http: TLS handshake timeout

Se a comunicação na porta TCP 10250 for bloqueada, a conexão com o Kubelet será afetada e os logs não serão buscados.

Solução 3: Verificar se há regras de NSG que bloqueiam a porta TCP 10250

Verifique se alguma regra de NSG bloqueia a comunicação de nó para nó na porta TCP 10250.

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.