Cloud Endpoints OpenAPI für Knative Serving mit ESPv2 einrichten
Auf dieser Seite wird beschrieben, wie Sie Cloud Endpoints für Knative Serving einrichten. Endpoints verwendet Extensible Service Proxy V2 (ESPv2) als API Gateway. Zur Bereitstellung der API-Verwaltung für Knative Serving stellen Sie den vordefinierten ESPv2-Container für Knative Serving bereit, der in einem GKE-Cluster ausgeführt wird.
So eingerichtet überwacht ESPv2 alle Anfragen an Ihre Dienste und führt vor dem Aufrufen des Dienstes die erforderlichen Prüfungen (z. B. Authentifizierung) durch. Wenn der Dienst antwortet, sammelt und meldet der ESPv2 Telemetriedaten.
Eine Übersicht über Cloud Endpoints finden Sie in den Abschnitten Über Cloud Endpoints und Architekturübersicht zu Cloud Endpoints.
Aufgabenliste
Verwenden Sie beim Durcharbeiten der Anleitung die folgende Aufgabenliste. Alle Aufgaben müssen ausgeführt werden, damit diese Anleitung abgeschlossen werden kann.
Erstellen Sie ein Google Cloud Projekt. Wenn Sie Knative Serving nicht selbst bereitgestellt haben, stellen Sie einen Beispieldienst bereit. Siehe Vorbereitung.
Erstellen Sie einen GKE-Cluster mit aktiviertem Knative Serving.
Erstellen Sie ein OpenAPI-Dokument, das Ihre Endpoints API beschreibt, und konfigurieren Sie die Routen zu Ihrem Knative-Serving-Dienst. Siehe Endpoints konfigurieren.
Stellen Sie das OpenAPI-Dokument bereit, um einen verwalteten Dienst zu erstellen. Siehe Endpoints-Konfiguration bereitstellen.
Erstellen Sie ein neues ESPv2-Docker-Image mit Ihrer Endpoints-Dienstkonfiguration. Siehe Neues ESPv2-Image erstellen.
Stellen Sie das neue ESPv2-Image für Knative Serving bereit. Siehe ESPv2-Image für Cloud Run bereitstellen.
Erstellen Sie eine Domainzuordnung zum ESPv2 Knative Serving-Dienst.
Testen Sie Ihre Konfiguration durch das Senden einer Anfrage an die API.
Überwachen Sie die Aktivitäten der Dienste. Siehe API-Aktivitäten verfolgen.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Notieren Sie die Projekt-ID für die nächsten Schritte. Nachstehend wird die Projekt-ID als ESPv2_PROJECT_ID bezeichnet.
- Laden Sie das Google Cloud SDK herunter und installieren Sie es.
- Installieren Sie curl, wenn Sie eine Anfrage an den bereitgestellten Beispieldienst senden möchten.
gcloud-Befehlszeile einrichten
So richten Sie die gcloud CLI für Knative Serving für Anthos ein:
Prüfen Sie, ob das Google Cloud SDK die Berechtigung für den Zugriff auf Ihre Daten und Dienste hat:
Sign in (Anmelden).
gcloud auth login
Es wird ein neuer Browsertab geöffnet. Wählen Sie dort ein Konto aus, das für das Google Cloud-Projekt, das Sie zum Bereitstellen von ESPv2 für Knative Serving erstellt haben, die Rolle Bearbeiter oder Inhaber hat.
Aktualisieren Sie die installierten
gcloud-Komponenten:gcloud components update
Legen Sie als Plattform
gkeund als Standardprojekteinstellung fürgclouddie soeben erstellte fest:gcloud config set run/platform gke
gcloud config set project ESPv2_PROJECT_IDErsetzen Sie ESPv2_PROJECT_ID durch die Projekt-ID des von Ihnen erstellten Projekts.
Legen Sie die Zone für den neuen Cluster fest. Sie können jede Zone verwenden, in der GKE unterstützt wird. Beispiel:
gcloud config set compute/zone ZONE
Ersetzen Sie ZONE durch Ihre Zone. Verwenden Sie zum Beispiel
us-central1-a. Sie können jede von GKE unterstützte Zone verwenden.Aktivieren Sie die folgenden APIs für das Projekt. Diese sind zum Erstellen eines Clusters sowie zum Erstellen und Veröffentlichen eines Containers in Artifact Registry erforderlich:
gcloud services enable container.googleapis.com artifactregistry.googleapis.com cloudbuild.googleapis.com
GKE-Cluster mit aktiviertem Knative Serving erstellen
So erstellen Sie einen Cluster und aktivieren ihn für Knative Serving in Google Cloud:
Erstellen Sie mit dem folgenden Befehl einen neuen Cluster:
gcloud container clusters create CLUSTER_NAME \ --addons=HttpLoadBalancing,CloudRun \ --machine-type=n1-standard-4 \ --num-nodes=3 \ --enable-stackdriver-kubernetes
Ersetzen Sie CLUSTER_NAME durch den gewünschten Clusternamen.
Diese Anleitung ermöglicht zwar nicht das Cluster-Autoscaling für die Anpassung der Clustergröße an den Bedarf, Knative Serving auf Google Cloud skaliert die Instanzen innerhalb des Clusters jedoch automatisch.
Warten Sie, bis die Erstellung des Clusters abgeschlossen ist. Beim Erstellen sollten ähnliche Meldungen wie im folgenden Beispiel angezeigt werden:
Creating cluster CLUSTER_NAME...done. Created [https://container.googleapis.com/v1/projects/ESPv2_PROJECT_ID/zones/ZONE/clusters/CLUSTER_NAME].
Die Ausgabe zeigt auch die Clusterversion in der Spalte
NODE_VERSIONder Ausgabe. Beispiel:1.15.11-gke.1oder1.14.10-gke.27Notieren Sie sich die Clusterversion, da sie später in diesem Dokument benötigt wird.Legen Sie die
gcloud-Standardeinstellungen so fest, dass Ihr neuer Cluster und der neue Clusterstandort verwendet werden, damit Sie diese nicht über die gcloud CLI angeben müssen:gcloud config set run/cluster CLUSTER_NAME
gcloud config set run/cluster_location ZONEVerwenden Sie den folgenden Befehl, um Details zum neuen Cluster aufzurufen:
gcloud container clusters describe CLUSTER_NAME
Verwenden Sie den folgenden Befehl, um Anmeldedaten für Ihren Cluster abzurufen:
gcloud container clusters get-credentials CLUSTER_NAME
Beispielcontainer für Knative Serving bereitstellen
So stellen Sie den Knative Serving-Beispielcontainer namens „hello“ für den soeben erstellten Cluster bereit:
Klicken Sie auf Dienst erstellen.
Wählen Sie Knative Serving als Entwicklungsplattform aus.
Wählen Sie im Drop-down-Menü mit den verfügbaren Clustern den gerade erstellten Cluster aus.
Verwenden Sie den Namen hello als Dienstnamen. Sie können auch einen anderen Namen verwenden, dieser muss dann aber später ebenfalls verwendet werden. In dieser Anleitung wird davon ausgegangen, dass Sie hello verwenden.
Wählen Sie unter Verbindung die Option Intern aus, damit der Dienst nicht extern zugänglich ist.
Klicken Sie auf Weiter, um mit der zweiten Seite des Diensterstellungsformulars fortzufahren.
Geben Sie
gcr.io/cloudrun/helloals Container-Image-URL an.Klicken Sie auf Erstellen, um das Image in Knative Serving bereitzustellen. Warten Sie, bis die Bereitstellung abgeschlossen ist.
Wenn Sie fertig sind, wird der Bildschirm Überarbeitungen angezeigt. Die URL des bereitgestellten Dienstes lautet:
http://hello.default.svc.cluster.localWenn Sie einen internen Dienst erstellen, erstellt GKE einen DNS-Namen, der nur für Anfragen aufgelöst werden kann, die aus dem Cluster selbst stammen, nicht für externe Anfragen. Sie können nicht extern vom Cluster aus auf diesen Link zugreifen. Weitere Informationen finden Sie unter Cloud Run-Dienste.
Richten Sie einen Tunnel von Ihrem Desktop zum Cluster ein, um zu prüfen, ob Ihr Dienst mit curl ordnungsgemäß funktioniert. Klicken Sie auf das Symbol
rechts neben der URL auf dem Bildschirm Überarbeitungen, um diese Anleitung aufzurufen:
Ein Steuerfeld wird geöffnet, in dem die beiden Befehle angezeigt werden, mit denen Sie auf den internen Dienst zugreifen. Sie müssen diese Befehle in zwei separaten Terminalfenstern ausführen, da mit dem ersten Befehl die Portweiterleitung eingerichtet wird, die vom zweiten Befehl verwendet wird.
Wenn Sie den curl-Befehl ausführen, sollten Sie die Ausgabe Ihres Dienstes im folgenden Format sehen:
<!doctype html> <html lang=en> <head> <meta charset=utf-8> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Congratulations | Cloud Run</title> ...