Testdomains verwenden

Hier erfahren Sie, wie Sie zu Testzwecken auf die Knative-Bereitstellungsdienste in Ihrem Cluster zugreifen, bevor Sie eine benutzerdefinierte Domain zuordnen.

Standardmäßig werden die Dienste, die Sie in Ihren Knative-Bereitstellungsclustern bereitstellen, auf die Basisdomain nip.io festgelegt. Wenn Sie daher den empfohlenen Namen für das Ingress-Gateway verwenden, können Sie Ihre Dienste 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

Wenn Sie mit der Standard-Basisdomain nip.io auf einen Dienst zugreifen möchten, 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 Bereitstellung auf.

    Zur Knative-Bereitstellung

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

Hinweise

Externe IP-Adresse abrufen

Beim Erstellen des GKE Enterprise-Clusters 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 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.

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 Ihre Knative-Bereitstellungsdienste 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-Bereitstellungsdienstes.
  • 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-Bereitstellungsdienste 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

Bei der Bereitstellung von Knative wird mit der ConfigMap config-domain die Basisdomain definiert, die von allen bereitgestellten Knative-Bereitstellungsdiensten verwendet wird. 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 die Bereitstellung 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-Bereitstellungsdienste 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 Sie

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