Ich stelle einen Kubernetes-Cluster auf GCE mit Gitlab-CI bereit. Ich möchte die Kosten auf ein Minimum beschränken - hier ist mein aktuelles Setup:
- Knoten werden auf 3
f1-micro
Instanzen ausgeführt - Ein System-Pod, der
Traefik
mit ServiceType konfiguriert ausgeführt wirdLoadBalancer
- Platzhalter DNS konfiguriert
- 1
postgres
Hülse - 1 Webserver-Pod mit
ingress
für Traefik konfiguriert
Ich möchte die Kosten für meine Bereitstellung senken. Der größte Teil der Kosten entfällt auf den GCE Load Balancer. Gibt es eine Möglichkeit, eine öffentliche IP-Adresse anstelle eines Load Balancers in GCE zu verwenden? Wenn ja, kann ich die dem Cluster zugewiesene IP-Adresse verwenden (anstatt eine statische IP zu reservieren)?
Anders ausgedrückt: Gibt es eine Möglichkeit, eine kurzlebige IP-Adresse mithilfe von GCE ohne Load Balancer an einen Kubernetes-Dienst zu binden?
Gibt es eine andere Konfiguration, die ich anders durchführen kann, um die Kosten für GCE im Allgemeinen zu senken?
Antworten:
Ja, über externe IPs. Beachten Sie, dass dies bedeutet, dass Ihr Dienst ausfällt, wenn der Knoten, dem die externe IP zugewiesen wurde, ausfällt. Wenn Sie jedoch nur einen Master ausführen, ist Ihnen das wahrscheinlich egal.
Beispielservice:
Die IP muss die interne IP der GCE-Instanz sein (dies liegt daran, dass GCE den Datenverkehr zu den internen IPs DNATs). Der Dienst sollte dann über die dem Knoten zugewiesene externe IP zugänglich sein.
Möglicherweise möchten Sie den Dienst für Ihren Ingress-Controller ändern, damit Sie alle Ihre Apps über eine IP-Adresse weiterleiten können.
quelle
NodePort
Version getestetIch bevorzuge es, die Cloud-Load-Balancer erst zu verwenden, wenn dies erforderlich ist, da die Kosten und die Lieferantenbindung bestehen.
Stattdessen verwende ich Folgendes: https://kubernetes.github.io/ingress-nginx/deploy/
Es ist ein Pod, der einen Load Balancer für Sie ausführt. Diese Seite enthält GKE-spezifische Installationshinweise.
quelle