Ich stelle eine Web-App mit Google Kubernetes Engine bereit und möchte sie über einen Load Balancer auf einer vorhandenen statischen IP-Adresse zugänglich machen, die ich im Rahmen desselben Projekts in Google Cloud Platform kontrolliere, da der Domainname verwendet werden soll zeigt schon auf diese IP.
Die Yaml-Datei, die ich für den Pod verwendet habe, ist:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
labels:
app: my-app
spec:
containers:
- name: my-container
image: gcr.io/my-project/my-app:latest
Ich kann einen Lastenausgleich einrichten, indem ich Folgendes verwende:
apiVersion: v1
kind: Service
metadata:
name: my-load-balancer
spec:
ports:
- port: 80
targetPort: 80
selector:
app: my-app
type: LoadBalancer
Dies bietet eine externe IP-Adresse, auf die die App zugreifen kann, aber ich kann sie nicht so konfigurieren, dass sie die gewünschte IP-Adresse verwendet. In der Dokumentation zu den Diensten wird eine spec.clusterIP-Einstellung erwähnt, die sich jedoch nicht auf die externe IP zu beziehen scheint. Ebenso wird nach dem Einrichten des Lastenausgleichs das Feld status.loadBalancer.ingress.ip des Dienstes auf seine externe IP-Adresse festgelegt, dies scheint jedoch keine konfigurierbare Einstellung zu sein.
Als Alternative habe ich versucht, manuell eine Weiterleitungsregel in der Google Compute Engine-Konsole zu erstellen, um den Datenverkehr von meiner statischen IP-Adresse an den von Kubernetes eingerichteten Zielpool weiterzuleiten. Wenn ich jedoch versuche, eine Verbindung herzustellen, wird die Verbindung abgelehnt.
Gibt es eine Möglichkeit, das zu tun, was ich möchte - einen Kubernetes-Pod (oder Replikationscontroller) in der Google Kubernetes-Engine unter einer ausgewählten statischen IP-Adresse verfügbar zu machen?