Benutzerdefinierte Domains zuordnen

Konfigurieren Sie benutzerdefinierte Domains für den Zugriff auf Ihre Knative-Bereitstellungsdienste. 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 werden die Dienste, die Sie in Ihren Knative-Bereitstellungsclustern 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

Hinweise

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:

  1. Optional: Reservieren Sie die IP-Adresse Ihres Load-Balancers.
  2. Ordnen Sie Ihre Dienste oder den Cluster der benutzerdefinierten Domain in der Bereitstellung mit Knative zu.
  3. Aktualisieren Sie die DNS-Einträge in Ihrem Domain-Registrator.

IP-Adresse des Load-Balancers reservieren

Wenn Knative-Bereitstellung installiert ist, erstellt der Istio-Ingress-Controller einen Load-Balancer mit einer verfügbaren IP-Adresse.

Abhängig von Ihrem GKE-Cluster müssen Sie die IP-Adresse des Load-Balancers möglicherweise für den Istio-Ingress-Controller reservieren:

Außerhalb von Google Cloud
In der Dokumentation der Umgebung, in der Sie Ihren GKE-Cluster ausführen, können Sie nachlesen, wie IP-Adressen verwaltet werden und ob die IP-Adresse des Load-Balancers statisch ist. Weitere Informationen finden Sie auch auf den Konfigurationsseiten Ihres GKE-Clusters. Je nachdem, wie Sie das Load-Balancing für GKE on VMware 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:
  1. 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:
    1. Öffnen Sie in der Google Cloud Console die GKE-Seite:
      Zu GKE
    2. Klicken Sie auf Dienste und Ingress.
    3. 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.
    4. 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 nur 00.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 Anthos Service Mesh-Ingress befindet. Geben Sie istio-system an, wenn Sie Anthos 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.

  2. 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-Bereitstellungsdienst zuzuordnen. Jeder einzelne Dienst kann mehreren Domains zugeordnet werden.

Console

  1. Rufen Sie in der Google Cloud Console die Seite der Domainzuordnungen auf:

    Zu "Domainzuordnungen"

    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.

  2. 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.

  3. Wählen Sie aus der Drop-down-Liste des Formulars Zuordnung hinzufügen den Dienst aus, dem Sie Ihre benutzerdefinierte Domain zuordnen möchten:

  4. Geben Sie den Namen der Domain ein. Beispiel: your-domain.com oder subdomain.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 von your-domain.com/users. Mit der Knative-Bereitstellung 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 Subdomain test.default.your-domain.com erstellen, wenn Sie einen Dienst unter test.default.your-domain.com haben.

  5. Klicken Sie auf Weiter.

  6. 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.

  7. Klicken Sie auf Fertig.

gcloud

  1. 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.comoder subdomain.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 von your-domain.com/users. Mit der Knative-Bereitstellung 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 Subdomain test.default.your-domain.com erstellen, wenn Sie einen Dienst unter test.default.your-domain.com haben.

Nachdem Ihre benutzerdefinierte Domain der Bereitstellung Knative 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

  1. Rufen Sie in der Google Cloud Console die Seite der Domainzuordnungen auf:

    Zu "Domainzuordnungen"

    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.

  2. 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.

  3. Klicken Sie auf das Kästchen, um die neue Domainzuordnung auf alle vorhandenen Dienste in Ihrem Cluster anzuwenden.

  4. Wählen Sie aus der Drop-down-Liste des Formulars Zuordnung hinzufügen den Cluster aus, dem Sie Ihre benutzerdefinierte Domain zuordnen möchten:

  5. Geben Sie den Namen der Domain ein. Beispiel: your-domain.com oder subdomain.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 von your-domain.com/users. Mit der Knative-Bereitstellung 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 Subdomain test.default.your-domain.com erstellen, wenn Sie einen Dienst unter test.default.your-domain.com haben.

  6. Klicken Sie auf Weiter.

  7. 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.

  8. Klicken Sie auf Fertig.

kubectl

  1. 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.comoder subdomain.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 von your-domain.com/users. Mit der Knative-Bereitstellung 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 Subdomain test.default.your-domain.com erstellen, wenn Sie einen Dienst unter test.default.your-domain.com haben.

Nachdem Ihre benutzerdefinierte Domain der Bereitstellung Knative 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 in der Knative-Bereitstellung einer benutzerdefinierten Domain zugeordnet haben, müssen Sie Ihre DNS-Einträge bei Ihrem Domainregistrator aktualisieren. Zur Vereinfachung werden bei der Bereitstellung von Knative die DNS-Einträge generiert und angezeigt, die Sie eingeben müssen. Sie müssen diese Einträge, die auf den Bereitstellungsdienst Knative bei Ihrem Domainregistrator verweisen, hinzufügen, damit die Zuordnung wirksam wird.

Wenn Sie Cloud DNS als DNS-Anbieter verwenden, finden Sie weitere Informationen unter Eintrag hinzufügen.

  1. Rufen Sie die DNS-Eintragsinformationen für die Domainzuordnung auf eine der folgenden Arten ab:

    Console

    1. Rufen Sie die Seite mit den Knative-Bereitstellungsdomainzuordnungen auf:

      Zu "Domainzuordnungen"

    2. 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 oder subdomain.your-domain.com.

    Sie benötigen alle Datensätze, die unter der Überschrift resourceRecords zurückgegeben werden.

  2. Melden Sie sich bei Ihrem Domain-Registrator in Ihrem Konto an und öffnen Sie dann die DNS-Konfigurationsseite.

  3. Suchen Sie auf der Konfigurationsseite Ihrer Domain den Abschnitt mit den Hosteinträgen und fügen Sie alle Ressourceneinträge hinzu, die Sie bei der Zuordnung Ihrer Domain zu Ihrem Knative-Bereitstellungsdienst erhalten haben.

  4. 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 oder CNAME.
    • Verwenden Sie den Namen www, um www.your-domain.com zuzuordnen.
    • Verwenden Sie den Namen @, um your-domain.com zuzuordnen.
    • Verwenden Sie den Platzhalter *, um *.your-domain.com zuzuordnen.
  5. 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. diese dig-Onlineversion, verwenden, um zu bestätigen, dass die DNS-Einträge erfolgreich aktualisiert wurden.

  6. 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:

  1. Rufen Sie in Ihrem Webbrowser diese Adresse auf:

    https://search.google.com/search-console/welcome

  2. Klicken Sie unter Attribute auf die Domain, für die Sie einen Nutzer oder ein Dienstkonto hinzufügen möchten.

  3. 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:

    Zur Seite "Dienstkonten"

Domain in der Knative-Bereitstellungskonsole bei Cloud Domains registrieren

So registrieren Sie eine Domain bei Cloud Domains über die Knative Serving-Konsole:

  1. Rufen Sie die Seite mit den Knative-Bereitstellungsdomainzuordnungen auf:

    Zu "Domainzuordnungen"

  2. Klicken Sie auf Domain registrieren.

  3. Folgen Sie der Anleitung Domain registrieren, um die Registrierung abzuschließen.

  4. Führen Sie die Schritte weiter oben auf dieser Seite aus, um Ihre Domain der Knative-Bereitstellung zuzuordnen und DNS-Einträge bei Ihrem Domainregistrator hinzuzufügen.

Fehlerbehebung

Informationen zu häufigen Problemen finden Sie unter Fehlerbehebung bei benutzerdefinierten Domains und verwalteten TLS.