Quando você usa os balanceadores de carga criados manualmente no Google Cloud com Kubernetes Services e type: NodePort , é quase a mesma coisa que você usa type: Load Balancer para seus serviços, mas no segundo caso, LB é criado e gerenciado por Kubernetes, e você não precisa se preocupar com isso.
Como Service com o tipo NodePort está vinculando o endereço em todos os seus nós, eles devem ser adicionados ao LB como backend. Verifique a documentação , caminho "Modo-proxy: iptables". Talvez na sua situação, o Kubernetes tentou gerenciá-lo e adicionou todos os seus nós ao LoadBalancers, porque eles processam solicitações para seus serviços. Na verdade, não vi instalações em que o LoadBalancers foi criado manualmente e apontei para o Kubernetes.
No Google Cloud, recomendo que você use Ingress (com base no Google Load Balancer ou Nginx) ou Serviços com o type: Load Balancer , se você não precisar de roteamento personalizado.
Você pode implementá-lo assim (para o Nginx Ingress):
- Implante
Nginx Ingress Controllercom o Serviçotype: LoadBalancer. Ele criará para vocêLoadBalancercomo um ponto de entrada para todo o seu tráfego. - Implante seu aplicativo
Servicecomtype: ClusterIP. - Crie um objeto Ingress para o
Servicede seu aplicativo e escreva todas as regras de roteamento nele.