Cloud Run for Anthos in Google Cloud einrichten

In dieser Anleitung erfahren Sie, wie Sie einen Google Kubernetes Engine-Cluster einrichten und Cloud Run for Anthos in Google Cloud aktivieren. Sie können entweder die Cloud Console oder das gcloud-Befehlszeilentool verwenden, um Cloud Run for Anthos auf Standard- und privaten GKE-Clustern zu aktivieren.

Durch Aktivieren von Cloud Run for Anthos werden im Cluster Istio und Knative Serving installiert, um eine Verbindung für Ihre zustandslosen Arbeitslasten herzustellen und diese zu verwalten. Weitere Informationen finden Sie unter Architekturübersicht zu Cloud Run for Anthos.

Hinweis

  1. Cloud Run for Anthos ist ein Add-on für Google Kubernetes Engine. Eine kostenlose Testversion ist bis zum 31. März 2021 verfügbar.
  2. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  3. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  4. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

Befehlszeilenumgebung einrichten

Sie können zwar auch die Cloud Console oder das gcloud-Tool zum Verwalten von Cloud Run for Anthos verwenden, aber einige Aufgaben erfordern das gcloud-Tool.

So richten Sie die gcloud- und kubectl-Befehlszeilentools für Cloud Run for Anthos ein:

  1. Installieren und initialisieren Sie das Cloud SDK.

  2. Legen Sie als Standardprojekteinstellung für das gcloud-Tool das gerade erstellte Projekt oder ein vorhandenes Projekt fest, das Sie verwenden möchten:

    gcloud config set project PROJECT-ID

    Ersetzen Sie PROJECT-ID durch die Projekt-ID des von Ihnen erstellten Projekts.

  3. Legen Sie für zone die gewünschte Zone für Ihren Cluster fest. Sie können jede Zone verwenden, in der GKE unterstützt wird. Beispiele:

    gcloud config set compute/zone ZONE

    Ersetzen Sie ZONE durch Ihre Zone.

  4. Aktivieren Sie die folgenden APIs für das Projekt. Diese sind zum Erstellen eines Clusters, zum Erstellen eines Containers und zum Veröffentlichen eines Containers in der Google Kubernetes Engine-Registry erforderlich:

    gcloud services enable container.googleapis.com containerregistry.googleapis.com cloudbuild.googleapis.com
  5. Installieren Sie das kubectl-Befehlszeilentool:

    gcloud components install kubectl
  6. Installierte gcloud-Toolkomponenten aktualisieren:

    gcloud components update

Cloud Run for Anthos aktivieren

Cloud Run for Anthos wird in einem GKE-Cluster ausgeführt. Sie können Cloud Run for Anthos auf einem vorhandenen Cluster aktivieren oder einen neuen Cluster mit aktiviertem Cloud Run for Anthos erstellen.

Wählen Sie aus, wie Sie Cloud Run for Anthos einrichten möchten:

Cloud Run for Anthos kann auch auf privaten GKE-Clustern aktiviert werden. Informationen zum Erstellen eines privaten GKE-Clusters finden Sie unter Private Cluster erstellen in der GKE-Dokumentation.

Neuen GKE-Cluster mit aktiviertem Cloud Run for Anthos erstellen

In dieser Anleitung wird ein Cluster mit den folgenden Konfigurationen erstellt:

  • Cloud Run for Anthos aktiviert
  • Kubernetes-Version: verfügbare GKE-Versionen
  • 3 Knoten mit 2 vCPUs
  • Standard-Namespace: default

Dies sind die empfohlenen Clusterkonfigurationen für das Testen von Cloud Run for Anthos. Für Produktionsarbeitslasten wird empfohlen, einen GKE-Cluster entsprechend Ihren spezifischen Anforderungen zu konfigurieren. Weitere Informationen zu den verschiedenen Arten von GKE-Clustern und den zugehörigen Konfigurationsoptionen finden Sie in der GKE-Dokumentation unter Clustertypen.

Console

So erstellen Sie einen Cluster mit aktiviertem Cloud Run for Anthos:

  1. Rufen Sie in der Cloud Console die Seite „Cloud Run for Anthos” auf:

    Zu Cloud Run for Anthos

  2. Klicken Sie auf Dienst erstellen.

  3. Klicken Sie auf das Drop-down-Menü mit den verfügbaren Clustern, und klicken Sie dann auf Neuen Cluster erstellen.

  4. Gehen Sie im Bereich Neuen Cloud Run for Anthos-Standard-Cluster erstellen so vor:

    • Wählen Sie eine Zone für den Cluster aus. Wählen Sie einen Standort in Ihrer Nähe aus. Zum Beispiel wählen Sie us-west1-a aus, wenn Sie sich an der Westküste der USA befinden.

    • Wählen Sie einen Namen für den neuen Cluster aus.

    • Klicken Sie auf Schnell erstellen, um einen Cluster mit den Mindestanforderungen für Cloud Run for Anthos zu erstellen, bei dem Cloud Run for Anthos aktiviert wurde.

  5. Wählen Sie einen Namen für den neuen Cloud Run for Anthos-Dienst aus und klicken Sie auf Weiter.

  6. Gehen Sie im Abschnitt Erste Überarbeitung des Dienstes konfigurieren so vor:

    • Wählen Sie Überarbeitung aus dem vorhandenen Container-Image bereitstellen.

    • Geben Sie im Feld Container-Image-URL eine URL für Ihr eigenes Container-Image ein oder klicken Sie auf Auswählen, um aus den verfügbaren Container Registry-Containern und einer Auswahl an Democontainern auszuwählen.

    • Klicken Sie auf Next (Weiter).

  7. Wählen Sie im Abschnitt Verbindung aus, ob Sie einen internen oder externen Dienst erstellen möchten. Auf interne Dienste kann nur über das Clusternetzwerk zugegriffen werden, während auf externe Dienste über das öffentliche Internet zugegriffen werden kann. Du kannst diese Einstellung später ändern.

  8. Klicken Sie auf Erstellen. Es dauert einige Minuten, bis der Cluster und der Dienst erstellt sind.

Befehlszeile

So erstellen Sie einen Cluster und aktivieren Cloud Run for Anthos:

  1. Erstellen Sie einen Cluster.

    gcloud container clusters create CLUSTER-NAME \
    --zone=ZONE \
    --addons=HttpLoadBalancing,CloudRun \
    --machine-type=n1-standard-2 \
    --num-nodes=3 \
    --cluster-version=GKE-VERSION \
    --enable-stackdriver-kubernetes

    Cluster-Autoscaling ist nicht standardmäßig aktiviert, wobei Cloud Run for Anthos die Instanzen innerhalb des Clusters automatisch skaliert.

  2. Warten Sie, bis die Erstellung des Clusters abgeschlossen ist.

Cloud Run for Anthos auf einem vorhandenen Cluster aktivieren

Ihr GKE-Cluster muss die folgende Mindestkonfiguration haben:

  • 3 Knoten mit 2 vCPUs
  • Bereiche:
    • https://www.googleapis.com/auth/logging.write
    • https://www.googleapis.com/auth/monitoring.write

Sie können entweder das gcloud-Tool oder die Cloud Console verwenden, um Cloud Run for Anthos auf einem Cluster zu aktivieren:

Console

So aktivieren Sie Cloud Run for Anthos auf einem vorhandenen Cluster:

  1. Rufen Sie in der Cloud Console die Seite „Google Kubernetes Engine” auf:

    Zur Seite „Google Kubernetes Engine”

  2. Klicken Sie auf den Namen des Clusters, für den Sie Cloud Run for Anthos aktivieren möchten.

  3. Klicken Sie auf Bearbeiten.

  4. Wählen Sie Cloud Run für Anthos aktivieren aus.

  5. Klicken Sie auf Speichern. Wenn die Aktualisierung abgeschlossen ist, wird Cloud Run for Anthos vom Cluster unterstützt.

Befehlszeile

So aktivieren Sie Cloud Run for Anthos auf einem vorhandenen Cluster:

  1. Aktivieren Sie den Cluster mit folgendem Befehl:

    gcloud container clusters update \
    CLUSTER_NAME \
    --update-addons=CloudRun=ENABLED,HttpLoadBalancing=ENABLED \
    --zone=ZONE

    Dabei gilt:

    • CLUSTER_NAME ist der Name des Clusters.
    • ZONE ist die Zone des Clusters. Beispiel: us-central1-a.
  2. Warten Sie, bis die Aktivierung abgeschlossen ist. Bei Erfolg gibt die Befehlszeile eine Meldung ähnlich der folgenden zurück:

    Updating your-cluster-name...done.

Standardeinstellungen für das gcloud-Tool konfigurieren

Nachdem Sie den Cluster erstellt haben, können Sie Standardwerte für das zu verwendende gcloud-Befehlszeilentool festlegen. Wenn Sie die Befehlszeile verwenden, werden nachfolgende Eingabeaufforderungen für alle Standardeinstellungen entfernt, die Sie festlegen, z. B. Clustername oder Standort.

Sie können Standardeinstellungen für Folgendes konfigurieren:

  • Clustername
  • Standort des Clusters
  • Anmeldedaten

So legen Sie Standardeinstellungen fest:

  1. Legen Sie den Standardcluster und den Standort des Clusters fest und rufen Sie die Anmeldedaten ab. Führen Sie dazu folgende Befehle aus:

    gcloud config set kuberun/cluster CLUSTER
    gcloud config set kuberun/cluster_location ZONE
    gcloud container clusters get-credentials CLUSTER

    Ersetzen Sie;

    • CLUSTER durch den Namen des Clusters.
    • ZONE durch den Standort des Clusters.

Messwerte in einem Cluster mit Workload Identity aktivieren

Wenn Sie Workload Identity aktivieren, werden bestimmte Messwerte wie die Anzahl der Überarbeitungsanfragen oder die Latenz von Anfragen nicht von Cloud Run for Anthos an die Operations-Suite von Google Cloud gemeldet. Messwerte für CPU und Arbeitsspeicher werden jedoch weiterhin gemeldet.

Wenn Sie alle Messwerte aktivieren möchten, müssen Sie manuell Berechtigungen zum Schreiben von Messwerten in Cloud Monitoring festlegen. Dazu erteilen Sie dem Google-Dienstkonto (Google Service Account, GSA), das Ihrem Cloud Run for Anthos-Dienst zugeordnet ist, die Rolle „Monitoring-Messwert-Autor“.

Weisen Sie dem GSA Ihres Dienstes die Rollenberechtigungen eines „Monitoring-Messwert-Autors” zu:

gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:GSA_NAME@GSA_PROJECT.iam.gserviceaccount.com \
--role=roles/monitoring.metricWriter

Ersetzen Sie:

  • PROJECT_ID durch die Projekt-ID für ein Clusterprojekt, in dem Ihr KSA gehostet wird.
  • GSA_PROJECT durch die Projekt-ID für ein GSA, das sich nicht im Cluster befindet. Sie können einen beliebigen GSA in Ihrer Organisation verwenden.

Weitere Informationen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

Weitere Informationen zum Einrichten von Diensten, die von Google Cloud APIs wie Compute Engine APIs, Storage und Database APIs oder Machine Learning APIs innerhalb Ihres GKE-Clusters bereitgestellt werden, finden Sie unter Workload Identity verwenden.

In einem mehrmandantenfähigen Setup entwickeln

In mehrmandantenfähigen Anwendungsfällen müssen Sie die Dienste von Cloud Run for Anthos in Google Cloud in einem Google Kubernetes Engine-Cluster verwalten und bereitstellen, der sich außerhalb Ihres aktuellen Projekts befindet. In diesem Abschnitt erfahren Sie, wie Sie Cloud Run for Anthos in Google Cloud-Diensten in einem mehrmandantenfähigen Cluster-Setup entwickeln.

So verwalten Sie die Dienste von Cloud Run for Anthos in Google Cloud in einem Google Kubernetes Engine-Cluster außerhalb Ihres aktuellen Projekts und stellen sie dort bereit:

  1. Stellen Sie sicher, dass Sie über Lesezugriff auf die Google Cloud-Projekt-ID des Clusters verfügen, auf dem Sie die Bereitstellung ausführen.

  2. Aktualisieren Sie Ihre lokale kubeconfig-Datei mit den Anmeldedaten für den GKE-Zielcluster:

    gcloud container clusters get-credentials NAME \
    --region=REGION \
    --project=PROJECT-ID
    • REGION ist die Compute Engine-Region Ihres Zielclusters.
    • PROJECT-ID ist das Projekt, auf das Sie Lesezugriff haben.

    Weitere Informationen finden Sie in der Befehlsreferenzdokumentation zu gcloud container clusters get-credentials.

Sie können nun Befehle auf dem GKE-Zielcluster ausführen, der in Ihrer kubeconfig-Datei angegeben ist.

Mit dem folgenden Befehl wird beispielsweise ein Dienst von Cloud Run for Anthos in Google Cloud mit einem angegebenen Container-Image für den GKE-Cluster bereitgestellt, dessen Anmeldedaten in der kubeconfig-Datei gespeichert sind:

gcloud kuberun core services create SERVICE-NAME --image IMAGE-NAME

Privates internes Netzwerk einrichten

Die Bereitstellung von Diensten in einem internen Netzwerk ist nützlich für Unternehmen, die ihren Mitarbeitern interne Anwendungen zur Verfügung stellen, und für Dienste, die von Clients verwendet werden, die außerhalb des Cloud Run for Anthos in Google Cloud-Clusters ausgeführt werden. Mit dieser Konfiguration können andere Ressourcen in Ihrem Netzwerk über eine private, interne IP-Adresse (RFC 1918), die nicht öffentlich zugänglich ist, mit dem Dienst kommunizieren.

Zum Erstellen Ihres internen Netzwerks konfigurieren Sie das Istio-Ingress-Gateway so, dass internes TCP/UDP-Load-Balancing anstelle eines öffentlichen, externen Netzwerk-Load-Balancers verwendet wird. Anschließend können Sie Ihre Cloud Run for Anthos-Dienste an einer internen IP-Adresse in Ihrem VPC-Netzwerk bereitstellen.

Vorbereitung

  • Sie benötigen Berechtigungen des Typs admin für Ihren Cluster.
  • Es werden nur Cloud SDK-Versionen ab Version 310.0 unterstützt. Weitere Informationen finden Sie unter gcloud einrichten.

So richten Sie den internen Load-Balancer ein:

  1. Aktualisieren Sie das Istio-Ingress-Gateway so, dass internes TCP/UDP-Load-Balancing verwendet wird. Erstellen Sie dazu einen neuen Cluster oder aktualisieren Sie einen vorhandenen:

    • Erstellen Sie einen neuen Cluster mit einem internen Load-Balancer:

      gcloud container clusters create CLUSTER_NAME \
      --addons=HttpLoadBalancing,CloudRun \
      --machine-type=n1-standard-2  \
      --num-nodes=3  \
      --enable-stackdriver-kubernetes \
      --cloud-run-config=load-balancer-type=INTERNAL
    • Aktualisieren Sie einen vorhandenen Cluster so, dass ein interner Load-Balancer verwendet wird:

      gcloud container clusters update CLUSTER_NAME
      --update-addons=CloudRun=ENABLED \
      --cloud-run-config=load-balancer-type=INTERNAL

    Es kann einige Minuten dauern, bis die Änderung wirksam wird.

  2. Führen Sie den folgenden Befehl aus, um Updates für Ihren GKE-Cluster zu beobachten:

    kubectl -n gke-system get svc istio-ingress --watch
    
    1. Beachten Sie die Annotation „cloud.google.com/load-balancer-type: Internal“.
    2. Warten Sie, bis der Wert von IP im Ingress-Load-Balancer zu einer privaten IP-Adresse wechselt.
    3. Drücken Sie Ctrl+C, um die Updates zu beenden, sobald im Feld IP eine private IP-Adresse angezeigt wird.

So prüfen Sie die interne Verbindung nach Ihren Änderungen:

  1. Stellen Sie einen Dienst mit dem Namen sample für Cloud Run for Anthos im Namespace default bereit:

    gcloud kuberun core services create sample \
    --image gcr.io/knative-samples/simple-api \
    --namespace default
    
  2. Erstellen Sie eine Compute Engine-VM in derselben Zone, in der sich der GKE-Cluster befindet:

    VM=cloudrun-gke-ilb-tutorial-vm
    
    gcloud compute instances create $VM
    
  3. Speichern Sie die private IP-Adresse des Istio-Ingress-Gateways in einer Umgebungsvariablen namens EXTERNAL_IP und einer Datei namens external-ip.txt:

    export EXTERNAL_IP=$(kubectl -n gke-system get svc istio-ingress \
        -o jsonpath='{.status.loadBalancer.ingress[0].ip}' | tee external-ip.txt)
    
  4. Kopieren Sie die Datei mit der IP-Adresse in die VM:

    gcloud compute scp external-ip.txt $VM:~
    
  5. Stellen Sie eine SSH-Verbindung zur VM her:

    gcloud compute ssh $VM
    
  6. Testen Sie in der SSH-Sitzung den Beispieldienst:

    curl -s -w'\n' -H Host:sample.default.example.com $(cat external-ip.txt)
    

    Die Ausgabe sieht so aus:

    OK
    
  7. Verlassen Sie die SSH-Sitzung:

    exit
    

Separate Istio-Installation verwenden

Die folgende Anleitung zeigt Ihnen, wie Sie Anthos Service Mesh, das Add-on Istio on GKE oder eine benutzerdefinierte Istio-Installation mit Cloud Run for Anthos verbinden, und zwar zusätzlich zu den bereits standardmäßig in Cloud Run for Anthos installierten Istio-Komponenten.

Die Istio-Komponenten, die in der Standardinstallation von Cloud Run for Anthos enthalten sind, unterstützen derzeit keine automatische Sidecar-Einfügung. Sie können jedoch eine zusätzliche Istio-Installation verwenden, um die Istio-Sidecar-Einfügung für den Namespace Ihres bereitgestellten Dienstes zu aktivieren.

Wenn Sie eine zusätzliche Istio-Installation verwenden möchten, müssen Sie prüfen, ob das Istio-Ingress-Gateway im Namespace istio-system den Namen istio-ingressgateway hat. Cloud Run for Anthos unterstützt und verwaltet externen Traffic von Istio-Ingress-Gateways, die hier installiert sind:

  • Im istio-system-Namespace mit der lokalen Clusterdomain istio-ingressgateway.istio-system.svc.cluster.local, die standardmäßig eingerichtet wird, wenn Sie eine zusätzliche Istio-Installation verwenden.
  • Der gke-system-Namespace mit der lokalen Cluster-Domain istio-ingress.gke-system.svc.cluster.local, die mit der standardmäßigen Cloud Run for Anthos-Installation eingerichtet ist.

So prüfen Sie das zusätzliche Istio-Ingress-Gateway, das Cloud Run for Anthos verwendet:

  1. Öffnen Sie die ConfigMap config-istio:

    kubectl get configmap config-istio --namespace knative-serving -oyaml
    
  2. Prüfen Sie, ob das zusätzliche Istio-Ingress-Gateway den Namen istio-ingressgateway hat und sich im Namespace istio-system befindet.

HTTPS und benutzerdefinierte Domains aktivieren

Wenn Sie HTTPS und benutzerdefinierte Domains verwenden möchten, die für den Cluster gelten, lesen Sie HTTPS- und automatische TLS-Zertifikate aktivieren und Benutzerdefinierte Domains zuordnen.

Cloud Run for Anthos deaktivieren

So deaktivieren Sie Cloud Run for Anthos in Ihrem Cluster:

  1. Rufen Sie in der Cloud Console die Seite „Google Kubernetes Engine” auf:

    Zur Seite „Google Kubernetes Engine”

  2. Klicken Sie auf den Cluster, für den Sie Cloud Run for Anthos deaktivieren möchten.

  3. Klicken Sie auf Bearbeiten.

  4. Wählen Sie im Drop-down-Menü Cloud Run for Anthos die Option Deaktivieren aus.

  5. Klicken Sie auf Speichern.

Nächste Schritte