Kubernetes - posso evitar o uso do balanceador de carga GCE para reduzir custos?

5

Estou implantando um cluster do Kubernetes no GCE usando o Gitlab-CI. Gostaria de manter o custo ao mínimo - aqui está minha configuração atual:

  • Os nós são executados em 3 f1-micro instances
  • Um pod de sistema executando Traefik configurado com ServiceType LoadBalancer
  • dns curinga configurados
  • 1 postgres pod
  • 1 pod de servidor da web com ingress configurado para o Traefik

Eu gostaria de reduzir o custo da minha implantação. A maior parte do custo reside no balanceador de carga do GCE. Existe uma maneira de usar um endereço IP público em vez de um balanceador de carga 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 do 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?

    
por Mitkins 22.07.2017 / 02:01

1 resposta

4

Sim, via IPs externos. Esteja ciente de que isso significará que seu serviço ficará inoperante se o nó que disse IP externo atribuído falhar, mas se você estiver executando apenas um mestre, provavelmente não se importará muito com isso.

Exemplo de serviço:

apiVersion: v1
kind: Service
metadata:
  name: myapp
spec:
  ports:
    - port: 80
      protocol: TCP
  selector:
    app: myapp
  externalIPs:
    - a.b.c.d

O IP precisa ser o IP interno da instância do GCE (isso ocorre porque o GCE DNATs o tráfego para os IPs internos). O serviço deve então ser acessado através do IP externo atribuído do nó.

Você provavelmente desejará alterar o serviço do seu controlador de entrada, para poder rotear todos os seus aplicativos por meio de um IP.

    
por 19.08.2017 / 05:38