
Was ich derzeit habe..
... ist eine Anwendung mit einer Microservices-Architektur, bei der die verschiedenen Dienste über GRPC mit einem Gateway kommunizieren, wobei das Gateway REST-Endpunkte bedient.
Ich stelle dieses System auf GCP bereit. Derzeit verfügt jeder Dienst über ein Docker-Image mit einer GKE-Arbeitslast. Jeder Dienst wird also mit einer öffentlichen IP-Adresse und einem öffentlichen Port bereitgestellt. Das Gateway ist ebenfalls ein Docker-Image auf GKE, das mit einer öffentlichen IP-Adresse und einem öffentlichen Port bereitgestellt wird.
Was ich möchte...
... ist die Bereitstellung, die meine lokale Bereitstellung widerspiegelt, wobei jeder Dienst über mit dem Gateway kommuniziert 127.0.0.1:{PORT}
und nur das Gateway eine öffentliche IP-Adresse und einen öffentlichen Port verwendet. Ich hoffe, damit den Zugriff auf die Dienste auf das Gateway zu beschränken.
Wie kann ich das erledigen?
NOTIZ: Ich möchte die Dienste weiterhin als separate Git-Repositorys, also mit separaten Dockerfiles/Docker-Images.
Antwort1
Aufgrund der bereitgestellten Informationen gehe ich davon aus, dass Ihre „Dienste“, die Dockerfiles verwenden, Pods sind. Pods haben keine externen IP-Adressen.
Sie können einLoad Balancer mit Ingressum eine externe IP für den Gateway-Pod hinzuzufügen. Für andere Pods verwenden SieclusterIP-Dienstsodass sie nur innerhalb des Clusters verfügbar sind und Sie angeben können, welche Art von Dienst Sie wünschen.