Como localizar uma falha de rede de carga de trabalho?
Processo de solução de problemas
Os métodos de solução de problemas são classificados com base na probabilidade de ocorrência das possíveis causas. É aconselhável verificar as possíveis causas de alta probabilidade para baixa probabilidade para localizar rapidamente a causa do problema.
Se a falha persistir após uma possível causa ser corrigida, verifique outras possíveis causas.
- Item de verificação 1: contêiner e porta de contêiner
- Item de verificação 2: endereço IP do nó e porta do nó
- Item de verificação 3: endereço IP do ELB e porta
- Item de verificação 4: gateway NAT + porta
- Item de verificação 5: se o grupo de segurança do nó onde o contêiner está localizado permite acesso
Item de verificação 1: contêiner e porta de contêiner
Efetue logon no console do CCE ou use o kubectl para consultar o endereço IP do pod. Em seguida, faça logon no nó ou no contêiner do cluster e execute o comando curl para chamar manualmente a API. Verifique se o resultado esperado é retornado.
Se <container IP address>:<port> não puder ser acessada, é aconselhável fazer logon no contêiner da aplicação e acessar <127.0.0.1>:<port> para localizar a falha.
Problemas comuns:
- A porta do contêiner está configurada incorretamente (o contêiner não escuta a porta de acesso).
- O URL não existe (não existe um caminho relacionado no contêiner).
- Uma exceção de serviço (um bug de Serviço no contêiner) ocorre.
Item de verificação 2: endereço IP do nó e porta do nó
Somente os Serviços de NodePort e LoadBalancer podem ser acessados usando o endereço IP do nó e a porta do nó.
- Serviços de NodePort:
A porta de acesso de um nó é a porta exposta externamente pelo nó.
- Serviço de LoadBalancer:
Você pode exibir a porta do nó de um Serviço de LoadBalancer editando o arquivo YAML.
Exemplo:
nodePort: 30637 indica a porta do nó exposta. targetPort: 80 indica a porta do pod exposta. port: 123 é a porta de serviço exposta. Os Serviços de LoadBalancer também usam essa porta para configurar o ouvinte do ELB.
Após encontrar a porta do nó (nodePort), acesse <IP address>:<port> do nó onde o contêiner está localizado e verifique se o resultado esperado é retornado.
Problemas comuns:
- A porta de serviço não é permitida nas regras de entrada do nó.
- Uma rota personalizada está configurada incorretamente para o nó.
- O rótulo do pod não corresponde ao do Serviço (criado usando kubectl ou API).
Item de verificação 3: endereço IP do ELB e porta
Existem várias causas possíveis se <IP address>:<port> do ELB não pode ser acessado, mas <IP address>:<port> do nó pode ser acessado.
Possível causa:
- O grupo de servidores back-end da porta ou URL não atende à expectativa.
- O grupo de segurança no nó não expôs o protocolo ou a porta relacionados ao ELB.
- A verificação de integridade do balanceamento de carga da camada 4 não está ativada.
- O certificado usado para Serviços do balanceamento de carga da camada 7 expirou.
Problemas comuns:
- Ao expor um balanceador de carga do ELB de camada 4, se você não tiver ativado a verificação de integridade no console, o balanceador de carga poderá rotear solicitações para nós anormais.
- Para acesso UDP, a porta ICMP do nó não foi permitida nas regras de entrada.
- O rótulo do pod não corresponde ao do Serviço (criado usando kubectl ou API).
Item de verificação 4: gateway NAT + porta
Geralmente, nenhum EIP é configurado para o servidor back-end do NAT. Caso contrário, exceções como perda de pacotes de rede podem ocorrer.
Item de verificação 5: se o grupo de segurança do nó onde o contêiner está localizado permite acesso
Entre ao console de gerenciamento, escolha Service List > Networking > Virtual Private Cloud. No console de rede, escolha Access Control > Security Groups, localize a regra do grupo de segurança do cluster do CCE, e modifique e endureça a regra do grupo de segurança.
- Cluster do CCE:
O nome do grupo de segurança do nó é {nome do cluster}-cce-node-{caracteres aleatórios}.
- Cluster do CCE Turbo:
O nome do grupo de segurança do nó é {nome do cluster}-cce-node-{caracteres aleatórios}.
O nome do grupo de segurança associado aos contêineres é {nome do cluster}-cce-eni-{caracteres aleatórios}.
Verifique o seguinte:
- Endereço IP, porta e protocolo de uma solicitação externa para acessar as cargas de trabalho no cluster. Eles devem ser permitidos na regra de entrada do grupo de segurança do cluster.
- Endereço IP, porta e protocolo de uma solicitação de uma carga de trabalho para visitar aplicativos externos fora do cluster. Eles devem ser permitidos na regra de saída do grupo de segurança de cluster.
Para obter detalhes sobre a configuração do grupo de segurança, consulte Configuração de regras do grupo de segurança do cluster.