
Viele Anwendungen müssen aus Sicherheitsgründen anhand der Quell-IP-Adresse freigeschaltet werden. Bislang lässt sich einem GKE-Cluster kein statischer Adresspool zuweisen – stattdessen ist eine komplexe NAT-basierte Lösung nötig: teuer, wartungsintensiv und mit aufwendigen Regeln für Load Balancing und Redundanz.
kubeIP setzt genau hier an: Das Tool weist GKE-Knoten statische externe IP-Adressen aus einem reservierten Pool zu, überwacht die Kubernetes-API laufend auf neue Knoten und passt die Zuordnungen automatisch an.
kubeIP ist in Go geschrieben und läuft als Pod direkt in Ihrem GKE-Cluster – ohne Eingriffe am Cluster selbst. Konfiguriert wird über Umgebungsvariablen, die in einer ConfigMap von kubeIP hinterlegt sind.
apiVersion:
v1data: KUBEIP_LABELKEY: "kubeip" KUBEIP_LABELVALUE: "my-gke-cluster-1" KUBEIP_NODEPOOL: "default-pool" kind:
ConfigMapmetadata: labels: app:
kubeipname:
kubeip-confignamespace:
defaultkubeIP registriert sich als Listener für Events des Kubernetes-Clusters. Sobald ein neuer Knoten entsteht, sucht kubeIP im reservierten Pool nach einer freien statischen IP-Adresse (gekennzeichnet mit dem Namen Ihres GKE-Clusters) und weist sie dem neuen Knoten zu. Ist keine Adresse verfügbar, passiert nichts.
Damit das Deployment möglichst einfach bleibt, stellen wir ein Docker-Image von kubeIP auf Docker Hub bereit (docker pull doitintl/kubeip). Alternativ können Sie es selbst aus dem Quellcode bauen und dazu das kubeIP-Repository auf GitHub klonen.
Mehr davon gefällig? Schauen Sie in unseren Blog oder folgen Sie Aviv auf Twitter.