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
Rufen Sie in der Google Cloud Console die Seite Knative Serving auf.
Klicken Sie in der Liste auf den Dienst, für den Sie die URL abrufen möchten.
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
Prüfen Sie, ob die Google Cloud CLI und die kubectl-Befehlszeilentools installiert und auf dem neuesten Stand sind:
Sie benötigen mindestens die IAM-Rolle (Identity and Access Management) Kubernetes Engine-Entwickler oder entsprechende Berechtigungen.
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:- Ö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 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:
Rufen Sie in der Google Cloud Console die Seite Domainzuordnungen für Knative Serving auf:
Wählen Sie Zuordnung hinzufügen > Standarddomain für Cluster hinzufügen aus.
Klicken Sie auf das Kästchen neben "Diese Domainzuordnung auf alle in diesem Cluster bereitgestellten Knative Serving-Dienste anwenden".
Wählen Sie Ihren Cluster aus dem Drop-down-Menü aus.
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.