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
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. 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
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
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:- Ö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 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:
Gehen Sie im Menü Domainzuordnungen von Knative serving auf Google Cloud Console:
Wählen Sie Zuordnung hinzufügen > Standarddomain für Cluster hinzufügen aus.
Klicken Sie das Kästchen neben „Diese Domainzuordnung auf alle anwenden“ an. Knative serving-Dienste, die in diesem Cluster bereitgestellt sind.“
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.