Testdomains verwenden

Erfahren Sie, wie Sie zu Testzwecken auf die Knative Serving-Dienste in Ihrem Cluster zugreifen, bevor Sie eine benutzerdefinierte Domain zuordnen.

Standardmäßig sind die Dienste, die Sie in Ihren Knative Serving-Clustern bereitstellen, auf die Basisdomain nip.io festgelegt. Wenn Sie den empfohlenen Namen für das Ingress-Gateway verwenden, können Sie Ihre Dienste daher sofort testen und Anfragen ohne zusätzliche Konfiguration senden. Beispiel: http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io.

Beachten Sie, dass es Probleme mit der Zuverlässigkeit von Anfragen geben kann, wenn Sie DNS-Platzhalter verwenden, einschließlich der kostenlosen nip.io-Domain, bei der es sich um einen kostenlosen DNS-Platzhalterdienst handelt. Im Gegensatz dazu kann das Einrichten und Verwenden einer benutzerdefinierten Domain für Tests eine höhere Zuverlässigkeit bieten.

Optional können Sie auch über die externe IP-Adresse auf Ihre Dienste zugreifen.

Test-Domain nip.io verwenden

Für den Zugriff auf einen Dienst mit der Standardbasisdomain nip.io können Sie die URL in der Google Cloud Console ermitteln oder die URL manuell erstellen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Knative Serving auf.

    Knative Serving aufrufen

  2. Klicken Sie in der Liste auf den Dienst, für den Sie die URL abrufen möchten.

  3. Oben auf der Seite wird die URL angezeigt.

    Beispiel: http://my-service.default.kuberun.11.111.11.111.nip.io

    Dabei ist my-service der Name des Knative Serving-Dienstes, default der Namespace und 11.111.11.111 die IP-Adresse des externen Load Balancers.

Manuell

Um die URL für Ihren Dienst manuell zu erstellen, verwenden Sie den Namen des Dienstes, den Namespace, in dem dieser Dienst ausgeführt wird, und die IP-Adresse des Load-Balancers:

http://SERVICE.NAMESPACE.kuberun.EXTERNAL_IP.nip.io

Ersetzen Sie:

  • SERVICE_NAME durch den Namen des Dienstes.
  • NAMESPACE durch den Namespace, in dem Sie den Dienst bereitgestellt haben. Standardmäßig werden Dienste im Namespace default bereitgestellt.
  • Ersetzen Sie EXTERNAL_IP durch die externe IP-Adresse des Load-Balancers.

Wenn Sie beispielsweise einen Dienst namens hello im Namespace default haben und Ihre externe IP-Adresse 12.345.67.890 ist, könnte die URL so aussehen:

http://hello.default.kuberun.12.345.67.890.nip.io

Externe IP-Adresse verwenden

Optional können Sie die externe IP-Adresse des Load-Balancers verwenden, um über cURL-Befehle auf Ihre Dienste zuzugreifen, oder durch manuelles Konfigurieren eines alternativen DNS-Platzhalterdienstes.

Hinweis

Externe IP-Adresse abrufen

Wenn Sie den GKE Enterprise-Cluster erstellt haben, erstellt der Istio-Ingress-Controller einen Google Cloud-Netzwerk-Load-Balancer mit einer öffentlich verfügbaren IP-Adresse.

Um den Zugriff auf Ihren Dienst mit cURL oder einem DNS-Dienst zu konfigurieren, müssen Sie zuerst die externe IP-Adresse des Load-Balancer-Dienstes abrufen:

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

Nachdem Sie die externe IP-Adresse des Load-Balancers abgerufen haben, können Sie sie in cURL-Befehlen oder mit einem DNS-Platzhalterdienst verwenden, um auf Knative Serving-Dienste zuzugreifen.

cURL verwenden

Sie können cURL mit der Standardbasisdomain nip.io verwenden, um Anfragen an Ihren Dienst zu senden.

Sie geben die externe IP-Adresse des Load-Balancers sowie die Namen Ihres Dienstes und Namespace im cURL-Befehl an:

curl --header 'Host: SERVICE_NAME.NAMESPACE.kuberun.EXTERNAL_IP.nip.io' EXTERNAL_IP

Ersetzen Sie:

  • SERVICE_NAME durch den Namen Ihres Knative Service-Dienstes.
  • NAMESPACE durch den Namespace, in dem der Dienst ausgeführt wird.
  • Ersetzen Sie EXTERNAL_IP durch die externe IP-Adresse des Load-Balancers.

Beispiel:

curl --header 'Host: my-service.default.kuberun.12.345.67.890.nip.io' http://12.345.67.890

Andere DNS-Platzhalter-Dienste verwenden

Standardmäßig verwenden Ihre Knative-Dienste den DNS-Platzhalterdienst nip.io. Sie können jedoch auch andere Dienste wie sslip.io nutzen. Zum Konfigurieren anderer DNS-Platzhalterdienste benötigen Sie zuerst die externe IP-Adresse Ihres Load-Balancers und verwenden dann diese IP-Adresse zum Konfigurieren des DNS-Platzhalterdienstes.

Clusterdomain konfigurieren

Knative Serving definiert mit der ConfigMap config-domain die Basisdomain, die alle Ihre bereitgestellten Knative Serving-Dienste verwenden. Sie können diese ConfigMap über die Google Cloud Console oder mit kubectl-Befehlen aktualisieren.

Console

So ändern Sie die Standardbasisdomain in der Google Cloud Console von nip.io in einen DNS-Platzhalter-Dienst:

  1. Rufen Sie in der Google Cloud Console die Seite Domainzuordnungen für Knative Serving auf:

    Zu "Domainzuordnungen"

  2. Wählen Sie Zuordnung hinzufügen > Standarddomain für Cluster hinzufügen aus.

  3. Klicken Sie auf das Kästchen neben "Diese Domainzuordnung auf alle in diesem Cluster bereitgestellten Knative Serving-Dienste anwenden".

  4. Wählen Sie Ihren Cluster aus dem Drop-down-Menü aus.

  5. Geben Sie im Feld Domain die Platzhalter-DNS-Website ein, die Sie verwenden möchten. Beispiel: sslip.io

kubectl

Verwenden Sie den folgenden Befehl, um die Standardbasisdomain von nip.io in eine der DNS-Platzhalter-Websites zu ändern:

kubectl patch configmap config-domain --namespace knative-serving --patch \
  '{"data": {"kuberun.EXTERNAL_IP.nip.io": null, "DNS_SERVICE": ""}}'

Ersetzen

  • EXTERNAL_IP durch die externe IP-Adresse des Load-Balancers.
  • DNS_SERVICE durch die von Ihnen verwendete Platzhalter-DNS-Website. Beispiel: sslip.io

Ihr Dienst ist ab sofort unter http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.{DNS_SERVICE} verfügbar.