Estou implantando um cluster Kubernetes no GCE usando o Gitlab-CI. Gostaria de manter o custo mínimo - eis a minha configuração atual:
- Nós executados em 3
f1-micro
instâncias - Um pod de sistema em execução
Traefik
configurado com ServiceTypeLoadBalancer
- DNS curinga configurado
- 1
postgres
pod - 1 pod de servidor da Web
ingress
configurado para Traefik
Eu gostaria de reduzir o custo da minha implantação. A maior parte do custo reside no balanceador de carga GCE. Existe uma maneira de usar um endereço IP público em vez de um Load Balancer no GCE? Em caso afirmativo, posso utilizar o endereço IP alocado para o cluster (em vez de reservar um IP estático)?
Em outras palavras, existe uma maneira de vincular um ip efêmero a um serviço Kubernetes usando o GCE sem um balanceador de carga?
Existe alguma outra configuração que eu possa fazer de maneira diferente que reduza os custos em geral no GCE?
Respostas:
Sim, via ExternalIPs. Esteja ciente de que isso significará que seu serviço será desativado se o nó que disse IP externo atribuído falhar, mas se você estiver executando apenas 1 mestre, provavelmente não se importará muito com isso.
Exemplo de serviço:
O IP precisa ser o IP interno da instância do GCE (isso ocorre porque o GCE DNAT transmite o tráfego para os IPs internos). O serviço deve estar acessível por meio do IP externo atribuído ao nó.
Provavelmente, você desejará alterar o serviço do seu controlador de entrada, para poder rotear todos os seus aplicativos através de um IP.
fonte
NodePort
versão muitoPrefiro não usar os balanceadores de carga na nuvem, até que seja necessário, devido ao custo e ao bloqueio do fornecedor.
Em vez disso, uso o seguinte: https://kubernetes.github.io/ingress-nginx/deploy/
É um pod que executa um balanceador de carga para você. Essa página possui notas de instalação específicas do GKE.
fonte