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
- 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.
-
Melden Sie sich bei Ihrem Google-Konto an.
Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
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:
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.
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.
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
Installieren Sie das
kubectl
-Befehlszeilentool:gcloud components install kubectl
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:
Rufen Sie in der Cloud Console die Seite „Cloud Run for Anthos” auf:
Klicken Sie auf Dienst erstellen.
Klicken Sie auf das Drop-down-Menü mit den verfügbaren Clustern, und klicken Sie dann auf Neuen Cluster erstellen.
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.
Wählen Sie einen Namen für den neuen Cloud Run for Anthos-Dienst aus und klicken Sie auf Weiter.
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).
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.
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:
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-NAME ist der gewünschte Name für Ihren Cluster.
ZONE ist die gewünschte Compute Engine-Zone für Ihren Cluster.
GKE-VERSION ist die gewünschte GKE-Version. Siehe verfügbare Versionen.
Cluster-Autoscaling ist nicht standardmäßig aktiviert, wobei Cloud Run for Anthos die Instanzen innerhalb des Clusters automatisch skaliert.
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:
Rufen Sie in der Cloud Console die Seite „Google Kubernetes Engine” auf:
Klicken Sie auf den Namen des Clusters, für den Sie Cloud Run for Anthos aktivieren möchten.
Klicken Sie auf Bearbeiten.
Wählen Sie Cloud Run für Anthos aktivieren aus.
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:
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
.
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:
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:
Stellen Sie sicher, dass Sie über Lesezugriff auf die Google Cloud-Projekt-ID des Clusters verfügen, auf dem Sie die Bereitstellung ausführen.
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:
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.
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
- Beachten Sie die Annotation „cloud.google.com/load-balancer-type: Internal“.
- Warten Sie, bis der Wert von
IP
im Ingress-Load-Balancer zu einer privaten IP-Adresse wechselt. - Drücken Sie
Ctrl+C
, um die Updates zu beenden, sobald im FeldIP
eine private IP-Adresse angezeigt wird.
So prüfen Sie die interne Verbindung nach Ihren Änderungen:
Stellen Sie einen Dienst mit dem Namen
sample
für Cloud Run for Anthos im Namespacedefault
bereit:gcloud kuberun core services create sample \ --image gcr.io/knative-samples/simple-api \ --namespace default
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
Speichern Sie die private IP-Adresse des Istio-Ingress-Gateways in einer Umgebungsvariablen namens
EXTERNAL_IP
und einer Datei namensexternal-ip.txt
:export EXTERNAL_IP=$(kubectl -n gke-system get svc istio-ingress \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}' | tee external-ip.txt)
Kopieren Sie die Datei mit der IP-Adresse in die VM:
gcloud compute scp external-ip.txt $VM:~
Stellen Sie eine SSH-Verbindung zur VM her:
gcloud compute ssh $VM
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
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 Clusterdomainistio-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-Domainistio-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:
Öffnen Sie die ConfigMap
config-istio
:kubectl get configmap config-istio --namespace knative-serving -oyaml
Prüfen Sie, ob das zusätzliche Istio-Ingress-Gateway den Namen
istio-ingressgateway
hat und sich im Namespaceistio-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:
Rufen Sie in der Cloud Console die Seite „Google Kubernetes Engine” auf:
Klicken Sie auf den Cluster, für den Sie Cloud Run for Anthos deaktivieren möchten.
Klicken Sie auf Bearbeiten.
Wählen Sie im Drop-down-Menü Cloud Run for Anthos die Option Deaktivieren aus.
Klicken Sie auf Speichern.
Nächste Schritte
- Architekturübersicht über Cloud Run for Anthos
- HTTPS- und automatische TLS-Zertifikate aktivieren
- Aus Container bereitstellen
- Container erstellen
- Fehlerbehebung