Ausgehender Direct VPC-Traffic mit einem VPC-Netzwerk

Sie können Ihren Cloud Run-Dienst oder -Job so aktivieren, dass Traffic an ein VPC-Netzwerk über ausgehenden Direct VPC-Traffic gesendet wird, ohne dass ein Connector für serverlosen VPC-Zugriff erforderlich ist.

Hinweise

  • Wenn Sie in Ihrem Projekt noch kein VPC-Netzwerk haben, erstellen Sie eins.

  • Wenn Sie eine freigegebene VPC verwenden, finden Sie weitere Informationen unter Verbindung zu einem freigegebenen VPC-Netzwerk herstellen.

  • Wenn Sie ein VPC-Subnetz verwenden, muss das Subnetz /24 oder größer sein.

  • Beachten Sie die folgenden Bedingungen, damit genügend IP-Adressen für die Verwendung in Cloud Run verfügbar sind:

    • Das Subnetz, in dem Sie Cloud Run-Dienste oder -Überarbeitungen bereitstellen möchten, muss mindestens einige hundert IP-Adressen haben.
    • Wenn im stabilen Zustand die Gesamtzahl der Cloud Run-Instanzen, die das Subnetz verwenden, 100 oder mehr beträgt, reservieren Sie genügend IP-Adressen für mindestens das Vierfache (4X) der Anzahl der Instanzen. Beachten Sie, dass Cloud Run seine IP-Adressen bis zu 20 Minuten lang beibehält, wenn eine Version herunterskaliert wird. Wenn Sie beispielsweise die Überarbeitungen so aktualisieren, dass revision 1 von 100 Instanzen auf null skaliert wird, während revision 2 von null auf 100 skaliert wird, behält Cloud Run die revision 1-IP-Adressen für bis zu 20 Minuten nach dem Herunterskalieren bei. Während des 20-Minuten-Fensters müssen Sie in diesem Fall mindestens 800 IP-Adressen ((100 + 100) * 4) reservieren.

Beschränkungen

Die folgenden Einschränkungen gelten sowohl für Cloud Run-Dienste als auch für -Jobs:

  • Cloud Run unterstützt einen Durchsatz von bis zu 1 Gbit/s pro einzelne Instanz. Das Überschreiten dieses Wertes führt zu einer Leistungsdrosselung.
  • Ein Cloud Run-Nutzungskontingent begrenzt die maximale Anzahl von Instanzen, die Sie für die Verwendung von ausgehendem Direct VPC-Traffic konfigurieren können. Die maximale Anzahl wird pro Cloud Run-Überarbeitung oder Jobausführung konfiguriert. Informationen zum Erhöhen der Standardlimits finden Sie unter Kontingente erhöhen. Sie können Ihr Kontingent in der Google Cloud Console prüfen.

  • Bei Cloud Run-Diensten und -Jobs kann es bei Wartungsarbeiten an der Netzwerkinfrastruktur zu Verbindungsunterbrechungen kommen. Wir empfehlen die Verwendung von Clientbibliotheken, bei denen gelegentlich Verbindungen zurückgesetzt werden können ohne dass es Probleme gibt.
Die folgenden Einschränkungen gelten nur für Cloud Run-Jobs und nicht für Dienste:
  • Ausgehender Direct VPC-Traffic für Cloud Run-Jobs ist nur in der Vorschau verfügbar.
  • Für eine ordnungsgemäße Jobausführung sollten Sie nur ausgehenden VPC-Traffic für Jobs verwenden, die nicht mehr als acht gleichzeitige Instanzen benötigen und mindestens 1.024 IP-Adressen reservieren.

Die folgenden Elemente werden vom ausgehendem Direct VPC-Traffic nicht unterstützt:

  • VPC-Flusslogs geben nicht den Namen des Cloud Run-Dienstes oder der Cloud Run-Überarbeitung an.
  • VPC-Flusslogs werden nicht von Nicht-VM-Ressourcen wie Cloud Run oder lokalen Maschinen gemeldet.
  • Logging von Firewallregeln
  • Paketspiegelung
  • Network Intelligence Center
  • IPv6-Traffic
  • Sicherer Web-Proxy
  • Verwendung von Netzwerktags in Firewallregeln für eingehenden Traffic, die auf die Zielressource angewendet werden.
  • Verwendung der Dienstidentität als Quelldienstkonto in Firewallregeln für eingehenden Traffic, die auf die Zielressource angewendet werden.
  • Firewallregeln können Resource Manager-Tags, die mit Cloud Run-Arbeitslasten verknüpft sind, nicht verwenden.
  • Bei Cloud Run-Jobs, die länger als eine Stunde ausgeführt werden, kann es zu Verbindungsunterbrechungen kommen. Diese können während Wartungsereignissen auftreten, bei denen der Job von einer Maschine zu einer anderen migriert wird. Der Container erhält 10 Sekunden vor dem Ereignis ein SIGTSTP-Signal, Nach dem Ereignis erhält er ein SIGCONT-Signal. Nachdem der Container das SIGCONT-Signal erhalten hat, wiederholen Sie die Verbindung.

Zuweisung von IP-Adressen

Sie müssen ein Netzwerk und ein Subnetz angeben, um Ihren Cloud Run-Dienst oder -Job in einem VPC-Netzwerk zu platzieren. Cloud Run weist IP-Adressen aus Ihrem Subnetz zu.

IP-Adressen sind sitzungsspezifisch. Erstellen Sie also keine Richtlinien, die auf einzelnen IP-Adressen basieren. Wenn Sie eine Richtlinie anhand von IP-Adressen erstellen müssen, z. B. in Firewallregeln, müssen Sie den IP-Adressbereich des gesamten Subnetzes verwenden.

Wenn Sie das von Ihrem Dienst oder Job verwendete Netzwerk oder Subnetz ändern möchten, stellen Sie eine neue Dienstüberarbeitung bereit oder führen Sie eine neue Jobaufgabe aus, die die neuen Netzwerk- und Subnetzwerte verwendet.

Hochskalieren

Damit bei einem Trafficanstieg schnell eine vertikale Skalierung möglich ist, weist Cloud Run IP-Adressen zu, bevor sie benötigt werden.

Es sind wahrscheinlich immer mehr IP-Adressen zugewiesen als die Anzahl der vorhandenen Instanzen. Achten Sie darauf, dass Ihr Subnetz mindestens einige hundert IP-Adressen hat, damit Cloud Run genügend IP-Adressen abrufen kann. Wenn die Gesamtzahl der Instanzen für alle Cloud Run-Dienste und -Jobs über 100 steigt, empfehlen wir mindestens das 4-Fache (4X) der Gesamtzahl. Wenn Cloud Run keine weiteren IP-Adressen zuweisen kann, kann es keine weiteren Dienstinstanzen oder Jobaufgaben starten, bis mehr IP-Adressen verfügbar sind. Wenn Ihr IP-Adressbereich begrenzt ist, finden Sie weitere Optionen unter Unterstützte IP-Bereiche. Für eine effiziente IP-Zuordnung und einfachere Verwaltung platzieren Sie mehrere Dienste oder Jobs im selben Subnetz.

Herunterskalieren

Auch wenn alle Dienste oder Jobs auf null herunterskaliert werden, reserviert Cloud Run einige IP-Adressen aus dem Subnetz bis zu 20 Minuten lang, falls Dienste oder Jobs schnell wieder hochskaliert werden müssen. Jede Instanz benötigt eine IP-Adresse, aber Cloud Run reserviert am Anfang mindestens eine /28-Subnetzmaske. Wenn alle 16 Instanzen aufgebraucht sind, erstellt Cloud Run ein neues Subnetz.

Wenn Sie das Subnetz löschen möchten, müssen Sie zuerst Ihre Cloud Run-Dienste oder -Jobs löschen oder noch einmal bereitstellen, um das Subnetz nicht mehr zu verwenden. Warten Sie dann 1–2 Stunden.

Unterstützte IP-Bereiche

Cloud Run unterstützt die folgenden IPv4-Bereiche für Ihr Subnetz:

  • RFC 1918 (empfohlen)
    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16
  • RFC 6598
    • 100.64.0.0/10
  • Klasse E (nicht für lokale Konfigurationen empfohlen)
    • 240.0.0.0/4

IAM-Berechtigungen einrichten

Prüfen Sie mit einer der folgenden Methoden, ob Cloud Run Zugriff auf das VPC-Netzwerk hat:

  • Rolle „Cloud Run-Dienst-Agent“: Standardmäßig hat der Cloud Run-Dienst-Agent die Rolle Cloud Run-Dienst-Agent (roles/run.serviceAgent), die die erforderlichen Berechtigungen enthält.

  • Benutzerdefinierte Berechtigungen: Für eine detaillierte Kontrolle erteilen Sie dem Cloud Run-Dienst-Agent die folgenden zusätzlichen Berechtigungen für das Projekt:

    • compute.networks.get
    • compute.subnetworks.get
    • compute.subnetworks.use für das Projekt oder das spezifische Subnetz
    • compute.addresses.get
    • compute.addresses.list
    • compute.addresses.createInternal
    • compute.addresses.deleteInternal
  • Rolle „Compute-Netzwerknutzer“: Wenn Sie die Standardrolle „Cloud Run-Dienst-Agent“ oder die benutzerdefinierten Berechtigungen nicht verwenden, weisen Sie die Rolle Compute-Netzwerknutzer (roles/compute.networkUser) ) für das Dienstkonto von Cloud Run-Dienst-Agent mit dem folgenden Befehl zu:

    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member "serviceAccount:service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com" \
    --role "roles/compute.networkUser"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID.
    • PROJECT_NUMBER: Die Projektnummer, in der Sie den Cloud Run-Dienst oder -Job bereitstellen.

Service bereitstellen

Durch ausgehenden Direct VPC-Traffic kann Ihr Cloud Run-Dienst Traffic ohne Connector für serverlosen VPC-Zugriff an ein VPC-Netzwerk senden. Die Netzwerkkosten werden wie der Dienst selbst auf null skaliert. Sie können Netzwerk-Tags auch direkt für Cloud Run-Dienstüberarbeitungen verwenden, um eine detailliertere Netzwerksicherheit zu erhalten.

Sie können ausgehenden Direct VPC-Traffic mit einem Dienst über die Google Cloud Console, die Google Cloud CLI oder YAML oder Terraform konfigurieren.

Console

  1. Öffnen Sie Cloud Run.

  2. Klicken Sie auf Dienst erstellen, wenn Sie einen neuen Dienst für die Bereitstellung konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren und bereitstellen, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

  3. Wenn Sie einen neuen Dienst konfigurieren, füllen Sie die Seite mit den anfänglichen Diensteinstellungen wie gewünscht aus und klicken Sie dann auf Container, Netzwerk, Sicherheit, um die Seite zur Dienstkonfiguration zu maximieren.

  4. Klicken Sie auf den Tab Netzwerk.

  5. Klicken Sie auf Mit einer VPC für ausgehenden Traffic verbinden.

  6. Klicken Sie auf Traffic direkt an eine VPC senden.

  7. Wählen Sie im Feld Netzwerk das VPC-Netzwerk aus, an das Sie Traffic senden möchten.

  8. Wählen Sie im Feld Subnetz das Subnetz aus, von dem Ihr Dienst IP-Adressen empfängt. Sie können mehrere Dienste im selben Subnetz bereitstellen.

  9. Optional: Geben Sie die Namen der Netzwerk-Tags ein, die Sie Ihrem Dienst oder Ihren Diensten zuordnen möchten. Netzwerktags werden auf Versionsebene angegeben. Jede Dienstversion kann unterschiedliche Netzwerk-Tags haben, z. B. network-tag-2.

  10. Wählen Sie für Traffic-Routing eine der folgenden Optionen:

    • Nur Anfragen an private IPs an die VPC weiterleiten, um nur Traffic an interne Adressen über das VPC-Netzwerk zu senden.
    • Gesamten Traffic an die VPC weiterleiten, um den gesamten ausgehenden Traffic über das VPC-Netzwerk zu senden.
  11. Klicken Sie auf Erstellen oder Bereitstellen.

  12. Klicken Sie auf den Dienst und dann auf den Tab Netzwerk, um zu prüfen, ob sich der Dienst in Ihrem VPC-Netzwerk befindet. Netzwerk und Subnetz werden auf der VPC-Karte aufgeführt.

    Sie können nun Anfragen von Ihrem Cloud Run-Dienst an eine beliebige Ressource im VPC-Netzwerk senden, je nach Ihren Firewallregeln.

gcloud

So stellen Sie einen Cloud Run-Dienst ohne Connector über die Google Cloud CLI bereit:

  1. Die Compute Engine API muss für das Projekt aktiviert sein:

    gcloud services enable compute.googleapis.com
    
  2. Stellen Sie Ihren Cloud Run-Dienst mit folgendem Befehl bereit:

    gcloud run deploy SERVICE_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --vpc-egress=EGRESS_SETTING \
    --region=REGION
    

    Ersetzen Sie:

    • SERVICE_NAME durch den Namen Ihres Cloud Run-Dienstes.
    • IMAGE_URL durch einen 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 die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • NETWORK durch den Namen Ihres VPC-Netzwerks.
    • SUBNET durch den Namen Ihres Subnetzes. Sie können mehrere Dienste oder Jobs im selben Subnetz bereitstellen oder ausführen.
    • Optional: NETWORK_TAG_NAMES durch die durch Kommas getrennten Namen der Netzwerk-Tags ersetzen, die Sie mit einem Dienst verknüpfen möchten. Bei Diensten werden Netzwerk-Tags auf Versionsebene angegeben. Jede Dienstversion kann unterschiedliche Netzwerk-Tags haben, z. B. network-tag-2.
    • EGRESS_SETTING durch einen Wert für die Einstellung für ausgehenden Traffic:
      • all-traffic: Sendet den gesamten ausgehenden Traffic über das VPC-Netzwerk.
      • private-ranges-only: Sendet nur Traffic an interne Adressen über das VPC-Netzwerk.
    • REGION durch eine Region für Ihren Dienst.
  3. Führen Sie folgenden Befehl aus, um zu prüfen, ob sich Ihr Dienst in Ihrem VPC-Netzwerk befindet:

    gcloud run services describe SERVICE_NAME \
    --region=REGION
    

    Ersetzen Sie:

    • SERVICE_NAME durch den Namen des Dienstes.
    • REGION durch die Region, die Sie im vorherigen Schritt für Ihren Dienst angegeben haben.

    Die Ausgabe sollte die Einstellung für Netzwerk, Subnetz und ausgehenden Traffic enthalten, zum Beispiel:

    VPC access:
      Network:       default
      Subnet:        subnet
      Egress:        private-ranges-only
    

Sie können nun Anfragen von Ihrem Cloud Run-Dienst an eine beliebige Ressource im VPC-Netzwerk senden, je nach Ihren Firewallregeln.

YAML

  1. Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Aktualisieren Sie die folgenden Attribute:

    apiVersion: serving.knative.dev/v1
      kind: Service
      metadata:
        name: SERVICE_NAME
        labels:
          cloud.googleapis.com/location: REGION
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
              run.googleapis.com/vpc-access-egress: EGRESS_SETTING
          spec:
            containers:
            - image: IMAGE

    Ersetzen Sie:

    • SERVICE_NAME durch den Namen Ihres Cloud Run-Dienstes. Dienstnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt nur einmal vorkommen.
    • REGION durch die Region für Ihren Cloud Run-Dienst; diese muss der Region Ihres Subnetzes entsprechen.
    • NETWORK durch den Namen Ihres VPC-Netzwerks.
    • SUBNET durch den Namen Ihres Subnetzes. Sie können mehrere Dienste oder Jobs im selben Subnetz bereitstellen oder ausführen.
    • Optional: Ersetzen Sie NETWORK_TAG_NAMES durch die Namen der Netzwerk-Tags, die Sie einem Dienst zuordnen möchten. Bei Diensten werden Netzwerk-Tags auf Versionsebene angegeben. Jede Dienstversion kann unterschiedliche Netzwerk-Tags haben, z. B. network-tag-2.
    • EGRESS_SETTING durch einen Wert für die Einstellung für ausgehenden Traffic:
      • all-traffic: Sendet den gesamten ausgehenden Traffic über das VPC-Netzwerk.
      • private-ranges-only: Sendet nur Traffic an interne Adressen über das VPC-Netzwerk.
    • IMAGE durch die URL Ihres Dienst-Container-Images.

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

  3. Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:

    gcloud run services replace service.yaml

Terraform

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

  1. Fügen Sie der Datei main.tf Folgendes hinzu:

    /**
     * Copyright 2024 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *      http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    # Example configuration of a Cloud Run service with direct VPC
    
    resource "google_cloud_run_v2_service" "default" {
      name     = "cloudrun-service"
      location = "us-central1"
    
      template {
        containers {
          image = "us-docker.pkg.dev/cloudrun/container/hello"
        }
        vpc_access {
          network_interfaces {
            network    = "default"
            subnetwork = "default"
            tags       = ["tag1", "tag2", "tag3"]
          }
        }
      }
    }
    

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

Job erstellen

Durch ausgehenden Direct VPC-Traffic kann Ihr Cloud Run-Job Traffic ohne Connector für serverlosen VPC-Zugriff an ein VPC-Netzwerk senden.

Sie können ausgehenden Direct VPC-Traffic mit einem Job über die Google Cloud Console, die Google Cloud CLI oder YAML konfigurieren.

Console

  1. Zu Cloud Run

  2. Klicken Sie auf den Tab Jobs und füllen Sie die Seite mit den anfänglichen Jobeinstellungen wie gewünscht aus, wenn Sie einen neuen Job konfigurieren. Klicken Sie auf den Job und dann auf Bearbeiten, wenn Sie einen vorhandenen Job konfigurieren.

  3. Klicken Sie auf Container, Variablen und Secrets, Verbindungen, Sicherheit, um die Seite mit den Jobattributen zu maximieren.

  4. Klicken Sie auf den Tab Verbindungen.

  5. Klicken Sie auf Mit einer VPC für ausgehenden Traffic verbinden.

  6. Klicken Sie auf Traffic direkt an eine VPC senden.

  7. Wählen Sie im Feld Netzwerk das VPC-Netzwerk aus, an das Sie Traffic senden möchten.

  8. Wählen Sie im Feld Subnetz das Subnetz aus, von dem Ihr Job IP-Adressen empfängt. Sie können mehrere Jobs im selben Subnetz ausführen.

  9. Wählen Sie für Traffic-Routing eine der folgenden Optionen:

    • Nur Anfragen an private IPs an die VPC weiterleiten, um nur Traffic an interne Adressen über das VPC-Netzwerk zu senden.
    • Gesamten Traffic an die VPC weiterleiten, um den gesamten ausgehenden Traffic über das VPC-Netzwerk zu senden.
  10. Optional: Geben Sie die Namen der Netzwerk-Tags ein, die Sie Ihrem Dienst oder Ihren Diensten zuordnen möchten. Netzwerktags werden auf Versionsebene angegeben. Jede Dienstversion kann unterschiedliche Netzwerk-Tags haben, z. B. network-tag-2.

  11. Optional: Geben Sie die Namen der Netzwerk-Tags ein, die Sie Ihrem Job oder Ihren Jobs zuordnen möchten. Bei Jobs werden Netzwerk-Tags auf Ausführungsebene angegeben. Jede Jobausführung kann unterschiedliche Netzwerk-Tags haben, z. B. network-tag-2.

  12. Klicken Sie auf Erstellen oder Aktualisieren.

  13. Klicken Sie auf den Job und dann auf den Tab Konfiguration, um zu prüfen, ob sich der Job in Ihrem VPC-Netzwerk befindet. Netzwerk und Subnetz werden auf der VPC-Karte aufgeführt.

    Sie können Ihren Cloud Run-Job jetzt ausführen und Anfragen vom Job an eine beliebige Ressource im VPC-Netzwerk senden, je nach Firewallregeln.

gcloud

So erstellen Sie einen Cloud Run-Job ohne Connector über die Google Cloud CLI:

  1. Die Compute Engine API muss für das Projekt aktiviert sein:

    gcloud services enable compute.googleapis.com
    
  2. Erstellen Sie mit folgendem Befehl einen Cloud Run-Job:

    gcloud run jobs create JOB_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --vpc-egress=EGRESS_SETTING \
    --region=REGION
    

    Ersetzen Sie:

    • JOB_NAME durch den Namen Ihres Cloud Run-Jobs.
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • NETWORK durch den Namen Ihres VPC-Netzwerks.
    • SUBNET durch den Namen Ihres Subnetzes. Sie können mehrere Dienste oder Jobs im selben Subnetz bereitstellen oder ausführen.
    • Optional: Ersetzen Sie NETWORK_TAG_NAMES durch die Namen der Netzwerk-Tags, die Sie einem Job zuordnen möchten. Für Jobs werden Netzwerk-Tags auf Ausführungsebene angegeben. Jede Jobausführung kann unterschiedliche Netzwerk-Tags haben, z. B. network-tag-2.
    • EGRESS_SETTING durch einen Wert für die Einstellung für ausgehenden Traffic:
      • all-traffic: Sendet den gesamten ausgehenden Traffic über das VPC-Netzwerk.
      • private-ranges-only: Sendet nur Traffic an interne Adressen über das VPC-Netzwerk.
    • REGION durch eine Region für Ihren Job.
  3. Führen Sie folgenden Befehl aus, um zu prüfen, ob sich der Job in Ihrem VPC-Netzwerk befindet:

    gcloud run jobs describe JOB_NAME \
      --region=REGION
      

    Ersetzen Sie:

    • JOB_NAME durch den Namen des Jobs.
    • REGION durch die Region für Ihren Job, die Sie im vorherigen Schritt angegeben haben.

    Die Ausgabe sollte den Namen Ihres Netzwerks und des Subnetzes enthalten, zum Beispiel:

    VPC network:
      Network:       default
      Subnet:        default
    

Sie können Ihren Cloud Run-Job jetzt ausführen und Anfragen vom Job an eine beliebige Ressource im VPC-Netzwerk senden, je nach Firewallregeln.

YAML

  1. Wenn Sie einen neuen Job erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Job aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Aktualisieren Sie die folgenden Attribute:

    apiVersion: run.googleapis.com/v1
      kind: Job
      metadata:
        name: JOB_NAME
        annotations:
          run.googleapis.com/launch-stage: BETA
        labels:
          cloud.googleapis.com/location: REGION
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
              run.googleapis.com/vpc-access-egress: EGRESS_SETTING
          spec:
            containers:
            - image: IMAGE

    Ersetzen Sie:

    • JOB_NAME durch den Namen Ihres Cloud Run-Jobs. Jobnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt nur einmal vorkommen.
    • REGION durch die Region für Ihren Cloud Run-Job; diese muss der Region Ihres Subnetzes entsprechen.
    • NETWORK durch den Namen Ihres VPC-Netzwerks.
    • SUBNET durch den Namen Ihres Subnetzes. Sie können mehrere Dienste oder Jobs im selben Subnetz bereitstellen oder ausführen.
    • Optional: Ersetzen Sie NETWORK_TAG_NAMES durch die Namen der Netzwerk-Tags, die Sie einem Job zuordnen möchten. Für Jobs werden Netzwerk-Tags auf Ausführungsebene angegeben. Jede Jobausführung kann unterschiedliche Netzwerk-Tags haben, z. B. network-tag-2.
    • EGRESS_SETTING durch einen Wert für die Einstellung für ausgehenden Traffic:
      • all-traffic: Sendet den gesamten ausgehenden Traffic über das VPC-Netzwerk.
      • private-ranges-only: Sendet nur Traffic an interne Adressen über das VPC-Netzwerk.
    • IMAGE durch die URL Ihres Job-Container-Images.
  3. Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:

    gcloud run jobs replace job.yaml

Zugriff durch Firewallregeln einschränken

Beschränken Sie den Zugriff auf Ressourcen in einem VPC-Netzwerk mithilfe von VPC-Firewallregeln. Fügen Sie diese Einschränkungen mit einer der folgenden Strategien hinzu:

  • Erstellen Sie mithilfe des IP-Bereichs des Subnetzes eine Firewallregel für eingehenden Traffic, die auf Ihren Dienst oder Job verweist.
  • Erstellen Sie eine Firewallregel für ausgehenden Traffic, die auf Ihren Dienst oder Job verweist.

    Verweisen Sie in der Firewallregel für ausgehenden Traffic auf Ihren Dienst oder Job mithilfe des verknüpften Dienstkontos Dienstidentität, des IP-Bereichs des Subnetzes oder der zugehörigen Netzwerk-Tags.

Netzwerktags für ausgehenden Traffic

Fügen Sie eine zusätzliche Netzwerksicherheitsebene hinzu. Verwenden Sie dazu Netzwerktags in Firewallregeln für ausgehenden Traffic.

Console

So verknüpfen Sie Netzwerk-Tags mit einem Dienst oder Job:

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud Run.

    Öffnen Sie Cloud Run.

  2. Klicken Sie auf den Dienst oder Job, mit dem Sie Netzwerk-Tags verknüpfen möchten, und dann auf Neue Überarbeitung bearbeiten und bereitstellen für Dienste oder Bearbeiten für Jobs.

  3. Klicken Sie für Dienste auf den Tab Netzwerk oder für Jobs auf den Tab Verbindungen.

  4. Achten Sie darauf, dass Sie Mit einer VPC für ausgehenden Traffic verbinden und Traffic direkt an eine VPC senden auswählen.

  5. Wählen Sie im Feld Subnetz das Subnetz aus, von dem Ihr Dienst IP-Adressen empfängt. Sie können mehrere Dienste oder Jobs im selben Subnetz bereitstellen oder ausführen.

  6. Geben Sie im Feld Netzwerk-Tags die Namen der Netzwerk-Tags ein, die Sie mit Ihrem Dienst oder Job verknüpfen möchten.

  7. Klicken Sie auf Bereitstellen oder Aktualisieren.

Bei Diensten kann jede Dienstversion einen anderen Satz von Netzwerktags haben, da Netzwerktags auf Versionsebene angegeben werden. Bei Jobs hat eine Jobausführung dieselben Netzwerk-Tags wie der Job beim Erstellen des Jobs.

gcloud

Verwenden Sie den Befehl gcloud run deploy, um Netzwerk-Tags mit einem Dienst oder Job zu verknüpfen:

gcloud run deploy SERVICE_JOB_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --region=REGION

Ersetzen Sie Folgendes:

  • SERVICE_JOB_NAME durch den Namen Ihres Dienstes oder Jobs.
  • IMAGE_URL: Die Image-URL des Dienstes oder Jobs.
  • NETWORK durch den Namen Ihres VPC-Netzwerks.
  • SUBNET durch den Namen Ihres Subnetzes. Sie können mehrere Dienste oder Jobs im selben Subnetz bereitstellen oder ausführen.
  • NETWORK_TAG_NAMES durch den Namen Ihres Netzwerktags oder eine durch Kommas getrennte Liste von Netzwerktags.
  • REGION durch den Namen Ihrer Region.

Bei Diensten kann jede Dienstversion einen anderen Satz von Netzwerktags haben, da Netzwerktags auf Versionsebene angegeben werden. Bei Jobs hat eine Jobausführung dieselben Netzwerk-Tags wie der Job beim Erstellen des Jobs.

Dienst trennen

Console

  • So entfernen Sie Ihren Dienst aus dem VPC-Netzwerk:

    1. Öffnen Sie Cloud Run.

    2. Klicken Sie auf den Dienst, den Sie entfernen möchten, und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

    3. Klicken Sie auf den Tab Netzwerk.

    4. Heben Sie die Markierung von Mit einer VPC für ausgehenden Traffic verbinden auf.

    5. Klicken Sie auf Bereitstellen.

    6. Klicken Sie auf den Tab Netzwerk, um zu prüfen, dass sich der Dienst nicht mehr in Ihrem VPC-Netzwerk befindet. Netzwerk und Subnetz werden nicht mehr auf der VPC-Karte aufgeführt.

  • So entfernen Sie nur die Netzwerk-Tags, während der Dienst mit dem VPC-Netzwerk verbunden bleibt:

    1. Klicken Sie auf den Dienst, der die zu entfernenden Netzwerk-Tags enthält, und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

    2. Klicken Sie auf den Tab Netzwerk.

    3. Löschen Sie die Namen der Netzwerk-Tags, die nicht mehr mit Ihrem Dienst verknüpfen sein sollen.

    4. Klicken Sie auf Bereitstellen.

gcloud

  • Führen Sie folgenden Befehl aus, um Ihren Dienst aus dem VPC-Netzwerk zu entfernen:

    gcloud run services update SERVICE_NAME --region=REGION \
    --clear-network
    
  • Führen Sie folgenden Befehl aus, um nur die Netzwerk-Tags zu entfernen, während der Dienst mit dem VPC-Netzwerk verbunden bleibt:

    gcloud run services update SERVICE_NAME --region=REGION \
    --clear-network-tags
    

    Ersetzen Sie Folgendes:

    • SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.
    • REGION: Die Region für Ihren Cloud Run-Dienst.

YAML

  • So entfernen Sie Ihren Dienst aus dem VPC-Netzwerk:

    1. Laden Sie die YAML-Konfiguration des Dienstes herunter:

      gcloud run services describe SERVICE_NAME --format export > service.yaml
    2. Entfernen Sie folgenden Inhalt aus der service.yaml-Datei:

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'

      Wo

      • NETWORK ist der Name des VPC-Netzwerks.
      • SUBNET: Der Name Ihres Subnetzes.
      • Optional: NETWORK_TAG_NAMES: die Namen der Netzwerktags, wenn Sie diese mit einem Dienst verknüpft haben.
    3. Stellen Sie die Dienstversion über folgenden Befehl bereit:

      gcloud run services replace service.yaml
  • So entfernen Sie nur die Netzwerk-Tags, während der Dienst mit dem VPC-Netzwerk verbunden bleibt:

    1. Laden Sie die YAML-Konfiguration des Dienstes herunter:

      gcloud run services describe SERVICE_NAME --format export > service.yaml
    2. Entfernen Sie die Variable tags aus dem Inhalt der service.yaml-Datei und lassen Sie die Variablen network und subnetwork an ihrem Ort, wie im folgenden Beispiel gezeigt:

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET"}]'

      Wo

      • NETWORK ist der Name des VPC-Netzwerks.
      • SUBNET: Der Name Ihres Subnetzes.
    3. Stellen Sie die Dienstversion über folgenden Befehl bereit:

      gcloud run services replace service.yaml

Job trennen

Console

  • So entfernen Sie Ihren Job aus dem VPC-Netzwerk:

    1. Öffnen Sie Cloud Run.

    2. Klicken Sie auf den Job, den Sie entfernen möchten, und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

    3. Klicken Sie auf den Tab Verbindungen.

    4. Heben Sie die Markierung von Mit einer VPC für ausgehenden Traffic verbinden auf.

    5. Klicken Sie auf Aktualisieren.

    6. Klicken Sie auf den Tab Konfiguration, um zu prüfen, dass sich der Job nicht mehr in Ihrem VPC-Netzwerk befindet. Netzwerk und Subnetz werden nicht mehr auf der VPC-Karte aufgeführt.

  • So entfernen Sie nur die Netzwerk-Tags, während der Job mit dem VPC-Netzwerk verbunden bleibt:

    1. Klicken Sie auf den Job, der die zu entfernenden Netzwerk-Tags enthält, und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

    2. Klicken Sie auf den Tab Verbindungen.

    3. Löschen Sie die Namen der Netzwerk-Tags, die nicht mehr mit Ihrem Job verknüpfen sein sollen.

    4. Klicken Sie auf Aktualisieren.

gcloud

  • Führen Sie folgenden Befehl aus, um Ihren Job aus dem VPC-Netzwerk zu entfernen:

    gcloud run jobs update JOB_NAME --region=REGION \
      --clear-network
      
  • Führen Sie folgenden Befehl aus, um nur die Netzwerk-Tags zu entfernen, während der Job mit dem VPC-Netzwerk verbunden bleibt:

    gcloud run jobs update JOB_NAME --region=REGION \
      --clear-network-tags
      

    Ersetzen Sie Folgendes:

    • JOB_NAME: Der Name Ihres Cloud Run-Jobs.
    • REGION: Die Region für Ihren Cloud Run-Job.

YAML

  • So entfernen Sie Ihren Job aus dem VPC-Netzwerk:

    1. Laden Sie die YAML-Konfiguration des Jobs herunter:

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. Entfernen Sie folgenden Inhalt aus der job.yaml-Datei:

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'

      Ersetzen Sie Folgendes:

      • NETWORK ist der Name des VPC-Netzwerks.
      • SUBNET: Der Name Ihres Subnetzes.
      • Optional: NETWORK_TAG_NAMES durch die Namen der Netzwerktags, wenn Sie diese mit einem Job verknüpft haben.
    3. Stellen Sie den Job mit folgendem Befehl noch einmal bereit:

      gcloud run jobs replace job.yaml
  • So entfernen Sie nur die Netzwerk-Tags, während der Job mit dem VPC-Netzwerk verbunden bleibt:

    1. Laden Sie die YAML-Konfiguration des Jobs herunter:

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. Entfernen Sie die Variable tags aus dem Inhalt der job.yaml-Datei und lassen Sie die Variablen network und subnetwork an ihrem Ort, wie im folgenden Beispiel gezeigt:

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET"}]'

      Ersetzen Sie Folgendes:

      • NETWORK ist der Name des VPC-Netzwerks.
      • SUBNET: Der Name Ihres Subnetzes.
    3. Stellen Sie den Job mit folgendem Befehl noch einmal bereit:

      gcloud run jobs replace job.yaml

Fehlerbehebung

Subnetz kann nicht gelöscht werden

Wenn Sie ein Subnetz löschen möchten, müssen Sie zuerst alle Ressourcen, die es verwenden, löschen oder noch einmal bereitstellen. Wenn Cloud Run ein Subnetz verwendet, trennen Sie die Verbindung zum Dienst oder Job von Cloud Run vom VPC-Netzwerk oder verschieben Sie es vor dem Verschieben in ein anderes Subnetz, bevor Sie das Subnetz löschen.

Direct VPC-Subnetz hat keine IP-Adressen mehr

Wenn das Subnetz des VPC-Netzwerks keine IP-Adressen mehr hat, wird dies von Cloud Logging protokolliert. In diesem Fall kann Cloud Run keine weiteren Dienstinstanzen oder Jobaufgaben mehr starten, bis weitere IP-Adressen verfügbar sind.

Zugewiesene IP-Adressen anzeigen

Um zu sehen, welche IP-Adressen Cloud Run zugewiesen hat, rufen Sie in der Google Cloud Console die Seite "IP-Adressen" auf oder führen folgenden Befehl über die Google Cloud CLI aus:

gcloud compute addresses list