Kubernetes: posso evitare di utilizzare il bilanciamento del carico GCE per ridurre i costi?


10

Sto distribuendo un cluster Kubernetes su GCE usando Gitlab-CI. Vorrei ridurre al minimo i costi: ecco la mia configurazione attuale:

  • I nodi vengono eseguiti su 3 f1-microistanze
  • Un pod di sistema in esecuzione Traefikconfigurato con ServiceTypeLoadBalancer
  • Wildcard dns configurato
  • 1 postgres pod
  • 1 pod del server Web con ingressconfigurato per Traefik

Vorrei ridurre i costi della mia distribuzione. Gran parte del costo è a carico del bilanciamento del carico GCE. Esiste un modo per utilizzare un indirizzo IP pubblico anziché un bilanciamento del carico su GCE? In tal caso, posso utilizzare l'indirizzo IP assegnato al cluster (anziché riservare un IP statico)?

Per dirla in altro modo, c'è un modo per legare un ip effimero a un servizio Kubernetes usando GCE senza un bilanciamento del carico?

C'è qualche altra configurazione che posso fare diversamente che ridurrà i costi in generale su GCE?


1
È possibile esporre il servizio solo utilizzando il tipo di servizio NodePort, ma ciò introdurrà alcune limitazioni alla distribuzione. Per maggiori informazioni visita questo link .
Kamran,

Risposte:


10

Sì, tramite ExternalIPs. Tieni presente che ciò significa che il servizio verrà disattivato se il nodo a cui è stato assegnato l'IP esterno non riesce, ma se stai eseguendo solo 1 master, probabilmente non ti interessa molto.

Esempio di servizio:

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

L'IP deve essere l' IP interno dell'istanza GCE (questo perché GCE DNAT indirizza il traffico verso gli IP interni). Il servizio dovrebbe quindi essere accessibile tramite l'IP esterno assegnato al nodo.

Probabilmente vorrai cambiare il servizio per il tuo controller di ingresso, in modo da poter indirizzare tutte le tue app attraverso un IP.


2
Dopo aver appreso della cosa DNAT, mi sono reso conto che dovevo configurare una regola firewall per consentire il traffico su determinate porte all'istanza GCE. Dopo questo sono stato in grado di attuare con successo il tuo suggerimento. Ho anche testato con successo anche una NodePortversione
Mitkins l'

2

Preferisco non utilizzare i servizi di bilanciamento del carico cloud, fino a quando necessario, a causa dei costi e del blocco del fornitore.

Invece lo uso: https://kubernetes.github.io/ingress-nginx/deploy/

È un pod che esegue un bilanciamento del carico per te. Quella pagina contiene note di installazione specifiche di GKE.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.