Testdomains verwenden

Hier erfahren Sie, wie Sie zu Testzwecken auf die Knative serving-Dienste in Ihrem Cluster zugreifen zu analysieren, bevor Sie sich für Benutzerdefinierte Domain zuordnen

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

Beachten Sie, dass möglicherweise Probleme mit der Zuverlässigkeit von Anfragen wenn Sie DNS-Platzhalter verwenden, einschließlich der Domain nip.io, die ist ein kostenloser DNS-Platzhalterdienst. 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 standardmäßigen nip.io-Basisdomain können Sie nach der URL in der Google Cloud Console oder manuell erstellen.

Console

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

    Zu Knative serving

  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. ist der Namespace und 11.111.11.111 ist die IP-Adresse Ihres externen Load-Balancer.

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

Beim Erstellen des GKE Enterprise-Clusters führt der Istio-Ingress-Controller erstellt einen Google Cloud-Netzwerk-Load-Balancer mit einem ö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 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.

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

cURL verwenden

Sie können cURL verwenden. Befehle mit der Standard-Basisdomain nip.io, an die Anfragen gesendet werden sollen Ihren Dienst.

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 serving-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 serving-Dienste das DNS nip.io. den Platzhalterdienst. 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 verwendet die ConfigMap config-domain, um die Basis zu definieren Domain, für die alle bereitgestellten Knative serving-Dienste verwendet werden. Sie können aktualisieren Sie diese ConfigMap über die Google Cloud Console oder mit kubectl-Befehlen.

Console

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

  1. Gehen Sie im Menü Domainzuordnungen von Knative serving auf Google Cloud Console:

    Zu "Domainzuordnungen"

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

  3. Klicken Sie das Kästchen neben „Diese Domainzuordnung auf alle anwenden“ an. Knative serving-Dienste, die in diesem Cluster bereitgestellt sind.“

  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.