Wenn Sie eine VM-Instanz erstellen, erstellt Google Cloud einen internen DNS-Namen aus dem VM-Namen. Wenn Sie keinen benutzerdefinierten Hostnamen angeben, verwendet Google Cloud den automatisch erstellten internen DNS-Namen als Hostnamen für die VM.
Sie können eine VM mit einem benutzerdefinierten Hostnamen erstellen, wenn Sie einen voll qualifizierten DNS-Namen angeben. Benutzerdefinierte Hostnamen werden für Konventionen oder Anforderungen für Anwendungen verwendet, die einen bestimmten Hostnamen erfordern.
Auch wenn Sie einen benutzerdefinierten Hostnamen angeben, erstellt Google Cloud den internen Compute Engine-DNS-Namen. Sie können mithilfe dieses automatisch erstellten internen DNS-Eintrags eine Verbindung zu Ihrer VM herstellen. Der interne DNS-Eintrag wird in den internen DNS-Namen und nicht auf den benutzerdefinierten Hostnamen aufgelöst. Bei benutzerdefinierten Hostnamen müssen Sie in der entsprechenden Zone einen entsprechenden DNS-Eintrag erstellen, z. B. mit Cloud DNS.
Hinweise
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft.
Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Terraform
Wenn Sie die Terraform-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen unter Set up authentication for a local development environment.
Go
Wenn Sie die Go Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen unter Set up authentication for a local development environment.
Java
Wenn Sie die Java Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen unter Set up authentication for a local development environment.
Node.js
Wenn Sie die Node.js Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen unter Set up authentication for a local development environment.
Python
Wenn Sie die Python Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen unter Set up authentication for a local development environment.
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.
-
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle (roles/compute.instanceAdmin.v1
) Compute-Instanzadministrator (v1) für das Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Erstellen einer VM mit einem benutzerdefinierten Hostnamen benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen einer VM mit einem benutzerdefinierten Hostnamen erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um eine VM mit einem benutzerdefinierten Hostnamen zu erstellen:
compute.instances.create
für das Projekt-
So erstellen Sie die VM mit einem benutzerdefinierten Image:
compute.images.useReadOnly
für das Image -
Um die VM mit einem Snapshot zu erstellen:
compute.snapshots.useReadOnly
für den Snapshot -
So verwenden Sie eine Instanzvorlage zum Erstellen der VM:
compute.instanceTemplates.useReadOnly
für die Instanzvorlage -
So weisen Sie der VM ein Legacy-Netzwerk zu:
compute.networks.use
für das Projekt -
Um eine statische IP-Adresse für die VM festzulegen:
compute.addresses.use
für das Projekt -
So weisen Sie der VM eine externe IP-Adresse zu, wenn Sie ein Legacy-Netzwerk verwenden:
compute.networks.useExternalIp
für das Projekt -
So geben Sie ein Subnetz für Ihre VM an:
compute.subnetworks.use
für das Projekt oder für das ausgewählte Subnetz -
So weisen Sie der VM eine externe IP-Adresse zu, wenn Sie ein VPC-Netzwerk verwenden:
compute.subnetworks.useExternalIp
für das Projekt oder für das ausgewählte Subnetz -
Um Metadaten der VM-Instanz für die VM festzulegen:
compute.instances.setMetadata
für das Projekt -
Zum Festlegen von Tags für die VM:
compute.instances.setTags
auf der VM -
So legen Sie Labels für die VM fest:
compute.instances.setLabels
auf der VM -
So legen Sie ein Dienstkonto für die VM fest:
compute.instances.setServiceAccount
auf der VM -
Um ein neues Laufwerk für die VM zu erstellen:
compute.disks.create
für das Projekt -
So hängen Sie ein vorhandenes Laufwerk im Lese- oder Lese-/Schreibmodus an:
compute.disks.use
für das Laufwerk -
So hängen Sie ein vorhandenes Laufwerk im Lesemodus an:
compute.disks.useReadOnly
für das Laufwerk
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Beschränkungen
Sie müssen den DNS-Eintrag für Ihren benutzerdefinierten Hostnamen manuell konfigurieren. Benutzerdefinierte Hostnamen werden nicht von den automatisch erstellten Einträgen der internen Compute Engine-DNS aufgelöst. Sie haben die folgenden Möglichkeiten, um den DNS-Eintrag für den benutzerdefinierten Hostnamen zu hosten:
jeden anderen öffentlichen DNS-Nameserver
Sie können einen benutzerdefinierten Hostnamen nicht ändern, nachdem Sie die VM erstellt haben.
Unterstützte Betriebssysteme
Benutzerdefinierte Hostnamen werden in der Gastumgebung mithilfe von dhclient
-Exit-Hooks unter Linux festgelegt. Unter Linux-Betriebssystemen, die dhclient
-Exit-Hooks nicht unterstützen oder dhclient
nicht verwenden, ist möglicherweise nicht der richtige Hostname festgelegt.
Eine vollständige Liste der Betriebssystemversionen, die benutzerdefinierte Hostnamen unterstützen, finden Sie unter Details zu Betriebssystemen unter „Unterstützung der Gastumgebung“.
Namenskonvention
Benutzerdefinierte Hostnamen müssen den RFC 1035-Anforderungen für gültige Hostnamen entsprechen. Benutzerdefinierte Hostnamen müssen die folgenden Formatspezifikationen erfüllen, um diese Anforderungen zu erfüllen:
- Der Hostname enthält mindestens zwei Labels, die so beschrieben werden:
- Jedes Label enthält reguläre Ausdrücke, die nur diese Zeichen enthalten:
[a-z]([-a-z0-9]*[a-z0-9])?
. - Labels sind mit einem Punkt verkettet.
- Jedes Label umfasst 1 bis 63 Zeichen.
- Jedes Label enthält reguläre Ausdrücke, die nur diese Zeichen enthalten:
- Der Hostname darf nicht mehr als 253 Zeichen umfassen.
Nicht gültig: enthält ein einzelnes Label.
my-host1234
Gültig: enthält drei Labels, die mit Punkten verkettet sind.
my-host1234.example.com
VM mit einem benutzerdefinierten Hostnamen erstellen
Console
Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.
Geben Sie einen Namen für Ihre VM an. Weitere Informationen finden Sie unter Namenskonvention für Ressourcen.
Maximieren Sie den Abschnitt Erweiterte Optionen und gehen Sie dann so vor:
- Maximieren Sie den Bereich Netzwerk.
- Geben Sie im Feld Hostname den benutzerdefinierten Hostnamen ein.
Nehmen Sie bei Bedarf weitere VM-Anpassungen vor.
Klicken Sie zum Erstellen und Starten der VM auf Erstellen.
Nächster Schritt: Konfigurieren Sie Ihre DNS-Einträge. Weitere Informationen finden Sie unter Einträge verwalten.
gcloud
Folgen Sie der Anleitung, wenn Sie das Google Cloud CLI verwenden und erstellen Sie eine Instanz aus einem Image oder einem Snapshot, fügen Sie das Flag --hostname
hinzu und verwenden Sie den Befehl gcloud compute instances create
folgendermaßen:
gcloud compute instances create VM_NAME \ --hostname=HOST_NAME
Dabei gilt:
VM_NAME
: der Name der VM.HOST_NAME
: der voll qualifizierte Domainhostname, den Sie zuweisen möchten.
Führen Sie beispielsweise den folgenden Befehl aus, um die VM myinstance
mit dem benutzerdefinierten Hostnamen test.example.com
zu erstellen:
gcloud compute instances create myinstance \ --hostname=test.example.com
Nächster Schritt: Konfigurieren Sie Ihre DNS-Einträge. Weitere Informationen finden Sie unter Einträge verwalten.
Terraform
Mit einer Terraform-Ressource können Sie mithilfe des Arguments hostname
eine Instanz mit einem benutzerdefinierten Hostnamen erstellen.
- Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
- Klicken Sie auf Instanz erstellen.
- Geben Sie die gewünschten Parameter an.
- Klicken Sie oben oder unten auf der Seite auf Entsprechender Code und dann auf den Tab Terraform, um den Terraform-Code aufzurufen.
Nächster Schritt: Konfigurieren Sie Ihre DNS-Einträge. Weitere Informationen finden Sie unter Einträge verwalten.
Go
Java
Node.js
Python
REST
Gehen Sie vor, wie in der API-Anleitung zum Erstellen einer Instanz aus einem Image oder zum Erstellen einer Instanz aus einem Snapshot beschrieben. Geben Sie dabei das Feld hostname
im Anfragetext an.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "hostname": "HOST_NAME", ... }
Dabei gilt:
Benutzerdefinierten Hostnamen überprüfen
Bei Linux-VMs können Sie den Hostnamen durch Ausführen des Befehls hostname -f
auf der VM prüfen.
Sie können den benutzerdefinierten Hostnamen auch mit der Google Cloud Console oder dem Google Cloud CLI prüfen.
Console
Rufen Sie die Seite VM-Instanzen auf, um sich den benutzerdefinierten Hostnamen für Ihre Instanz anzeigen zu lassen.
Klicken Sie auf den Instanznamen, um die Seite VM-Instanzdetails zu öffnen.
Prüfen Sie den Abschnitt Hostname. Das Feld Hostname ist nur sichtbar, wenn ein benutzerdefinierter Hostname festgelegt ist.
gcloud
Zum Aufrufen des benutzerdefinierten Hostnamens für Ihre VM mit gcloud compute
verwenden Sie den Unterbefehl instances describe
mit dem Flag --format
, um die Ausgabe zu filtern. Ersetzen Sie VM_NAME
durch den Namen der VM.
gcloud compute instances describe VM_NAME \ --format='get(hostname)'
Führen Sie beispielsweise den folgenden Befehl aus, um sich den benutzerdefinierten Hostnamen für eine VM mit dem Namen myinstance
anzeigen zu lassen.
gcloud compute instances describe myinstance \ --format='get(hostname)'
Die Ausgabe könnte etwa so aussehen:
test.example.com
Wenn kein benutzerdefinierter Hostname festgelegt ist, ist die Ausgabe für diesen Befehl leer.