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
- Cloud Run for Anthos ist ein Add-on für Google Kubernetes Engine. Eine kostenlose Testversion ist bis zum 30. September 2021 verfügbar.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
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:
Installieren und initialisieren Sie das Google Cloud CLI.
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.
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.
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
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:
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-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 Anzahl der Instanzen im Cluster automatisch basierend auf der verfügbaren Kapazität 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:
- 4 Knoten mit 4 vCPUs Wenn Sie den Maschinentyp Ihres Clusters ändern müssen, lesen Sie die Informationen unter Arbeitslasten zu anderen Maschinentypen migrieren.
- Umfang:
https://www.googleapis.com/auth/logging.write
https://www.googleapis.com/auth/monitoring.write
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:
Rufen Sie in der Google 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.
Klicken Sie auf Cloud Run for Anthos aktivieren.
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
Ersetzen Sie Folgendes:
- 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 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:
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.
Standardmäßig wird Ihr Cluster mit einem Namespace namens
default
erstellt. Weitere Informationen zu Namespaces und warum Sie möglicherweise einen anderen Namespace alsdefault
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.
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:
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 run deploy sample \ --image gcr.io/knative-samples/helloworld \ --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:
Hello World!
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 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.
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:
Ö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 Google 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