Container-Images für Cloud Run-Dienste bereitstellen

Auf dieser Seite wird beschrieben, wie Sie Container-Images für einen neuen Cloud Run-Dienst oder eine neue Überarbeitung eines vorhandenen Cloud Run-Dienstes bereitstellen.

Das Container-Image wird von Cloud Run importiert, wenn es bereitgestellt wird. Cloud Run behält diese Kopie des Container-Images so lange bei, wie sie von einer Serving-Revision verwendet wird. Container-Images werden nicht aus dem Container-Repository abgerufen, wenn eine neue Cloud Run-Instanz gestartet wird.

Eine Beispielanleitung für die Bereitstellung eines neuen Dienstes finden Sie unter Kurzanleitung für einen Beispielcontainer bereitstellen.

Hinweis

Wenn Sie einer Organisationsrichtlinie zur Domaineinschränkung nicht eingeschränkter Aufrufe für Ihr Projekt unterliegen, müssen Sie auf Ihren bereitgestellten Dienst zugreifen, wie unter Private Dienste testen beschrieben.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Bereitstellen von Cloud Run-Diensten benötigen:

Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihr Cloud Run-Dienst mitGoogle Cloud -APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.

Unterstützte Container Registries und Images

Sie können direkt in Artifact Registry gespeicherte Container-Images oder öffentliche Images aus Docker Hub oder der GitHub Container Registry verwenden. Google empfiehlt die Verwendung von Artifact Registry. Öffentliche Images aus GitHub Container Registry und Docker Hub-Images werden bis zu einer Stunde lang im Cache gespeichert.

Sie können Container-Images aus anderen öffentlichen oder privaten Registries (z. B. JFrog Artifactory oder Nexus) oder private Images aus der GitHub Container Registry verwenden. Dazu richten Sie ein Remote-Repository von Artifact Registry ein.

Sie sollten Docker Hub nur für die Bereitstellung gängiger Container-Images wie Offizielle Docker-Images oder Docker gesponserte OSS-Images in Betracht ziehen. Für eine höhere Verfügbarkeit empfiehlt Google, diese Docker Hub- oder GitHub Container Registry-Images über ein Artifact Registry-Remote-Repository bereitzustellen.

Cloud Run unterstützt keine Container-Image-Ebenen, die größer als 9,9 GB sind, wenn die Bereitstellung über Docker Hub oder ein Artifact Registry-Remote-Repository mit einer externen Registry erfolgt.

Neuen Dienst bereitstellen

Sie können ein Container-Image mit einem Tag (z. B. us-docker.pkg.dev/my-project/container/my-image:latest) oder mit einem genauen Digest (z. B. us-docker.pkg.dev/my-project/container/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.

Klicken Sie auf den Tab, um eine Anleitung zum gewünschten Tool zu erhalten.

Console

So stellen Sie ein Container-Image bereit:

  1. Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf:

    Zu Cloud Run

  2. Klicken Sie auf Container bereitstellen, um das Formular Dienst erstellen aufzurufen.

  3. Wählen Sie im Formular die Bereitstellungsoption aus.

    1. Wenn Sie einen Container manuell bereitstellen möchten, wählen Sie Eine Überarbeitung aus dem vorhandenen Container-Image bereitstellen aus und geben Sie das Container-Image an.

    2. Wenn Sie die kontinuierliche Bereitstellung automatisieren möchten, wählen Sie Kontinuierlich neue Überarbeitungen aus einem Quell-Repository bereitstellen aus und folgen Sie der Anleitung für kontinuierliche Bereitstellungen.

  4. Geben Sie einen Dienstnamen ein. Dienstnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt nur einmal vorkommen. Ein Dienstname kann später nicht mehr geändert werden und ist öffentlich sichtbar.

  5. Verwenden Sie im Feld Region Wählen Sie die Region aus,in der sich Ihr Dienst befinden soll.

    Die Regionsauswahl gibt die Preisstufe, die Verfügbarkeit von Domainzuordnungen an und hebt Regionen mit den niedrigsten CO2-Auswirkungen hervor.

  6. Konfigurieren Sie unter Authentifizierung Folgendes:

    • Wenn Sie eine öffentliche API oder Website erstellen, wählen Sie Öffentlichen Zugriff zulassen aus. Durch Anklicken des Kästchens wird der Sonderkennzeichnung allUser die Rolle "IAM-Invoker" zugewiesen. Sie können die Einstellung mit IAM bearbeiten, nachdem Sie den Dienst erstellt haben.
    • Wenn Sie einen durch Authentifizierung geschützten sicheren Dienst wünschen, wählen Sie Authentifizierung erforderlich aus.
  7. Richten Sie die Abrechnung nach Bedarf ein.

  8. Wenn Sie unter Dienstskalierung das standardmäßige Autoscaling von Cloud Run verwenden, können Sie optional die Mindestanzahl von Instanzen angeben. Wenn Sie die manuelle Skalierung verwenden, geben Sie die Anzahl der Instanzen für den Dienst an.

  9. Legen Sie die Ingress-Einstellungen wie gewünscht im Formular fest.

  10. Klicken Sie auf Container, Netzwerk, Sicherheit, um weitere optionale Einstellungen auf den entsprechenden Tabs festzulegen:

  11. Wenn Sie die Konfiguration Ihres Dienstes abgeschlossen haben, klicken Sie auf Erstellen, um das Image in Cloud Run bereitzustellen. Warten Sie, bis das Deployment abgeschlossen ist.

  12. Klicken Sie auf den angezeigten URL-Link, um den nur einmal vorkommenden und stabilen Endpunkt des bereitgestellten Dienstes zu öffnen.

gcloud

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. So stellen Sie ein Container-Image bereit:

    1. Führen Sie dazu diesen Befehl aus:

      gcloud run deploy SERVICE --image IMAGE_URL

      Ersetzen Sie Folgendes:

      • SERVICE: Der Name des Dienstes, für den Sie die Bereitstellung ausführen möchten. Dienstnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt nur einmal vorkommen. Wenn der Dienst noch nicht vorhanden ist, erstellt dieser Befehl den Dienst während der Bereitstellung. Sie können diesen Parameter auch weglassen, werden dann jedoch nach dem Dienstnamen gefragt.
      • IMAGE_URL: ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat das Format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. Wenn Sie das Flag --image nicht angeben, wird mit dem Bereitstellungsbefehl versucht, aus dem Quellcode bereitzustellen.

      Wenn Sie eine öffentliche API oder Website erstellen, können Sie mit dem Flag --allow-unauthenticated öffentlichen Zugriff auf Ihren Dienst zulassen. Dadurch wird allUsers die IAM-Rolle Cloud Run Invoker zugewiesen. Sie können auch --no-allow-unauthenticated angeben, um den öffentlichen Zugriff zu verbieten. Wenn Sie keines dieser Flags angeben, werden Sie aufgefordert, zu bestätigen, ob nicht authentifizierte Aufrufe zugelassen werden sollen, wenn der Befehl deploy ausgeführt wird.

    2. Warten Sie, bis die Bereitstellung abgeschlossen ist. Nach erfolgreichem Abschluss wird eine Bestätigung zusammen mit der URL des bereitgestellten Dienstes angezeigt.

    Wenn Sie an einem anderen Standort bereitstellen möchten, als Sie in den gcloud-Attributen run/region angegeben haben, verwenden Sie Folgendes:

    gcloud run deploy SERVICE --region REGION

YAML

Sie können Ihre Dienstspezifikation in einer YAML-Datei speichern und dann mit der gcloud CLI bereitstellen.

  1. Erstellen Sie eine neue Datei vom Typ service.yaml mit folgendem Inhalt:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        spec:
          containers:
          - image: IMAGE

    Ersetzen Sie Folgendes:

    • SERVICE: Der Name Ihres Cloud Run-Dienstes. Dienstnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt nur einmal vorkommen.
    • IMAGE: die URL Ihres Container-Images

    Sie können auch weitere Konfigurationen angeben, z. B. Umgebungsvariablen oder Speicherlimits.

  2. Stellen Sie den neuen Dienst mit dem folgenden Befehl bereit:

    gcloud run services replace service.yaml

    Der Befehl gcloud run services replace verwendet standardmäßig die Datei service.yaml, sofern sie vorhanden ist.

  3. Optional: Veröffentlichen Sie Ihren Dienst, wenn Sie den nicht authentifizierten Zugriff auf den Dienst zulassen möchten.

Terraform

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Fügen Sie einer google_cloud_run_v2_service-Ressource in Ihrer Terraform-Konfiguration Folgendes hinzu:
  provider "google" {
    project = "PROJECT-ID"
  }

  resource "google_cloud_run_v2_service" "default" {
    name     = "SERVICE"
    location = "REGION"
    client