Um serviço NodePort é a solução mais comum para um cluster bare-metal local / pequeno, e a mesma porta estará disponível em todos os nós em que suas tarefas estão em execução (isto é, provavelmente não em seus nós mestre) executando kube-proxy
.
Existem alguns código contrib / not-obvious que funcionam como um LoadBalancer para redes menores de modo que, se você quiser usar o tipo: LoadBalancer localmente e na nuvem, poderá obter mecanismos equivalentes, se isso for importante.
Os controladores Ingress se tornam significativamente úteis sobre NodePorts quando você deseja misturar e combinar serviços (especificamente serviços HTTP) expostos de seu cluster na porta 80 ou 443 e são criados para suportar especificamente mais de um serviço por meio de um único endpoint (e potencialmente , uma única porta - mapeada para separar caminhos URI ou semelhantes). Controladores Ingress não ajudam muito quando o acesso que você deseja não é baseado em HTTP (por exemplo, um serviço baseado em soquete, como Redis ou MongoDB, ou talvez algo personalizado que você esteja fazendo)
Se você estiver integrando isso em um projeto de TI interno, muitos balanceadores de carga comercial recomendam que as configurações do NodePort sejam feitas com sua própria tecnologia de balanceamento de carga e façam referência ao pool de todos os nós de trabalho nessa configuração. A F5 tem um exemplo razoável disso em sua documentação.