Konfigurieren Sie benutzerdefinierte Domains für den Zugriff auf Ihre Knative Service-Dienste. Sie können eine oder mehrere benutzerdefinierte Domains einem einzelnen Dienst oder eine einzelne Domain Ihrem Cluster zuordnen, die alle Dienste verwenden. Eine benutzerdefinierte Domainzuordnung kann die Basisdomain wie your-domain.com
oder eine Subdomain wie your-subdomain.your-domain.com
sein.
Standardmäßig sind die Dienste, die Sie in Ihren Knative Serving-Clustern bereitstellen, auf die Basisdomain nip.io
festgelegt. So können Sie Ihre Dienste sofort unter einer URL wie der folgenden testen:
http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io
Weitere Informationen zu Testdomains
Hinweis
Sie müssen die Domain, der Sie Ihre Dienste zuordnen möchten, besitzen oder erwerben. Sie können jeden beliebigen Domainnamenregistrator verwenden. Wenn Sie jedoch Cloud Domains verwenden, wird die Domain automatisch für Knative Serving bestätigt, sodass Sie die Domainbestätigung nicht selbst ausführen müssen.
Informationen zum Registrieren einer Domain bei Cloud Domains finden Sie unter In der Knative Serving-Konsole eine Domain bei Cloud Domains registrieren.
Sie benötigen mindestens die IAM-Rolle (Identity and Access Management) Kubernetes Engine-Entwickler oder entsprechende Berechtigungen.
Wenn Sie HTTPS mit Ihren benutzerdefinierten Domainzuordnungen aktivieren möchten, müssen Sie entweder verwaltete TLS-Zertifikate einrichten oder eigene Zertifikate konfigurieren.
Wenn Sie Ihrem Cluster oder Ihren Diensten in einem privaten internen Netzwerk eine benutzerdefinierte Domain zuordnen möchten, müssen Sie verwaltete TLS-Zertifikate deaktivieren.
Benutzerdefinierte Domain zuordnen
Sie können die Google Cloud Console oder die Befehlszeilentools verwenden, um Ihre benutzerdefinierte Domain zuzuordnen.
So konfigurieren Sie eine benutzerdefinierte Domain:
- Optional: Reservieren Sie die IP-Adresse Ihres Load-Balancers.
- Ordnen Sie Ihre Dienste oder den Cluster der benutzerdefinierten Domain in Knative Serving zu.
- Aktualisieren Sie die DNS-Einträge in Ihrem Domain-Registrator.
IP-Adresse des Load-Balancers reservieren
Wenn Knative Serving installiert ist, erstellt der Istio-Ingress-Controller einen Load-Balancer mit einer verfügbaren IP-Adresse.
Je nach GKE-Cluster müssen Sie möglicherweise die IP-Adresse des Load-Balancers für den Istio-Ingress-Controller reservieren:
- Außerhalb von Google Cloud
- In der Dokumentation der Umgebung, in der Sie den GKE-Cluster ausführen, können Sie ermitteln, wie IP-Adressen verwaltet werden und ob die IP-Adresse Ihres Load-Balancers statisch ist. Weitere Informationen finden Sie auf den Konfigurationsseiten des GKE-Clusters. Je nachdem, wie Sie das Load-Balancing für Google Distributed Cloud konfiguriert haben, haben Sie diese IP-Adressen möglicherweise bereits reserviert.
- Innerhalb von Google Cloud
Sie müssen die externe IP-Adresse des Load-Balancers reservieren, um sicherzustellen, dass sie gleich bleibt, sollte der Ingress-Dienst gelöscht werden. Abhängig von Ihrer Clusterkonfiguration ist die IP-Adresse entweder extern oder nur intern verfügbar, z. B. private Cluster.
- Interne Load-Balancer in Google Cloud
- Auf der folgenden Seite finden Sie Details zum Reservieren der IP-Adresse Ihres internen Load-Balancers: Statische interne IP-Adresse reservieren
- Externe Load-Balancer in Google Cloud
- So reservieren Sie die IP-Adresse des externen Load-Balancers:
Rufen Sie die IP-Adresse des Load-Balancers ab:
Console
So rufen Sie die externe IP-Adresse des Load-Balancers aus der Google Cloud Console ab:- Öffnen Sie in der Google Cloud Console die GKE-Seite:
Zu GKE - Klicken Sie auf Dienste und Ingress.
- Ermitteln Sie den Dienst, der der Istio Ingress Ihres Clusters ist. Der Typ des Dienstes lautet Externer Load-Balancer und der Name ist
istio-ingressgateway
. - Nachdem Sie den Istio Ingress-Dienst Ihres Clusters gefunden haben, kopieren Sie seinen Endpunkt. Dies ist die IP-Adresse ohne Portnummer. Beispiel:
00.000.000.000:11
wird als Endpunkt aufgeführt, aber Sie müssen nur00.000.000.000
kopieren.
kubectl
Führen Sie den folgenden Befehl aus, um die externe IP-Adresse für den Load-Balancer abzurufen:
kubectl get svc istio-ingressgateway -n ASM-INGRESS-NAMESPACE
Ersetzen Sie ASM-INGRESS-NAMESPACE durch den Namespace, in dem sich der Cloud Service Mesh-Ingress befindet. Geben Sie
istio-system
an, wenn Sie Cloud Service Mesh mit der Standardkonfiguration installiert haben.Die Ausgabe sieht dann ungefähr so aus:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) istio-ingressgateway LoadBalancer XX.XX.XXX.XX pending 80:32380/TCP,443:32390/TCP,32400:32400/TCP
Dabei ist der Wert EXTERNAL-IP Ihre externe IP-Adresse für den Load-Balancer.
- Öffnen Sie in der Google Cloud Console die GKE-Seite:
Reservieren Sie die IP-Adresse als statische IP-Adresse:
gcloud compute addresses create ADDRESS-NAME --addresses EXTERNAL-IP --region REGION
Ersetzen Sie:
- ADDRESS-NAME durch den Namen, den Sie Ihrer statischen IP-Adresse geben möchten.
- EXTERNAL-IP durch die externe IP-Adresse des Load-Balancers, die Sie im vorherigen Schritt abgerufen haben.
- REGION durch die Region, in der sich der Cluster befindet.
Nachdem Sie die IP-Adresse Ihres Load-Balancers abgerufen haben, können Sie sie zum Zuordnen Ihrer benutzerdefinierten Domain verwenden:
Dienste zuordnen
Wählen Sie eine der folgenden Methoden aus, um Ihre benutzerdefinierte Domain einem Knative Serving-Dienst zuzuordnen. Jeder einzelne Dienst kann mehreren Domains zugeordnet werden.
Console
Rufen Sie in der Google Cloud Console die Seite der Domainzuordnungen auf:
Wenn das Anzeigefenster zu klein ist, wird die Schaltfläche Benutzerdefinierte Domains zuordnen nicht angezeigt. Klicken Sie in diesem Fall auf das Dreipunkt-Menü, um sie einzublenden.
Klicken Sie auf Zuordnung hinzufügen und wählen Sie Dienstdomainzuordnung hinzufügen aus, um eine Domain einem einzelnen Dienst zuzuordnen. Sie können jedem Dienst mehrere Domains zuordnen.
Wählen Sie aus der Drop-down-Liste des Formulars Zuordnung hinzufügen den Dienst aus, dem Sie Ihre benutzerdefinierte Domain zuordnen möchten:
Geben Sie den Namen der Domain ein. Beispiel:
your-domain.com
odersubdomain.your-domain.com
. Domainanforderungen:- Die Zuordnung des Basispfads wird nicht unterstützt. Der Begriff Basispfad bezieht sich auf den Namen des URL-Pfads nach dem Domainnamen. Beispielsweise ist
users
der Basispfad vonyour-domain.com/users
. Mit Knative Serving können Sie eine Domain nur/
zuordnen, nicht einem bestimmten Basispfad. Pfadrouting muss also über einen Router im Container des Dienstes oder über Firebase Hosting erfolgen. -
Sie können Ihre Domain keiner Subdomain zuordnen, die mit der URL Ihrer Dienste übereinstimmt. Da URLs für einen Dienst als
http://{service}.{namespace}.{your-domain.com}
definiert sind, dürfen Sie keine Domainzuordnung zur gleichen Subdomaintest.default.
your-domain.com
erstellen, wenn Sie einen Dienst untertest.default.your-domain.com
haben.
- Die Zuordnung des Basispfads wird nicht unterstützt. Der Begriff Basispfad bezieht sich auf den Namen des URL-Pfads nach dem Domainnamen. Beispielsweise ist
Klicken Sie auf Weiter.
Aktualisieren Sie die DNS-Einträge auf der Website Ihres Domain-Registrators mithilfe der im letzten Schritt angezeigten DNS-Einträge. Sie können die Einträge jederzeit aufrufen, indem Sie im Aktionsmenü „...“ einer Domainzuordnung auf DNS-Einträge klicken.
Klicken Sie auf Fertig.
gcloud
Ordnen Sie Ihren Dienst der benutzerdefinierten Domain zu:
gcloud run domain-mappings create --service SERVICE --domain DOMAIN
Ersetzen Sie:
- SERVICE durch den Dienstnamen.
- DOMAIN mit Ihrer benutzerdefinierten Domain. Beispiel:
your-domain.com
odersubdomain.your-domain.com
. Domainanforderungen:- Die Zuordnung des Basispfads wird nicht unterstützt. Der Begriff Basispfad bezieht sich auf den Namen des URL-Pfads nach dem Domainnamen. Beispielsweise ist
users
der Basispfad vonyour-domain.com/users
. Mit Knative Serving können Sie eine Domain nur/
zuordnen, nicht einem bestimmten Basispfad. Pfadrouting muss also über einen Router im Container des Dienstes oder über Firebase Hosting erfolgen. -
Sie können Ihre Domain keiner Subdomain zuordnen, die mit der URL Ihrer Dienste übereinstimmt. Da URLs für einen Dienst als
http://{service}.{namespace}.{your-domain.com}
definiert sind, dürfen Sie keine Domainzuordnung zur gleichen Subdomaintest.default.
your-domain.com
erstellen, wenn Sie einen Dienst untertest.default.your-domain.com
haben.
- Die Zuordnung des Basispfads wird nicht unterstützt. Der Begriff Basispfad bezieht sich auf den Namen des URL-Pfads nach dem Domainnamen. Beispielsweise ist
Nachdem die benutzerdefinierte Domain Knative Serving zugeordnet wurde, müssen Sie DNS-Einträge bei Ihrem Domainregistrator hinzufügen.
Cluster zuordnen
Wählen Sie eine der folgenden Methoden aus, um Ihrem Cluster Ihre benutzerdefinierte Domain zuzuordnen:
Console
Rufen Sie in der Google Cloud Console die Seite der Domainzuordnungen auf:
Wenn das Anzeigefenster zu klein ist, wird die Schaltfläche Benutzerdefinierte Domains zuordnen nicht angezeigt. Klicken Sie in diesem Fall auf das Dreipunkt-Menü, um sie einzublenden.
Klicken Sie auf Zuordnung hinzufügen und wählen Sie Standarddomain hinzufügen aus, um allen Diensten in Ihrem Cluster eine Domain zuzuordnen. Standardmäßig verwenden neue bereitgestellte Dienste die zugeordnete Domain.
Klicken Sie auf das Kästchen, um die neue Domainzuordnung auf alle vorhandenen Dienste in Ihrem Cluster anzuwenden.
Wählen Sie aus der Drop-down-Liste des Formulars Zuordnung hinzufügen den Cluster aus, dem Sie Ihre benutzerdefinierte Domain zuordnen möchten:
Geben Sie den Namen der Domain ein. Beispiel:
your-domain.com
odersubdomain.your-domain.com
. Domainanforderungen:- Die Zuordnung des Basispfads wird nicht unterstützt. Der Begriff Basispfad bezieht sich auf den Namen des URL-Pfads nach dem Domainnamen. Beispielsweise ist
users
der Basispfad vonyour-domain.com/users
. Mit Knative Serving können Sie eine Domain nur/
zuordnen, nicht einem bestimmten Basispfad. Pfadrouting muss also über einen Router im Container des Dienstes oder über Firebase Hosting erfolgen. -
Sie können Ihre Domain keiner Subdomain zuordnen, die mit der URL Ihrer Dienste übereinstimmt. Da URLs für einen Dienst als
http://{service}.{namespace}.{your-domain.com}
definiert sind, dürfen Sie keine Domainzuordnung zur gleichen Subdomaintest.default.
your-domain.com
erstellen, wenn Sie einen Dienst untertest.default.your-domain.com
haben.
- Die Zuordnung des Basispfads wird nicht unterstützt. Der Begriff Basispfad bezieht sich auf den Namen des URL-Pfads nach dem Domainnamen. Beispielsweise ist
Klicken Sie auf Weiter.
Aktualisieren Sie die DNS-Einträge auf der Website Ihres Domain-Registrators mithilfe der im letzten Schritt angezeigten DNS-Einträge. Sie können die Einträge jederzeit aufrufen, indem Sie im Aktionsmenü „...“ einer Domainzuordnung auf DNS-Einträge klicken.
Klicken Sie auf Fertig.
kubectl
Führen Sie den folgenden Befehl aus, um die vorhandene Basisdomain aus der ConfigMap
config-domain
zu entfernen und durch Ihre benutzerdefinierte Domain zu ersetzen:kubectl patch configmap config-domain --namespace knative-serving --patch \ '{"data": {"nip.io": null, "DOMAIN": ""}}'
Ersetzen Sie DOMAIN durch Ihre benutzerdefinierte Domain. Beispiel:
your-domain.com
odersubdomain.your-domain.com
. Domainanforderungen:- Die Zuordnung des Basispfads wird nicht unterstützt. Der Begriff Basispfad bezieht sich auf den Namen des URL-Pfads nach dem Domainnamen. Beispielsweise ist
users
der Basispfad vonyour-domain.com/users
. Mit Knative Serving können Sie eine Domain nur/
zuordnen, nicht einem bestimmten Basispfad. Pfadrouting muss also über einen Router im Container des Dienstes oder über Firebase Hosting erfolgen. -
Sie können Ihre Domain keiner Subdomain zuordnen, die mit der URL Ihrer Dienste übereinstimmt. Da URLs für einen Dienst als
http://{service}.{namespace}.{your-domain.com}
definiert sind, dürfen Sie keine Domainzuordnung zur gleichen Subdomaintest.default.
your-domain.com
erstellen, wenn Sie einen Dienst untertest.default.your-domain.com
haben.
- Die Zuordnung des Basispfads wird nicht unterstützt. Der Begriff Basispfad bezieht sich auf den Namen des URL-Pfads nach dem Domainnamen. Beispielsweise ist
Nachdem die benutzerdefinierte Domain Knative Serving zugeordnet wurde, müssen Sie DNS-Einträge bei Ihrem Domainregistrator hinzufügen.
DNS-Einträge im Domain-Registrator hinzufügen
Nachdem Sie Ihren Dienst einer benutzerdefinierten Domain in Knative Serving zugeordnet haben, müssen Sie die DNS-Einträge bei Ihrem Domain-Registrator aktualisieren. Zur Vereinfachung werden von Knative Serving die DNS-Einträge, die Sie eingeben müssen, generiert und angezeigt. Sie müssen diese Einträge, die auf den Knative Serving-Dienst verweisen, im Domain-Registrator hinzufügen, damit die Zuordnung wirksam wird.
Wenn Sie Cloud DNS als DNS-Anbieter verwenden, finden Sie weitere Informationen unter Eintrag hinzufügen.
Rufen Sie die DNS-Eintragsinformationen für die Domainzuordnung auf eine der folgenden Arten ab:
Console
Rufen Sie die Seite „Knative Serving-Domainzuordnungen“ auf:
Klicken Sie auf das Dreipunkt-Menü rechts neben Ihrem Dienst und dann auf DNS-EINTRÄGE, um alle DNS-Einträge aufzurufen:
gcloud
gcloud run domain-mappings describe --domain DOMAIN
Ersetzen Sie DOMAIN durch Ihre benutzerdefinierte Domain. Beispiel:
your-domain.com
odersubdomain.your-domain.com
.Sie benötigen alle Datensätze, die unter der Überschrift
resourceRecords
zurückgegeben werden.Melden Sie sich bei Ihrem Domain-Registrator in Ihrem Konto an und öffnen Sie dann die DNS-Konfigurationsseite.
Suchen Sie auf der Konfigurationsseite der Domain den Abschnitt mit den Hosteinträgen und fügen Sie die einzelnen Ressourceneinträge hinzu, die Sie bei der Zuordnung der Domain zu Ihrem Knative Serving-Dienst erhalten haben.
Wenn Sie dem Konto bei Ihrem DNS-Anbieter jeden der oben genannten DNS-Einträge hinzufügen,
- wählen Sie den Typ aus, der im vorherigen Schritt im DNS-Eintrag zurückgegeben wurde:
A
,AAAA
oderCNAME
. - Verwenden Sie den Namen
www
, umwww.your-domain.com
zuzuordnen. - Verwenden Sie den Namen
@
, umyour-domain.com
zuzuordnen. - Verwenden Sie den Platzhalter
*
, um*.your-domain.com
zuzuordnen.
- wählen Sie den Typ aus, der im vorherigen Schritt im DNS-Eintrag zurückgegeben wurde:
Speichern Sie die Änderungen auf der DNS-Konfigurationsseite des Kontos Ihrer Domain. In den meisten Fällen dauert es nur ein paar Minuten, bis diese Änderungen wirksam werden. In manchen Fällen kann es aber auch mehrere Stunden dauern, je nach Registrator und Gültigkeitsdauer (TTL) aller früheren DNS-Einträge für Ihre Domain. Sie können das
dig
-Tool, z. B. diesedig
-Onlineversion, verwenden, um zu bestätigen, dass die DNS-Einträge erfolgreich aktualisiert wurden.Prüfen Sie, ob der Vorgang erfolgreich war. Dazu rufen Sie den Dienst über die neue URL auf (z. B.
https://www.your-domain.com
). Beachten Sie, dass es mehrere Minuten dauern kann, bis das verwaltete SSL/TLS-Zertifikat ausgestellt wird.
Bestätigte Domaininhaber zu anderen Nutzern oder Dienstkonten hinzufügen
Wenn ein Nutzer die Inhaberschaft für eine Domain bestätigt, wird sie nur für das Konto dieses Nutzers bestätigt. Dies bedeutet, dass nur jener Nutzer weitere Domainzuordnungen einfügen kann, die diese Domain verwenden. Damit auch andere Nutzer Zuordnungen einfügen können, die diese Domain verwenden, müssen Sie diese Nutzer als verifizierte Inhaber hinzufügen.
Wenn Sie vorhandene Nutzer oder Dienstkonten zu bestätigten Inhabern der Domain erklären möchten, können Sie diese Berechtigung über die Seite Search Console hinzufügen:
Rufen Sie in Ihrem Webbrowser diese Adresse auf:
Klicken Sie unter Attribute auf die Domain, für die Sie einen Nutzer oder ein Dienstkonto hinzufügen möchten.
Scrollen Sie nach unten zur Liste Bestätigte Inhaber, klicken Sie auf Inhaber hinzufügen und geben Sie dann die E-Mail-Adresse oder Dienstkonto-ID eines Google-Kontos ein.
Öffnen Sie in der Google Cloud Console die Seite „Dienstkonten“, um eine Liste der Dienstkonten anzusehen:
Domain in der Knative Serving-Konsole bei Cloud Domains registrieren
So registrieren Sie in der Knative Serving Console eine Domain bei Cloud Domains:
Rufen Sie die Seite „Knative Serving-Domainzuordnungen“ auf:
Klicken Sie auf Domain registrieren.
Folgen Sie der Anleitung Domain registrieren, um die Registrierung abzuschließen.
Führen Sie die Schritte weiter oben auf dieser Seite aus, um Ihre Domain zu Knative Serving zuzuordnen und dann DNS-Einträge bei Ihrem Domain-Registrator hinzuzufügen.
Fehlerbehebung
Informationen zu häufigen Problemen finden Sie unter Fehlerbehebung bei benutzerdefinierten Domains und verwalteten TLS.