2016-01-12 10 views
5

Ich habe ein Projekt mit Appengine Teil und Google Containers Cluster. Appengine App muss HTTP-Aufrufe an einen Dienst senden, der in Google Containern bereitgestellt wird.Verbindung von Appengine zu einem Kubernetes-Service von Google Containern

Ich weiß, dass ich dem Dienst eine externe IP zuweisen, sie in meiner Appengine-App fest codieren kann und dann UrlFetch-Anfragen an solche IP-Adressen senden kann. Das funktioniert. Aber ich möchte kein öffentliches Netzwerk für solche Kommunikation benutzen.

Ich frage mich vielleicht kann ich auch Zugriff erhalten, wie es innerhalb Kubernetes Cluster zwischen Pods getan wird? durch Angabe eines Service-Host-Namens, der zu einer internen IP im 10.x.x.x-Bereich aufgelöst wird.

Ist es möglich, das gleiche von Appengine zu tun? Gibt es ein spezielles Namensschema, das für GKE-Dienste aufgelöst werden kann?

Antwort

2

Es gibt derzeit keine Möglichkeit, Pakete von einer App Engine-Anwendung in das private GCP-Netzwerk zu injizieren, in dem Ihr Kubernetes-Cluster ausgeführt wird (z. B. von einer 10.0.0.0/8 Adresse kommend). Die einzige Möglichkeit, Ihre Anwendung mit dem Container Engine-Dienst zu verbinden, besteht darin, die externen IP-Adressen zu verwenden (wie Sie es gerade tun).

+0

Ja, ich habe verschiedene Wege ausprobiert, kein Glück. Es scheint, dass es keine Möglichkeit gibt, eine Verbindung zu internen IPs herzustellen :(Sogar von Appengine Managed VM –

+0

habe ich einen Kubernetes-Dienst verfügbar gemacht und kann mich über das Internet damit verbinden, aber von AppEngine aus kann ich keine Verbindung herstellen. Es ist auf Port 50051. Muss ich bestimmte Ports oder ein anderes GCloud-Projekt verwenden? Ich denke, ich kann beides versuchen. –

+0

Ich konnte keine Verbindung zu einem anderen GCloud-Projekt herstellen. Ich habe eine Supportanfrage geöffnet. –

0

Unter standard App Engine ist der Zugriff auf Ihre Instanzen nur über das Frontend von appspot.com möglich. Unter Managed VMs können Sie auch die externe IP-Adresse für eine einzelne Instanz von der Developers Console (die immer noch ephemer ist) abrufen und auf diese Weise zugreifen, aber das ist so nah wie möglich und vereitelt die Skalierung.

Ein Grund, warum diese Art von Feature für App Engine nicht existiert, liegt darin, dass Instanzen in einer beliebigen Zone innerhalb derselben Region generiert werden können.

+1

Entschuldigung, ich fragte nach Google Container-Instanz, wie kann ich darauf zugreifen _from Appengine_ –