Benutzerdefinierte Domains für den Zugriff auf Knative serving konfigurieren
. 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 nip.io
-Basisdomain 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 ist. zur Domainbestätigung.
Informationen zum Registrieren einer Domain bei Cloud Domains finden Sie unter Eine Domain bei Cloud Domains im Knative serving-Konsole.
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, hat der Istio-Ingress-Controller einen Load-Balancer mit einer verfügbaren IP-Adresse erstellt.
Je nach GKE-Cluster müssen Sie möglicherweise die IP-Adresse reservieren Adresse des Load-Balancers für den Istio-Ingress-Controller:
- Außerhalb von Google Cloud
- Weitere Informationen finden Sie in der Dokumentation zur Umgebung, in der Sie Ihren GKE-Cluster, um zu bestimmen, wie IP-Adressen verwaltet werden und ob die Last Die IP-Adresse des Balancers ist statisch. Weitere Informationen finden Sie auch auf den Konfigurationsseiten Ihres GKE-Cluster. Je nachdem, wie Load Balancing für Google Distributed Cloud konfiguriert haben, die IP-Adressen bereits reserviert wurden.
- 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 Ihr Eingehender Cloud Service Mesh-Traffic befindet sich. Geben Sie
istio-system
an, wenn Sie Cloud Service Mesh mit seiner Standardkonfiguration installiert.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. 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
. Knative serving ist nur Sie eine Domain/
und nicht einem bestimmten Basispfad zuordnen. 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
. Knative serving ist nur Sie eine Domain/
und nicht einem bestimmten Basispfad zuordnen. 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
Jetzt, da Ihre benutzerdefinierte Domain Knative serving zugeordnet ist, müssen Sie DNS-Einträge bei Ihrem Domain-Registrator 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
. Knative serving ist nur Sie eine Domain/
und nicht einem bestimmten Basispfad zuordnen. 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
. Knative serving ist nur Sie eine Domain/
und nicht einem bestimmten Basispfad zuordnen. 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
Jetzt, da Ihre benutzerdefinierte Domain Knative serving zugeordnet ist, müssen Sie DNS-Einträge bei Ihrem Domain-Registrator 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 Ihre DNS-Einträge bei Ihrem Domainregistrator aktualisieren. Der Einfachheit halber Knative serving generiert und zeigt die DNS-Einträge an, die Sie eingeben müssen. Sie müssen diese Einträge hinzufügen, die auf den Knative serving-Dienst verweisen: an Ihren Domain-Registrar, 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 mit den Domainzuordnungen für Knative serving 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 Ihrer Domain den Abschnitt mit den Hosteinträgen und Fügen Sie dann die einzelnen Ressourceneinträge hinzu, die Sie bei der Zuordnung erhalten haben. an Ihren Knative serving-Dienst senden.
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 die Methode
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 eine Domain bei Cloud Domains aus dem Knative serving-Konsole:
Rufen Sie die Seite mit den Domainzuordnungen für Knative serving auf:
Klicken Sie auf Domain registrieren.
Folgen Sie der Anleitung Domain registrieren, um die Registrierung abzuschließen.
Führen Sie die weiter oben auf dieser Seite beschriebenen Schritte aus, Ordnen Sie Ihre Domain Knative serving zu und dann DNS-Einträge bei Ihrem Domainregistrator hinzufügen.
Fehlerbehebung
Informationen zu häufigen Problemen finden Sie unter Fehlerbehebung bei benutzerdefinierten Domains und verwalteten TLS.