Cloud Run for Anthos einrichten

In dieser Anleitung erfahren Sie, wie Sie einen GKE-Cluster (Google Kubernetes Engine) einrichten und Cloud Run for Anthos aktivieren. Sie können entweder die Google Cloud Console oder die Google Cloud CLI 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.

Hinweise

  1. Cloud Run for Anthos ist ein Add-on für Google Kubernetes Engine. Eine kostenlose Testversion ist bis zum 30. September 2021 verfügbar.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

Befehlszeilenumgebung einrichten

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

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

  1. Installieren und initialisieren Sie das Google Cloud CLI.

  2. Legen Sie als Standardprojekteinstellung für die gcloud CLI 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. Beispiel:

    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. Aktualisieren Sie die installierten gcloud CLI-Komponenten:

    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
  • 4 Knoten mit 4 vCPUs
  • Standard-Namespace: default

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

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=e2-standard-4 \
    --num-nodes=4 \
    --cluster-version=GKE-VERSION \
    --enable-stackdriver-kubernetes

    Cluster-Autoscaling ist nicht standardmäßig aktiviert, wobei Cloud Run for Anthos die Anzahl der Instanzen im Cluster automatisch basierend auf der verfügbaren Kapazität 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:

Sie können entweder die gcloud CLI oder die Google 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 Google 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. Klicken Sie auf Cloud Run for Anthos aktivieren.

  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

    Ersetzen Sie Folgendes:

    • 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 CLI konfigurieren

Nachdem Sie den Cluster erstellt haben, können Sie Standardwerte festlegen, die vom Google Cloud CLI verwendet werden sollen. 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
  • Namespace
  • Plattform

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 run/platform gke
    gcloud config set run/cluster CLUSTER
    gcloud config set run/cluster_location ZONE
    gcloud container clusters get-credentials CLUSTER

    Ersetzen Sie:

    • CLUSTER durch den Namen des Clusters.
    • ZONE durch den Standort des Clusters.
  2. Standardmäßig wird Ihr Cluster mit einem Namespace namens default erstellt. Weitere Informationen zu Namespaces und warum Sie möglicherweise einen anderen Namespace als default erstellen und verwenden möchten, finden Sie unter Namespace.

    Führen Sie folgenden Befehl aus, um einen neuen Namespace zu erstellen:

    kubectl create namespace NAMESPACE

    Ersetzen Sie NAMESPACE durch den Namen des Namespace, den Sie erstellen möchten.

  3. Wenn Sie im vorherigen Schritt einen neuen Namespace erstellt haben, können Sie diesen Namespace als Standard-Namespace festlegen, der immer dann verwendet wird, wenn Sie das Google Cloud CLI aufrufen. Andernfalls wird der Namespace default verwendet. Führen Sie den folgenden Befehl aus, um den neuen Namespace festzulegen:

    gcloud config set run/namespace NAMESPACE

    Ersetzen Sie NAMESPACE durch den Namen des Namespace, den die gcloud CLI standardmäßig verwenden soll.

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 Cloud Run for Anthos-Dienste in einem Google Kubernetes Engine-Cluster verwalten und bereitstellen, der sich außerhalb Ihres aktuellen Projekts befindet. Weitere Informationen zur GKE-Mehrmandantenfähigkeit finden Sie unter Cluster-Mehrmandantenfähigkeit.

Informationen zur Konfiguration der Mandantenfähigkeit für Cloud Run for Anthos finden Sie unter Projektübergreifende Mandantenfähigkeit.

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-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 Google Cloud CLI-Versionen ab 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 run deploy sample \
    --image gcr.io/knative-samples/helloworld \
    --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:

    Hello World!
    
  7. Verlassen Sie die SSH-Sitzung:

    exit
    

Separate Istio-Installation verwenden

Die folgende Anleitung zeigt, wie Sie Anthos Service Mesh, das Add-on für 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 dazu verwenden, eine Istio-Sidecar-Einschleusung in dem Namespace zu aktivieren, in dem Ihre Dienste ausgeführt werden.

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.

Wichtig: Wenn Sie die AuthorizationPolicy von Istio konfigurieren und verwenden, müssen Sie eine bekannte Sicherheitslücke mit einer Pfadtyp-Übereinstimmung für die Zugriffssteuerung adressieren. Weitere Informationen zum Verhindern der Auswirkungen einer Sicherheitslücke finden Sie unter Best Practices für die Sicherheit.

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 Google 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