Cloud Storage-Volume-Bereitstellungen für Jobs konfigurieren

Auf dieser Seite wird gezeigt, wie Sie mithilfe von Cloud Run Volume-Bereitstellungen einen Cloud Storage-Bucket als Speicher-Volume bereitstellen.

Wenn Sie den Bucket als Volume in Cloud Run bereitstellen, wird der Inhalt des Buckets als Dateien im Dateisystem des Containers angezeigt. Nachdem Sie den Bucket als Volume bereitgestellt haben, greifen Sie so auf den Bucket zu, als wäre er ein Verzeichnis in Ihrem lokalen Dateisystem. Dabei verwenden Sie die Dateisystemvorgänge und Bibliotheken Ihrer Programmiersprache anstelle der Google API-Clientbibliotheken.

Sie können das Volume schreibgeschützt bereitstellen und Bereitstellungsoptionen für das Volume angeben.

Speicheranforderungen

Cloud Storage-Volume-Bereitstellungen verwenden den Cloud Run-Containerarbeitsspeicher für die folgenden Aktivitäten:

  • Für das gesamte Cloud Storage FUSE-Caching verwendet Cloud Run standardmäßig die Statistik-Cache-Einstellung mit einer Lebensdauer (Time-to-Live, TTL) von 60 Sekunden. Die Standardmaximalgröße des Statistik-Caches beträgt 32 MB, die Standardmaximalgröße des Typ-Caches 4 MB.

  • Beim Lesen verbraucht Cloud Storage FUSE auch anderen Arbeitsspeicher als Statistik- und Typ-Caches, z. B. ein 1-MiB-Array für jede gelesene Datei und für Goroutines.

  • Beim Schreiben in Cloud Storage wird die gesamte Datei im Cloud Run-Arbeitsspeicher bereitgestellt, bevor die Datei in Cloud Storage geschrieben wird.

Beschränkungen

Da Cloud Run für diese Bereitstellung Cloud Storage FUSE verwendet, müssen Sie beim Bereitstellen eines Cloud Storage-Buckets als Volume einige Dinge beachten:

  • Cloud Storage FUSE bietet keine Nebenläufigkeitserkennung für mehrere Schreibvorgänge (Dateisperre) in derselben Datei. Wenn mehrere Schreibvorgänge versuchen, eine Datei zu ersetzen, wird der letzte Schreibvorgang ausgeführt und alle vorherigen gehen verloren.
  • Cloud Storage FUSE ist kein vollständig POSIX-konformes Dateisystem. Weitere Informationen finden Sie in der Dokumentation zu Cloud Storage FUSE.

Unzulässige Pfade

Mit Cloud Run können Sie kein Volume unter /dev, /proc und /sys oder in deren Unterverzeichnissen bereitstellen.

Hinweise

Sie benötigen einen Cloud Storage-Bucket, der als Volume bereitgestellt wird.

Informationen zur optimalen Lese-/Schreibleistung für Cloud Storage finden Sie unter Netzwerkbandbreitenleistung von Cloud Storage FUSE optimieren.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren von Cloud Storage-Volume-Bereitstellungen benötigen:

Bitten Sie Ihren Administrator, der Dienstidentität die folgende IAM-Rolle zuzuweisen, um die Berechtigungen zu erhalten, die Ihre Dienstidentität benötigt, um auf die Datei und den Cloud Storage-Bucket zuzugreifen:

Weitere Informationen zu Cloud Storage-Rollen und -Berechtigungen finden Sie unter IAM für Cloud Storage.

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-Job mit Google 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.

Cloud Storage-Volume bereitstellen

Sie können mehrere Buckets an verschiedenen Bereitstellungspfaden bereitstellen. Sie können ein Volume auch für mehrere Container bereitstellen, wobei Sie denselben oder unterschiedliche Bereitstellungspfade für die verschiedenen Containern nutzen können.

Wenn Sie mehrere Container verwenden, geben Sie zuerst die Volumes und dann die Volume-Bereitstellungen pro Container an.

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite "Cloud Run-Jobs":

    Zu Cloud Run

  2. Klicken Sie auf Container bereitstellen und wählen Sie Job aus, um die Seite mit den anfänglichen Jobeinstellungen auszufüllen. Wählen Sie den Job aus und klicken Sie 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 Volumes.

    Bild

    • Unter Volumes:
      • Klicken Sie auf Volume hinzufügen.
      • Wählen Sie im Drop-down-Menü Volume-Typ die Option „Cloud Storage-Bucket“ als Volume-Typ aus.
      • Geben Sie im Feld Names des Volume den Namen ein, den Sie für das Volume verwenden möchten.
      • Wählen Sie den Bucket aus, den Sie für das Volume verwenden möchten.
      • Sie können das Kästchen Schreibgeschützt anklicken, um den Bucket schreibgeschützt zu machen.
      • Klicken Sie auf Fertig.
    • Klicken Sie auf den Tab „Container“ und maximieren Sie den Container, in dem Sie das Volume bereitstellen möchten, um ihn zu bearbeiten.
    • Klicken Sie auf den Tab Volume-Bereitstellungen.
    • Klicken Sie auf Volume bereitstellen.
      • Wählen Sie das Cloud Storage-Volume aus dem Menü aus.
      • Geben Sie den Pfad an, unter dem Sie das Volume bereitstellen möchten.
      • Klicken Sie auf Volume bereitstellen.
  5. Klicken Sie auf Erstellen oder Aktualisieren.

gcloud

  • So fügen Sie ein Volume hinzu und stellen es bereit:

    gcloud run jobs update JOB \
    --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH

    Ersetzen Sie:

    • JOB durch den Namen des Jobs.
    • MOUNT_PATH durch den relativen Pfad, unter dem Sie das Volume bereitstellen, z. B. /mnt/my-volume.
    • VOLUME_NAME durch einen beliebigen Namen für Ihr Volume. Der Wert VOLUME_NAME wird verwendet, um das Volume der Volume-Bereitstellung zuzuordnen.
    • BUCKET_NAME durch den Namen Ihres Cloud Storage-Buckets.
  • So stellen Sie das Volume schreibgeschützt bereit:

    --add-volume=name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,readonly=true
  • Wenn Sie mehrere Container verwenden, geben Sie zuerst die Volumes und dann die Volume-Bereitstellungen pro Container an:

    gcloud run jobs update JOB \
    --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME \
    --container CONTAINER_1 \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH \
    --container CONTAINER_2 \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH2

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 MOUNT_PATH, VOLUME_NAME, BUCKET_NAME und IS_READ_ONLY nach Bedarf.

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB_NAME
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/execution-environment: gen2
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL
                volumeMounts:
                - mountPath: MOUNT_PATH
                  name: VOLUME_NAME
              volumes:
              - name: VOLUME_NAME
                csi:
                  driver: gcsfuse.run.googleapis.com
                  readOnly: IS_READ_ONLY
                  volumeAttributes:
                    bucketName: BUCKET_NAME

    Ersetzen

    • 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.
    • MOUNT_PATH durch den relativen Pfad, unter dem Sie das Volume bereitstellen, z. B. /mnt/my-volume.
    • VOLUME_NAME durch einen beliebigen Namen für Ihr Volume. Der Wert VOLUME_NAME wird verwendet, um das Volume der Volume-Bereitstellung zuzuordnen.
    • IS_READ_ONLY durch True, um das Volume schreibgeschützt zu machen, oder durch False, um Schreibvorgänge zuzulassen.
    • BUCKET_NAME durch den Namen des Cloud Storage-Buckets.
  3. Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:

    gcloud run jobs replace job.yaml

Lesen und Schreiben auf ein Volume

Wenn Sie das Cloud Run-Feature zur Volume-Bereitstellung verwenden, greifen Sie mit denselben Bibliotheken in Ihrer Programmiersprache auf ein bereitgestelltes Volume zu, mit denen Sie Dateien auf Ihrem lokalen Dateisystem lesen und schreiben.

Dies ist besonders nützlich, wenn Sie einen vorhandenen Container verwenden, der erwartet, dass Daten im lokalen Dateisystem gespeichert werden und ein reguläres Dateisystem für den Zugriff darauf verwendet.

In den folgenden Snippets wird davon ausgegangen, dass ein Volume bereitgestellt wird, bei dem mountPath auf /mnt/my-volume festgelegt ist.

Nodejs

Verwenden Sie das Dateisystemmodul, um eine neue Datei zu erstellen oder Anhänge einer vorhandenen Datei im Volume /mnt/my-volume hinzuzufügen:

var fs = require('fs');
fs.appendFileSync('/mnt/my-volume/sample-logfile.txt', 'Hello logs!', { flag: 'a+' });

Python

So schreiben Sie in eine Datei, die im Volume /mnt/my-volume gespeichert ist:

f = open("/mnt/my-volume/sample-logfile.txt", "a")

Go

Verwenden Sie das Paket os, um eine neue Datei im Volume /mnt/my-volume zu erstellen

f, err := os.Create("/mnt/my-volume/sample-logfile.txt")

Java

Verwenden Sie die Klasse Java.io.File, um eine Logdatei im Volume /mnt/my-volume zu erstellen:

import java.io.File;
File f = new File("/mnt/my-volume/sample-logfile.txt");

Volumekonfiguration mit Bereitstellungsoptionen

Optional können Sie Bereitstellungsoptionen verwenden, um verschiedene Eigenschaften der Volumebereitstellung zu konfigurieren. Mit den verfügbaren Bereitstellungsoptionen können Sie Cache-Einstellungen konfigurieren, ein bestimmtes Verzeichnis bereitstellen, Debug-Logging aktivieren und andere Verhaltensweisen festlegen.

Bereitstellungsoptionen angeben

Sie können Bereitstellungsoptionen mit der Google Cloud CLI oder YAML angeben.

gcloud

So fügen Sie ein Volume hinzu und stellen es mit Bereitstellungsoptionen bereit:

gcloud beta run jobs update JOB \
    --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME, mount-options="OPTION_1=VALUE_1;OPTION_N=VALUE_N" \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH

Ersetzen Sie:

  • JOB durch den Namen des Jobs.
  • MOUNT_PATH durch den relativen Pfad, unter dem Sie das Volume bereitstellen, z. B. /cache.
  • VOLUME_NAME durch einen beliebigen Namen für Ihr Volume. Der Wert VOLUME_NAME wird verwendet, um das Volume der Volume-Bereitstellung zuzuordnen.
  • BUCKET_NAME durch den Namen Ihres Cloud Storage-Buckets.
  • OPTION_1 mit der ersten Bereitstellungsoption. Sie können beliebig viele Bereitstellungsoptionen angeben. Jedes Bereitstellungsoptionen-Wert-Paar muss durch ein Semikolon getrennt sein.
  • VALUE_1 durch die gewünschte Einstellung für die erste Bereitstellungsoption.
  • OPTION_N durch die zweite Bereitstellungsoption.
  • VALUE_N durch die Einstellung für die zweite Bereitstellungsoption.
  • BUCKET_NAME durch den Namen Ihres Cloud Storage-Buckets.
  • MOUNT_PATH durch den relativen Pfad, unter dem Sie das Volume bereitstellen, z. B. /cache.

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. Nehmen Sie die erforderlichen Änderungen vor.

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB_NAME
    spec:
      metadata:
        annotations:
          run.googleapis.com/launch-stage: BETA
      template:
        metadata:
          annotations:
            run.googleapis.com/execution-environment: gen2
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL
                volumeMounts:
                - mountPath: MOUNT_PATH
                  name: VOLUME_NAME
              volumes:
              - name: VOLUME_NAME
                csi:
                  driver: gcsfuse.run.googleapis.com
                  readOnly: IS_READ_ONLY
                  volumeAttributes:
                    bucketName: BUCKET_NAME
                    mountOptions: OPTION_1=VALUE_1,OPTION_N=VALUE_N

    Ersetzen

    • 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.
    • MOUNT_PATH durch den relativen Pfad, unter dem Sie das Volume bereitstellen, z. B. /cache.
    • VOLUME_NAME durch einen beliebigen Namen für Ihr Volume. Der Wert VOLUME_NAME wird verwendet, um das Volume der Volume-Bereitstellung zuzuordnen.
    • IS_READ_ONLY durch True, um das Volume schreibgeschützt zu machen, oder durch False, um Schreibvorgänge zuzulassen.
    • BUCKET_NAME durch den Namen des Cloud Storage-Buckets.
    • OPTION_1 mit der ersten Bereitstellungsoption. Sie können beliebig viele Bereitstellungsoptionen angeben. Trennen Sie jedes Paar aus Bereitstellungsoption und Wert durch ein Komma.
    • VALUE_1 durch die gewünschte Einstellung für die erste Bereitstellungsoption.
    • OPTION_N durch die zweite Bereitstellungsoption.
    • VALUE_N durch die Einstellung für die zweite Bereitstellungsoption.
  3. Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:

    gcloud run jobs replace job.yaml

Häufig verwendete Bereitstellungsoptionen

Bereitstellungsoptionen werden häufig verwendet, um Cacheeinstellungen zu konfigurieren, nur ein bestimmtes Verzeichnis aus dem Cloud Storage-Bucket bereitzustellen, die Inhaberschaft des Volumes (uid, gid) zu konfigurieren, implizite Verzeichnisse zu deaktivieren oder Debug-Protokollierungsebenen anzugeben.

Caching-Einstellungen konfigurieren

Sie können die Caching-Einstellungen für das Volume ändern, indem Sie die zugehörigen Bereitstellungsoptionen festlegen. In der folgenden Tabelle sind die Einstellungen zusammen mit den Standardwerten für Cloud Run aufgeführt :

Cache-Einstellung Beschreibung Standard
metadata-cache-ttl-secs Gültigkeitsdauer (TTL) in Sekunden der im Cache gespeicherten Metadateneinträge. Beispiel: metadata-cache-ttl-secs=120s. Wenn Sie die aktuellste Datei verwenden möchten, geben Sie den Wert 0 an. Wenn immer die im Cache gespeicherte Version verwendet werden soll, geben Sie den Wert -1 an. Weitere Informationen finden Sie unter Cache-Entwertung konfigurieren. 60
stat-cache-max-size-mb Maximale Größe in Mebibyte (MiB), die der Statistik-Cache verwenden kann. Der Statistik-Cache wird immer vollständig im Arbeitsspeicher gehalten, was sich auf die Speichernutzung auswirkt. Geben Sie den Wert 32 an,wenn Ihre Arbeitslast bis zu 20.000 Dateien umfasst. Wenn Ihre Arbeitslast mehr als 20.000 Dateien enthält, erhöhen Sie die Größe um 10 pro weitere 6.000 Dateien. Der Statistik-Cache belegt dann durchschnittlich 1.500 MiB pro Datei.

Wenn der Statistik-Cache so viel Arbeitsspeicher wie nötig verwenden soll, also kein Limit festgelegt werden soll, geben Sie den Wert -1 an. Geben Sie den Wert 0 an, um den Statistik-Cache zu deaktivieren.
32
type-cache-max-size-mb Die maximale Größe in MiB pro Verzeichnis, die der Typcache verwenden kann. Der Typ-Cache wird immer vollständig im Arbeitsspeicher gehalten, was sich auf die Arbeitsspeichernutzung auswirkt.

Geben Sie den Wert 4 an,wenn die maximale Anzahl von Dateien in einem einzelnen Verzeichnis des bereitgestellten Buckets 20.000 Dateien oder weniger beträgt. Wenn die maximale Anzahl von Dateien in einem einzelnen Verzeichnis, das Sie bereitstellen, mehr als 20.000 Dateien enthält, erhöhen Sie den Wert um 1 pro 5.000 Dateien, also durchschnittlich ca. 200 Byte pro Datei.

Wenn der Typ-Cache so viel Arbeitsspeicher wie nötig verwenden soll, also keine Begrenzung festgelegt werden soll, geben Sie den Wert -1 an.

Wenn der Typ-Cache deaktiviert werden soll, geben Sie den Wert 0 an.
4

Mit dem folgenden Google Cloud CLI-Befehl wird metadata-cache-ttl-secs auf 120 Sekunden festgelegt und die Kapazität des Statistik- und Typ-Caches auf 52 MiB bzw. 7 MiB erhöht:

gcloud beta run jobs update JOB \
    --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="metadata-cache-ttl-secs=120;stat-cache-max-size-mb=52;type-cache-max-size-mb=7" \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH

Debug-Protokollierung aktivieren

Standardmäßig werden von Cloud Storage FUSE Ereignisse mit dem Schweregrad Info protokolliert. Sie können die Protokollierungseinstellungen mit einer der folgenden Optionen für die Protokollierungsschwere ändern:

  • trace
  • debug
  • info
  • warning
  • error
  • Wenn Sie das gesamte Logging deaktivieren möchten, geben Sie den Wert off an.

Diese Schweregrade werden vom niedrigsten zum höchsten Schweregrad sortiert. Wenn Sie einen Schweregrad angeben, generiert Cloud Storage FUSE Protokolle für Ereignisse mit einem Schweregrad, der dem angegebenen Schweregrad entspricht oder höher ist. Wenn Sie beispielsweise den Wert warning angeben, generiert Cloud Storage FUSE Logs für Warnungen und Fehler.

Wenn Sie die Log-Schwere auf ein Niveau über info festlegen, kann dies die Leistung beeinträchtigen und eine große Menge an Protokolldaten generieren. Wir empfehlen daher, dies nur bei Bedarf zu tun.

Mit der folgenden Befehlszeile wird das Logging zur Fehlerbehebung aktiviert:

gcloud beta run jobs update JOB \
    --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="log-severity=debug" \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH

Implizite Verzeichnisse deaktivieren

Damit Cloud Storage mehr wie ein Standarddateisystem erscheint, werden in Cloud Run beim Bereitstellen eines Cloud Storage-Bucket standardmäßig implizite Verzeichnisse aktiviert. Sie können implizite Verzeichnisse mit der Option implicit-dirs deaktivieren. Das Deaktivieren impliziter Verzeichnisse kann die Leistung und die Kosten verbessern, hat aber Kompatibilitätsnachteile.

Mit der Funktion für implizite Verzeichnisse kann Cloud Run bereits vorhandene Cloud Storage-Dateien erkennen, deren Dateinamen eine Verzeichnisstruktur nachahmen, z. B. /mydir/myfile.txt. Wenn Sie implizite Verzeichnisse deaktivieren, kann Cloud Run solche Dateien nicht auflisten oder lesen.

Wenn Sie implizite Verzeichnisse deaktivieren, wird die Anzahl der Anfragen an Cloud Storage reduziert. Dies kann die Anwendungsleistung und die Kosten verbessern. Weitere Informationen finden Sie in der Dokumentation zu Dateien und Verzeichnissen in Cloud Storage FUSE.

Mit der folgenden Befehlszeile werden implizite Verzeichnisse deaktiviert:

gcloud beta run jobs update JOB \
    --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="implicit-dirs=false" \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH

Bestimmtes Verzeichnis in Ihrem Cloud Storage-Bucket bereitstellen

Standardmäßig stellt Cloud Run den gesamten Cloud Storage-Bucket bereit, sodass Cloud Run-Jobs Zugriff auf den gesamten Inhalt haben. In einigen Fällen möchten Sie möglicherweise nur ein bestimmtes Verzeichnis bereitstellen. Wenn der Bucket beispielsweise eine große Anzahl von Dateien enthält, kann das Bereitstellen eines bestimmten Verzeichnisses die Leistung verbessern.

Ein weiteres Beispiel ist die Isolation, bei der verschiedene Jobs Zugriff auf verschiedene Verzeichnisse im Storage-Bucket benötigen.

In der folgenden Befehlszeile wird das zu bereitstellende Verzeichnis angegeben:

gcloud beta run jobs update JOB \
    --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="only-dir=images" \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH

Lautstärke auf UID und GID einstellen

Verwenden Sie die Bereitstellungsoptionen uid und gid, um die Nutzer- und Gruppen-ID für das Volume zu ändern. Dies ist nützlich, wenn Sie die Inhaberschaft der Datei auf einen bestimmten Nutzer oder eine bestimmte Gruppe festlegen möchten, die der Identität eines oder mehrerer laufender Container entspricht. Standardmäßig ist der Eigentümer von Volumes „root“.

Mit der folgenden Befehlszeile werden uid und gid festgelegt:

gcloud beta run jobs update JOB \
    --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,mount-options="uid=UID;gid=GID"  \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH

Weitere Bereitstellungsoptionen festlegen

Die folgende Liste enthält alle von Cloud Run unterstützten Bereitstellungsoptionen.

Verzeichnis

  • implicit-dirs
  • only-dir
  • rename-dir-limit

Debuggen

  • debug_fuse_errors
  • debug_fuse
  • debug_gcs
  • debug-invariants
  • debug_mutex

Cache

  • stat-cache-capacity
  • stat-cache-ttl
  • type-cache-ttl
  • enable-nonexistent-type-cache

Berechtigungen

  • uid
  • gid
  • file-mode
  • dir-mode

Sonstiges

  • billing-project
  • client-protocol
  • experimental-enable-json-read
  • experimental-opentelemetry-collector-address
  • http-client-timeout
  • limit-bytes-per-sec
  • limit-ops-per-sec
  • max-conns-per-host
  • max-idle-conns-per-host
  • max-retry-sleep
  • -o
  • retry-multiplier
  • sequential-read-size-mb
  • stackdriver-export-interval

Eine vollständige Dokumentation der unterstützten Bereitstellungsoptionen finden Sie unter Bereitstellungsoptionen für die Cloud Storage FUSE-Befehlszeile.

Einstellungen für Volume-Bereitstellungen ansehen

Sie können die aktuellen Einstellungen für die Volume-Bereitstellung mit der Google Cloud Console oder der Google Cloud CLI aufrufen.

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite "Cloud Run-Jobs":

    Zu Cloud Run-Jobs

  2. Klicken Sie auf den gewünschten Job, um die Seite Jobdetails zu öffnen.

  3. Klicken Sie auf den Tab Volumes.

  4. Suchen Sie auf der Seite mit den Volume-Details nach der Einstellung für Volume-Bereitstellungen.

gcloud

  1. Verwenden Sie den folgenden Befehl:

    gcloud run jobs describe JOB_NAME
  2. Suchen Sie in der zurückgegebenen Konfiguration nach der Einstellung für die Volume-Bereitstellungen.

Netzwerkbandbreitenleistung von Cloud Storage FUSE optimieren

Für eine bessere Lese- und Schreibleistung empfehlen wir, Ihren Cloud Run-Job über Direct VPC mit einem VPC-Netzwerk zu verbinden und den gesamten ausgehenden Traffic über Ihr VPC-Netzwerk zu leiten. Sie haben dazu folgende Möglichkeiten:

Containerstartzeit und Cloud Storage FUSE-Bereitstellungen

Wenn Sie Cloud Storage FUSE verwenden, kann sich der Startzeitpunkt Ihres Cloud Run-Containers leicht verlängern, da die Volume-Bereitstellung vor dem Start der Container gestartet wird. Der Container wird nur gestartet, wenn Cloud Storage FUSE erfolgreich bereitgestellt wurde.

Cloud Storage FUSE stellt ein Volume erst dann bereit, wenn eine Verbindung zu Cloud Storage hergestellt wurde. Netzwerkverzögerungen können sich auf die Containerstartzeit auswirken. Wenn der Verbindungsversuch fehlschlägt, kann Cloud Storage FUSE nicht bereitgestellt und der Cloud Run-Job nicht gestartet werden. Wenn die Bereitstellung mit Cloud Storage FUSE länger als 30 Sekunden dauert, wird der Cloud Run-Job nicht gestartet, da für Cloud Run insgesamt 30 Sekunden Zeit für die Durchführung aller Bereitstellungen zur Verfügung stehen.

Leistungsmerkmale von Cloud Storage FUSE

Wenn Sie zwei Volumes definieren, die jeweils auf einen anderen Bucket verweisen, werden zwei Cloud Storage FUSE-Prozesse gestartet. Die Bereitstellungen und Prozesse erfolgen parallel.

Vorgänge mit Cloud Storage FUSE sind von der Netzwerkbandbreite betroffen, da Cloud Storage FUSE über die Cloud Storage API mit Cloud Storage kommuniziert. Einige Vorgänge wie das Auflisten der Inhalte eines Buckets können langsam sein, wenn die Netzwerkbandbreite niedrig ist. Ähnlich kann das Lesen einer großen Datei einige Zeit in Anspruch nehmen, da dies auch von der Netzwerkbandbreite abhängt.

Wenn Sie in einen Bucket schreiben, stellt Cloud Storage FUSE das Objekt vollständig im Arbeitsspeicher bereit. Das Schreiben großer Dateien ist also durch die Menge an Arbeitsspeicher begrenzt, die der Containerinstanz zur Verfügung steht. Das maximale Containerarbeitsspeicherlimit beträgt 32 GiB.

Die Schreibvorgänge werden nur dann in den Bucket übertragen, wenn Sie einen close oder fsync ausführen. Das vollständige Objekt wird dann in den Bucket hochgeladen oder noch einmal hochgeladen. Die einzige Ausnahme, bei der ein Objekt vollständig noch einmal in den Bucket hochgeladen wird, ist der Fall einer Datei mit angehängtem Inhalt, die mindestens 2 MiB groß ist.

Weitere Informationen finden Sie in den folgenden Ressourcen:

Volumes und Volume-Bereitstellungen löschen und entfernen

Sie können alle Volumes und Volume-Bereitstellungen löschen oder einzelne Volumes und Volume-Bereitstellungen entfernen.

Alle Volumes und Volume-Bereitstellungen löschen

Führen Sie den folgenden Befehl aus, um alle Volumes und Volume-Bereitstellungen aus Ihrem Job mit einem einzelnen Container zu entfernen:

gcloud beta run jobs update JOB \
    --clear-volumes
    --clear-volume-mounts

Wenn Sie mehrere Container haben, folgen Sie den CLI-Konventionen für Sidecars, um Volumes und Volume-Bereitstellungen zu löschen:

gcloud beta run jobs update JOB \
    --clear-volumes \
    --clear-volume-mounts \
    --container=container1 \
    --clear-volumes \
    -–clear-volume-mounts \
    --container=container2 \
    --clear-volumes \
    -–clear-volume-mounts

Einzelne Volumes und Volume-Bindungen entfernen

Wenn Sie ein Volume entfernen möchten, müssen Sie auch alle Volume-Bindungen entfernen, die dieses Volume verwenden.

Verwenden Sie die Flags remove-volume und remove-volume-mount, um einzelne Volumes oder Volume-Bereitstellungen zu entfernen:

gcloud beta run jobs update JOB \
    --remove-volume VOLUME_NAME
    --container=container1 \
    --remove-volume-mount MOUNT_PATH \
    --container=container2 \
    --remove-volume-mount MOUNT_PATH