Auf dieser Seite wird beschrieben, wie Sie neue Dienste und neue Überarbeitungen in Cloud Run for Anthos bereitstellen.
Vorbereitung
Wenn Sie die Google Cloud CLI verwenden möchten, muss die Google Cloud CLI installiert und konfiguriert sein.
Für das Deployment erforderliche Berechtigungen
Sie benötigen Berechtigungen zum Erstellen, Aktualisieren und Löschen für die apiGroup serving.knative.dev
und die Art Service
. Darüber hinaus benötigen Sie EINE der folgenden Rollen:
- Inhaber
- Bearbeiter
- GKE-Administrator
- GKE-Entwickler
Bereitstellbare Images
Es gibt keine Größenbeschränkung für Container-Images, die Sie bereitstellen können.
Sie können Container aus jeder Container-Registry wie Docker Hub verwenden. Informationen zum Bereitstellen privater Images aus anderen Registries als Container Registry oder Artifact Registry finden Sie unter Private Container-Images aus anderen Container Registries bereitstellen.
Neuen Dienst bereitstellen
Sie können ein Container-Image mit einem Tag (z. B. gcr.io/my-project/my-image:latest
) oder mit einem genauen Digest (z. B. gcr.io/my-project/my-image@sha256:41f34ab970ee...
) angeben.
Wenn Sie einen Dienst zum ersten Mal bereitstellen, wird die erste Überarbeitung erstellt. Überarbeitungen können nach der Erstellung nicht mehr geändert werden. Wenn Sie den Dienst aus einem Container-Image-Tag bereitstellen, wird er in einen Digest aufgelöst. Die Überarbeitung bedient anschließend immer diesen speziellen Digest.
Sie können einen Container über die Google Cloud Console, die Google Cloud CLI oder eine YAML-Konfigurationsdatei bereitstellen.
Klicken Sie auf den Tab, um eine Anleitung zum gewünschten Tool zu erhalten.
Standardkonfiguration des gcloud
-Standorts
Wenn Sie zuvor einen Standort in der default
-Konfiguration der Google Cloud CLI konfiguriert haben, verwenden Ihre gcloud
-Befehle diese Werte standardmäßig, u. a.:
compute/region
compute/zone
run/cluster
run/cluster_location
run/platform
run/region
Führen Sie den folgenden gcloud
config-Befehl aus, um die Einstellungen für die Konfiguration default
aufzurufen:
gcloud config configurations describe default
Console
So stellen Sie ein Container-Image bereit:
Rufen Sie Cloud Run for Anthos in der Google Cloud Console auf:
Klicken Sie auf Dienst erstellen, um die entsprechende Seite aufzurufen.
Füllen Sie das Formular aus:
Wählen Sie die Cloud Run for Anthos-Plattform aus, auf der Sie Folgendes bereitstellen:
- Cloud Run for Anthos für die Bereitstellung in GKE- oder Anthos-Clustern auf VMware-Cluster mit aktiviertem Cloud Run for Anthos.
Wählen Sie im Drop-down-Menü einen der verfügbaren GKE-Cluster für Ihren Dienst aus.
Geben Sie den gewünschten Dienstnamen ein. Dienstnamen dürfen pro Region und Projekt oder pro Cluster nur einmal vorkommen. Ein Dienstname kann später nicht mehr geändert werden.
Unter Verbindung:
- Wählen Sie Intern aus, wenn Sie den Zugriff auf andere Cloud Run for Anthos-Dienste oder Dienste im Cluster beschränken möchten, die Istio verwenden.
- Wählen Sie Extern aus, um externen Zugriff auf Ihren Dienst zuzulassen.
Sie können die Verbindungsoption jederzeit ändern. Eine Beschreibung hierzu finden Sie unter Verbindungseinstellungen für Cloud Run in GKE-Dienst ändern.
Klicken Sie auf Weiter, um mit der zweiten Seite des Diensterstellungsformulars fortzufahren:
Füllen Sie das Formular aus:
Geben Sie im Textfeld Container-Image-URL die URL eines Images ein. Beispiel:
gcr.io/myproject/my-image:latest
Zur Verwendung von Artifact Registry mit Ihren privaten Container-Images müssen Sie den Image-Digest nutzen. Wenn Sie das Image-Tag Ihrer privaten Container-Images verwenden möchten, müssen Sie ein
imagePullSecret
erstellen und verwenden, bis das bekannte Problem behoben ist.Optional können Sie auf Erweiterte Einstellungen anzeigen und die nachfolgenden Tabs klicken, um diese Einstellungen vorzunehmen:
Klicken Sie auf Erstellen, um das Image in Cloud Run for Anthos bereitzustellen. Warten Sie dann, bis die Bereitstellung abgeschlossen ist.
Sie haben jetzt einen Dienst in einem für Cloud Run for Anthos aktivierten Cluster bereitgestellt.
Befehlszeile
So stellen Sie ein Container-Image bereit:
Führen Sie den Befehl
gcloud run deploy
aus:gcloud run deploy SERVICE --image IMAGE_URL
Ersetzen Sie SERVICE durch den Namen des Dienstes, für den Sie die Bereitstellung durchführen möchten. Wenn der angegebene Dienst nicht existiert, wird ein neuer Dienst erstellt.
Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
gcr.io/myproject/my-image:latest
.Zur Verwendung von Artifact Registry mit Ihren privaten Container-Images müssen Sie den Image-Digest nutzen.
Wenn Sie das Image-Tag Ihrer privaten Container-Images verwenden möchten, müssen Sie ein
imagePullSecret
erstellen und verwenden, bis das bekannte Problem behoben ist.
Zusätzliche Bereitstellungsoptionen:
Für die Bereitstellung in einem anderen Namespace als dem Standard müssen Sie diesen Namespace mit dem Parameter
--namespace
angeben.Für Bereitstellungen an einem anderen Standort als der Standardkonfiguration, müssen Sie das Argument
name
undlocation
des Clusters mit den Parametern--cluster
und--cluster-location
angeben:gcloud run deploy SERVICE --cluster CLUSTER-NAME --cluster-location CLUSTER-LOCATION
Mit dem Flag
--connectivity
können Sie Verbindungsoptionen für den internen und externen Zugriff festlegen. Eine Beschreibung hierzu finden Sie unter Verbindungseinstellungen für Dienste ändern.Für Cloud Run for Anthos auf VMware müssen Sie den Parameter
--kubeconfig
einfügen und Ihre Konfigurationsdatei angeben:gcloud run deploy SERVICE --image IMAGE_URL --kubeconfig KUBECONFIG-FILE
Warten Sie, bis die Bereitstellung abgeschlossen ist. Nach erfolgreichem Abschluss wird eine Bestätigung zusammen mit der URL des bereitgestellten Dienstes angezeigt.
YAML
Sie können Ihre Dienstspezifikation in einer YAML
-Datei speichern und dann über die Google Cloud CLI bereitstellen.
Erstellen Sie eine neue
service.yaml
-Datei mit folgendem Inhalt:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE
Ersetzen
- SERVICE durch den Namen Ihres Cloud Run for Anthos-Dienstes.
- IMAGE durch die URL Ihres Container-Images. Zur Verwendung von Artifact Registry mit Ihren privaten Container-Images müssen Sie den Image-Digest nutzen.
Wenn Sie das Image-Tag Ihrer privaten Container-Images verwenden möchten, müssen Sie ein
imagePullSecret
erstellen und verwenden, bis das bekannte Problem behoben ist.
Sie können auch weitere Konfigurationen angeben, z. B. Umgebungsvariablen oder Speicherlimits.
Stellen Sie den neuen Dienst mit dem folgenden Befehl bereit:
gcloud beta run services replace service.yaml
Cloud Code
Lesen Sie für die Bereitstellung mit Cloud Code die Anleitungen zu IntelliJ und Visual Studio Code.
Neue Überarbeitung eines vorhandenen Dienstes bereitstellen
Sie können eine neue Überarbeitung über die Google Cloud Console, die gcloud
-Befehlszeile oder eine YAML-Konfigurationsdatei bereitstellen.
Beachten Sie, dass beim Ändern von Konfigurationseinstellungen eine neue Überarbeitung erstellt wird, auch wenn das Container-Image nicht geändert wird. Überarbeitungen können nach der Erstellung nicht mehr geändert werden.
Klicken Sie auf den Tab, um eine Anleitung zum gewünschten Tool zu erhalten.
Console
So stellen Sie eine neue Überarbeitung eines vorhandenen Dienstes bereit:
Rufen Sie Cloud Run for Anthos in der Google Cloud Console auf:
Klicken Sie in der Übersicht auf den zu aktualisierenden Dienst, um dessen Details anzuzeigen.
Klicken Sie auf NEUE ÜBERARBEITUNG BEARBEITEN UND BEREITSTELLEN. Dadurch wird das Formular für die Bereitstellung der Überarbeitung angezeigt:
Geben Sie bei Bedarf die URL des neu bereitzustellenden Container-Images an.
Legen Sie optional Folgendes fest:
Um den gesamten Traffic an die neue Überarbeitung zu senden, aktivieren Sie das Kästchen Diese Überarbeitung sofort bereitstellen. Wenn Sie eine neue Überarbeitung nach und nach einführen möchten, entfernen Sie das Häkchen aus diesem Kästchen. Dadurch erhalten Sie eine Bereitstellung, bei der kein Traffic an die neue Überarbeitung gesendet wird. Folgen Sie der Anleitung für schrittweise Einführungen nach der Bereitstellung.
Klicken Sie auf BEREITSTELLEN und warten Sie, bis die Bereitstellung abgeschlossen ist.
Befehlszeile
So stellen Sie ein Container-Image bereit:
Führen Sie den Befehl
gcloud run services update
aus:gcloud run services update SERVICE --image IMAGE_URL
- Für jede Überarbeitung wird automatisch ein Überarbeitungssuffix zugewiesen. Wenn Sie ein eigenes Überarbeitungssuffix angeben möchten, fügen Sie den Parameter --revision-suffix hinzu.
Ersetzen Sie SERVICE durch den Namen des Dienstes, für den Sie die Bereitstellung durchführen möchten. Wenn der angegebene Dienst nicht existiert, wird ein neuer Dienst erstellt.
Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
gcr.io/myproject/my-image:latest
.Zur Verwendung von Artifact Registry mit Ihren privaten Container-Images müssen Sie den Image-Digest nutzen.
Wenn Sie das Image-Tag Ihrer privaten Container-Images verwenden möchten, müssen Sie ein
imagePullSecret
erstellen und verwenden, bis das bekannte Problem behoben ist.
Zusätzliche Bereitstellungsoptionen:
Für die Bereitstellung in einem anderen Namespace als dem Standard müssen Sie diesen Namespace mit dem Parameter
--namespace
angeben.Für Bereitstellungen an einem anderen Standort als der Standardkonfiguration, müssen Sie das Argument
name
undlocation
des Clusters mit den Parametern--cluster
und--cluster-location
angeben:gcloud run deploy SERVICE --cluster CLUSTER-NAME --cluster-location CLUSTER-LOCATION
Mit dem Flag
--connectivity
können Sie Verbindungsoptionen für den internen und externen Zugriff festlegen. Eine Beschreibung hierzu finden Sie unter Verbindungseinstellungen für Dienste ändern.Für Cloud Run for Anthos auf VMware müssen Sie den Parameter
--kubeconfig
einfügen und Ihre Konfigurationsdatei angeben:gcloud run deploy SERVICE --image IMAGE_URL --kubeconfig KUBECONFIG-FILE
Warten Sie, bis die Bereitstellung abgeschlossen ist. Nach erfolgreichem Abschluss wird eine Bestätigung zusammen mit der URL des bereitgestellten Dienstes angezeigt.
YAML
Sie können die Konfiguration eines vorhandenen Dienstes in eine YAML-Datei herunterladen – mit dem gcloud run services describe
-Befehl mithilfe des Flags --format=export
.
Sie können diese YAML-Datei dann ändern und diese Änderungen mit dem Befehl gcloud beta run services replace
bereitstellen.
Sie müssen sicherstellen, dass Sie nur die angegebenen Attribute ändern.
Laden Sie die Konfiguration des Dienstes in eine Datei mit dem Namen
service.yaml
im lokalen Arbeitsbereich herunter:gcloud run services describe SERVICE --format export > service.yaml
SERVICE durch den Namen Ihres Cloud Run for Anthos-Dienstes.
Aktualisieren Sie in Ihrer lokalen Datei die Revisionseinstellungen in jedem untergeordneten Attribut von
spec.template
.Stellen Sie die neue Überarbeitung bereit:
gcloud beta run services replace service.yaml
Cloud Code
Weitere Informationen zum Bereitstellen einer neuen Version eines vorhandenen Dienstes mit Cloud Code finden Sie in den Anleitungen zu IntelliJ und Visual Studio Code.
Images aus anderen Google Cloud-Projekten bereitstellen
Sie können Container-Images aus anderen Google Cloud-Projekten bereitstellen, wenn Sie die richtigen IAM-Berechtigungen festlegen:
Öffnen Sie in der Google Cloud Console das Projekt für den Cloud Run for Anthos-Dienst.
Führen Sie je nach verwendetem Dienst Folgendes aus:
Cloud Run for Anthos: Kopieren Sie die E-Mail-Adresse des Compute Engine-Standarddienstkontos. Sie hat das Suffix @developer.gserviceaccount.com.
Erstellen Sie mit Cloud Run for Anthos auf VMware ein Google Cloud-Dienstkonto und laden Sie die Anmeldedaten herunter. Fügen Sie diese Anmeldedaten als Standard-
imagePullSecrets
des Kubernetes-Dienstkontos hinzu.
Öffnen Sie das Projekt mit der gewünschten Container Registry.
Klicken Sie auf Hinzufügen, um ein neues Hauptkonto hinzuzufügen.
Fügen Sie in das Textfeld Neue Hauptkonten die zuvor kopierte E-Mail-Adresse des Dienstkontos ein.
Wählen Sie in der Drop-down-Liste Rolle auswählen die Rolle Storage -> Storage-Objekt-Betrachter aus.
Stellen Sie das Container-Image für das Projekt bereit, das den Cloud Run for Anthos-Dienst enthält.
Private Container-Images aus anderen Container Registries bereitstellen
In diesem Abschnitt wird beschrieben, wie Sie die richtigen Berechtigungen zum Bereitstellen von Container-Images aus einer beliebigen privaten Registry in Cloud Run for Anthos einrichten. Eine private Container-Registry erfordert Anmeldedaten, um auf das Container-Image zuzugreifen. Beachten Sie, dass Sie diese Schritte nicht ausführen müssen, wenn Sie private Container-Images aus Container Registry oder Artifact Registry im selben Projekt wie Ihren Cluster bereitstellen.
Damit Sie ein privates Container-Image bereitstellen können, müssen Sie ein Kubernetes-Secret vom Typ imagePullSecret
erstellen und mit einem Dienstkonto verknüpfen:
Erstellen Sie ein
imagePullSecret
-Secret mit dem Namencontainer-registry
:kubectl create secret docker-registry container-registry \ --docker-server=DOCKER_REGISTRY_SERVER \ --docker-email=REGISTRY_EMAIL \ --docker-username=REGISTRY_USER \ --docker-password=REGISTRY_PASSWORD
- Ersetzen Sie DOCKER_REGISTRY_SERVER durch Ihren privaten Registry-FQDN (z. B. https://gcr.io/ für Container Registry oder https://hub.docker.com für DockerHub).
- Ersetzen Sie REGISTRY_EMAIL durch Ihre E-Mail-Adresse.
Ersetzen Sie REGISTRY_USER durch Ihren Container Registry-Nutzernamen.
Wenn Sie Container Registry oder Artifact Registry verwenden und langlebige Anmeldedaten speichern und abrufen möchten, anstatt kurzlebige Zugriffstokens zu übergeben, finden Sie weitere Informationen unter Authentifizierungsmethoden: JSON-Schlüsseldatei.
Ersetzen Sie REGISTRY_PASSWORD durch Ihr Container Registry-Passwort.
Öffnen Sie Ihr Standarddienstkonto:
kubectl edit serviceaccount default --namespace default
Jeder Namespace in Ihrem Kubernetes-Cluster hat ein Standarddienstkonto namens
default
. Dieses Standarddienstkonto wird verwendet, um Ihr Container-Image abzurufen, sofern Sie beim Bereitstellen des Cloud Run for Anthos-Dienstes nichts anderes angegeben haben.Fügen Sie das neu erstellte
imagePullSecret
-Secret Ihrem Standarddienstkonto hinzu:imagePullSecrets: - name: container-registry
Ihr Dienstkonto sollte nun so aussehen:
apiVersion: v1 kind: ServiceAccount metadata: name: default namespace: default ... secrets: - name: default-token-zd84v # The secret we just created: imagePullSecrets: - name: container-registry
Jetzt ist für alle neuen Pods, die im aktuellen default
-Namespace erstellt werden, das imagePullSecret
-Secret definiert.
Mit aktivierter automatischer Istio-Sidecar-Einfügung bereitstellen
Um Ihren Dienst im Namespace mit aktivierter automatischer Istio-Sidecar-Einfügung bereitzustellen, müssen Sie eine separate Istio-Installation verwenden.
Dienste in einem internen Netzwerk bereitstellen
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.
Weitere Informationen zum Bereitstellen von Diensten in einem internen Netzwerk finden Sie unter Privates internes Netzwerk einrichten.
Nächste Schritte
Nachdem Sie einen neuen Dienst bereitgestellt haben, können Sie Folgendes tun:
- Schrittweise Rollouts, Rollback für Überarbeitungen, Traffic-Migration
- Dienstlogs ansehen
- Leistung von Diensten überwachen
- Speicherlimits festlegen
- Umgebungsvariablen festlegen
- Nebenläufigkeit von Diensten ändern
- Dienste verwalten
- Dienstüberarbeitungen verwalten
Mithilfe von Cloud Build-Triggern können Sie die Builds und Bereitstellungen Ihrer Cloud Run for Anthos-Dienste automatisieren.