Wie kann ich einen Dienst in Google Cloud Servern abbilden?

Wie kann ich einen Dienst in Google Cloud Servern abbilden?

Ich bin gerade dabei, unsere Anwendung in kleinere Dienste aufzuteilen. Ich füge die neuen Dienste auf einem Backend-Server hinzu (d. h. nicht öffentlich zugänglich) und mache dann Einträge in der Datei /etc/hosts unserer Webserver. Beispieleintrag

10.160.x.xx newservice.mydomain.com    

Dieser Ansatz funktioniert. Aber wenn ich den Dienst vom Webserver aus teste, sehe ich, dass Ping funktioniert, nicht nslookup. Also ping newservice.mydomain.comist es erfolgreich, nicht nslookup newservice.mydomain.com
. Warum ist das so? Wie kann ich dafür sorgen, dass auch nslookup funktioniert?

Antwort1

nslookupfragt die DNS-Server, und diese haben keine Kenntnis von Ihrer lokalen hostsDatei, daher lösen sie die darin enthaltenen Einträge nicht auf. Wenn Sie möchten, dass Ihre hostsDatei über DNS-Lookups zugänglich ist, müssen Sie einen DNS-Server verwenden, der Kenntnis davon hat (der beispielsweise so systemd-resolvedkonfiguriert werden kann, dass er die Datei analysiert).

Die Verwendung eines hostsEintrags scheint hier jedoch überflüssig, da jede Compute Engine-Instanz über den standardmäßigen Google Cloud DNS-Server () aufgelöst werden kann 169.254.169.254. Der Name jeder Compute Engine lautet [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal(weitere Infos zum internen DNS gibt es hier), Sie sollten also unter diesem Namen auf Ihre Server zugreifen können.

verwandte Informationen