為 Cloud Run 服務設定 Cloud Storage 磁碟區掛載

本頁面說明如何使用 Cloud Run 的磁碟區掛接功能,將 Cloud Storage 值區掛接為儲存空間磁碟區。

將值區掛接為 Cloud Run 中的磁碟區,即可將值區內容呈現為容器檔案系統中的檔案。將值區掛載為磁碟區後,您可以使用程式設計語言的檔案系統作業和程式庫,而不是使用 Google API 用戶端程式庫,將值區視為本機檔案系統的目錄來存取。

您可以將磁碟區掛載為唯讀,也可以為磁碟區指定掛載選項

記憶體需求

Cloud Storage 磁碟區掛載作業會使用 Cloud Run 容器記憶體執行下列活動:

  • 對於所有 Cloud Storage FUSE 快取,Cloud Run 會使用統計快取設定,預設的存留時間 (TTL) 為 60 秒。統計快取的預設大小上限為 32 MB,類型快取的預設大小上限為 4 MB。

  • 讀取時,Cloud Storage FUSE 也會使用狀態和類型快取以外的記憶體,例如每個要讀取的檔案和 goroutine 的 1 MiB 陣列。

  • 寫入 Cloud Storage 時,整個檔案會先在 Cloud Run 記憶體中暫存,然後再寫入 Cloud Storage。

限制

由於 Cloud Run 會使用 Cloud Storage FUSE 掛接這個磁碟機,因此在將 Cloud Storage 值區掛接為磁碟機時,請留意下列幾點:

  • Cloud Storage FUSE 不會為同一個檔案的多個寫入作業 (檔案鎖定) 提供並行作業控制功能。如果有多個寫入作業嘗試替換檔案,則最後一次寫入會成功,所有之前的寫入均會遺失。
  • Cloud Storage FUSE 並非完全符合 POSIX 規範的檔案系統。詳情請參閱 Cloud Storage FUSE 說明文件

不允許的路徑

Cloud Run 不允許您在 /dev/proc/sys 或其子目錄中掛接磁碟區。

事前準備

您需要一個 Cloud Storage 值區,才能將其掛接為磁碟區。

如要確保 Cloud Storage 的讀取/寫入效能最佳化,請參閱「最佳化 Cloud Storage FUSE 網路頻寬效能」。

必要的角色

如要取得設定 Cloud Storage 掛載磁區所需的權限,請要求管理員授予您下列 IAM 角色:

  • Cloud Run 服務中的 Cloud Run 開發人員 (roles/run.developer)
  • 服務身分中的「服務帳戶使用者」 (roles/iam.serviceAccountUser)

如要取得 服務身分存取檔案和 Cloud Storage 值區所需的權限,請要求管理員授予服務身分以下 IAM 角色:

如要進一步瞭解 Cloud Storage 的角色和權限,請參閱 Cloud Storage 的 IAM

如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果您的 Cloud Run 服務會與Google Cloud API 互動 (例如 Cloud 用戶端程式庫),請參閱服務身分設定指南。如要進一步瞭解如何授予角色,請參閱部署權限管理存取權

掛接 Cloud Storage 磁碟區

您可以在不同的掛載路徑中掛載多個儲存桶。您也可以使用相同或不同的掛載路徑,將磁碟區掛接至多個容器。

如果您使用多個容器,請先指定磁碟區,再指定每個容器的磁碟區掛接。

磁碟區掛載作業需要第二代執行環境。如果未明確設定執行環境,Cloud Run 會自動為服務選取第二代執行環境。

控制台

  1. 前往 Google Cloud 控制台的 Cloud Run:

    前往 Cloud Run

  2. 從選單中選取「Services」(服務),然後按一下「Deploy container」(部署容器),即可設定新的服務。如果您要設定現有服務,請按一下該服務,然後點選「編輯並部署新修訂版本」

  3. 如果您要設定新服務,請填寫初始服務設定頁面,然後按一下「容器、磁碟區、網路與安全性」展開服務設定頁面。

  4. 按一下「Volumes」分頁標籤。

    圖片

    • 按一下「新增音量」
    • 在「Volume type」下拉式選單中,選取 Cloud Storage bucket 做為音量類型。
    • 在「音量名稱」欄位中,輸入要使用的音量名稱。
    • 瀏覽並選取要用於磁碟區的 Cloud Storage 值區,或視需要建立新的值區。
    • 如要將資料集設為唯讀,請選取「唯讀」核取方塊。
    • 按一下 [完成]
    • 按一下「Container」分頁標籤:
      • 按一下「Volume Mounts」分頁標籤。
      • 按一下「掛接磁碟區」
      • 從選單中選取儲存空間磁碟區。
      • 指定要掛接磁碟區的路徑。
      • 然後按一下 [完成]
  5. 按一下 [Create] (建立) 或 [Deploy] (部署)

gcloud

  • 如要新增磁碟區並掛載,請按照下列步驟操作:

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

    取代:

    • SERVICE 改為您的服務名稱。
    • MOUNT_PATH 與掛接磁碟區的相對路徑,例如 /mnt/my-volume
    • VOLUME_NAME 替換為您要為磁碟區取的任何名稱。VOLUME_NAME 值用於將磁碟區對應至磁碟區掛載點。
    • BUCKET_NAME 改成 Cloud Storage 值區名稱。
  • 如要將磁碟區掛接為唯讀磁碟區,請按照下列步驟操作:

    --add-volume=name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,readonly=true
  • 如果您使用多個容器,請先指定磁碟區,再指定每個容器的磁碟區掛載:

    gcloud run services update SERVICE \
    --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. 如果您要建立新服務,請略過這個步驟。如果您要更新現有服務,請下載其 YAML 設定

    gcloud run services describe SERVICE --format export > service.yaml
  2. 視需要更新。

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

    取代

    • IMAGE_URL 與容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/hello:latest。如果您使用的是 Artifact Registry,則必須先建立存放區 REPO_NAME。網址的形狀為 LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • MOUNT_PATH 與掛接磁碟區的相對路徑,例如 /mnt/my-volume
    • VOLUME_NAME 替換為您要為磁碟區取的任何名稱。VOLUME_NAME 值用於將磁碟區對應至磁碟區掛載點。
    • IS_READ_ONLY 搭配 True 可將資料夾設為唯讀,搭配 False 則可允許寫入。
    • BUCKET_NAME 與 Cloud Storage 值區名稱。
  3. 使用下列指令建立或更新服務:

    gcloud run services replace service.yaml

Terraform

如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

將下列內容新增至 Terraform 設定中的 google_cloud_run_v2_service 資源:

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

    template {
      containers {
        image = "IMAGE_URL"
        volume_mounts {
          name = "VOLUME_NAME"
          mount_path = "MOUNT_PATH"
        }
      }

      volumes {
        name = "VOLUME_NAME"
        gcs {
          bucket = google_storage_bucket.default.name
          read_only = IS_READ_ONLY
        }
      }
    }
  }

  resource "google_storage_bucket" "default" {
    name     = "BUCKET_NAME"
    location = "REGION"
  }

取代:

  • SERVICE 改為 Cloud Run 服務名稱。
  • REGION 替換為 Google Cloud 區域。
  • IMAGE_URL 與容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/hello:latest。如果您使用的是 Artifact Registry,則必須先建立存放區 REPO_NAME。網址的形狀為 LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  • VOLUME_NAME 替換為您要為磁碟區取的任何名稱。VOLUME_NAME 值用於將音量對應至音量掛載點。
  • MOUNT_PATH 與掛載音量所在的相對路徑,例如 /mnt/my-volume
  • IS_READ_ONLY 搭配 True 可將音量設定為唯讀,或搭配 False 可允許寫入。
  • BUCKET_NAME 與 Cloud Storage 值區名稱。

讀取及寫入磁碟映像檔

如果您使用 Cloud Run 掛載磁碟功能,您可以使用程式設計語言中的相同程式庫存取已掛載的磁碟,就像在本機檔案系統上讀取及寫入檔案一樣。

如果您使用的是預期資料會儲存在本機檔案系統的現有容器,並使用一般檔案系統作業存取資料,這個選項就特別實用。

以下程式碼片段假設已將 mountPath 設為 /mnt/my-volume 的磁碟機掛載。

NodeJS

使用檔案系統模組建立新檔案,或在磁碟區 /mnt/my-volume 中附加現有檔案:

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

Python

寫入儲存在磁碟區 /mnt/my-volume 中的檔案:

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

Go

使用 os 套件,在磁碟區 /mnt/my-volume 中建立新檔案

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

Java

使用 Java.io.File 類別在 /mnt/my-volume 磁碟機中建立記錄檔:

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

使用掛接選項設定磁碟區

您可以選擇使用掛載選項,設定掛載點的各種屬性。可用的掛接選項可讓您設定快取設定、掛接特定目錄、啟用偵錯記錄等行為。

指定掛載選項

您可以使用 Google Cloud CLI、YAML 或 Terraform 指定掛載選項

gcloud

如要新增磁碟區並使用掛接選項掛接磁碟區,請按照下列步驟操作:

gcloud beta run services update SERVICE \
    --execution-environment gen2 \
    --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

取代:

  • SERVICE 改為您的服務名稱。
  • VOLUME_NAME 替換為您要為磁碟區取的任何名稱。VOLUME_NAME 值用於將磁碟區對應至磁碟區掛載點。
  • BUCKET_NAME 改成 Cloud Storage 值區名稱。
  • OPTION_1 與第一個掛載選項。請注意,您可以指定任意數量的掛載選項,每個掛載選項和值組合之間以分號分隔。
  • VALUE_1 與第一個掛載選項的所需設定。
  • OPTION_N 與第二個掛載選項。
  • VALUE_N 與第二個掛載選項的設定。
  • MOUNT_PATH 與掛接磁碟區的相對路徑,例如 /cache

YAML

  1. 如果您要建立新服務,請略過這個步驟。如果您要更新現有服務,請下載其 YAML 設定

    gcloud run services describe SERVICE --format export > service.yaml
  2. 視需要更新。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/execution-environment: gen2
        spec:
          containers:
          - image: IMAGE_URL
            volumeMounts:
            - name: VOLUME_NAME
              mountPath: MOUNT_PATH
          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

    取代

    • IMAGE_URL 與容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/hello:latest。如果您使用的是 Artifact Registry,則必須先建立存放區 REPO_NAME。網址的形狀為 LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • MOUNT_PATH 與掛接磁碟區的相對路徑,例如 /cache
    • VOLUME_NAME 替換為您要為磁碟區取的任何名稱。VOLUME_NAME 值用於將磁碟區對應至磁碟區掛載點。
    • IS_READ_ONLY 搭配 True 可將資料夾設為唯讀,搭配 False 則可允許寫入。
    • BUCKET_NAME 與 Cloud Storage 值區名稱。
    • OPTION_1 與第一個掛載選項。請注意,您可以視需要指定任意數量的掛載選項,每個掛載選項和值組合都以半形逗號分隔。
    • VALUE_1 與第一個掛載選項的所需設定。
    • OPTION_N 與第二個掛載選項。
    • VALUE_N 與第二個掛載選項的設定。
  3. 使用下列指令建立或更新服務:

    gcloud run services replace service.yaml

Terraform

如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

將下列內容新增至 Terraform 設定中的 google_cloud_run_v2_service 資源:

  resource "google_cloud_run_v2_service" "default" {
    provider = google-beta
    name     = "SERVICE"
    location = "REGION"

    template {
      containers {
        image = "IMAGE_URL"
        volume_mounts {
          name = "VOLUME_NAME"
          mount_path = "MOUNT_PATH"
        }
      }

      volumes {
        name = "VOLUME_NAME"
        gcs {
            bucket = google_storage_bucket.default.name
            read_only = IS_READ_ONLY
            mount_options = ["OPTION_1=VALUE_1", "OPTION_N=VALUE_N", "OPTION_O"]
        }
      }
    }
  }

取代:

  • SERVICE 改為 Cloud Run 服務名稱。
  • REGION 替換為 Google Cloud 區域。
  • IMAGE_URL 與容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/hello:latest。如果您使用的是 Artifact Registry,則必須先建立存放區 REPO_NAME。網址的形狀為 LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  • VOLUME_NAME 替換為您要為磁碟區取的任何名稱。VOLUME_NAME 值用於將音量對應至音量掛載點。
  • MOUNT_PATH 與掛載音量所在的相對路徑,例如 /mnt/my-volume
  • IS_READ_ONLY 搭配 True 可將音量設定為唯讀,或搭配 False 可允許寫入。
  • BUCKET_NAME 與 Cloud Storage 值區名稱。
  • OPTION_1 與第一個掛載選項。請注意,您可以視需要指定任意數量的掛載選項,每個掛載選項和值組合都以半形逗號分隔。
  • VALUE_1 與第一個掛載選項的所需設定。
  • OPTION_N 與第二個掛載選項 (如有)。
  • VALUE_N 與第二個掛載選項的設定。
  • OPTION_O 與第三個掛載選項 (如適用)。部分掛載選項沒有值。

常用的掛載選項

掛載選項通常用於設定快取設定、只掛載 Cloud Storage 值區中的特定目錄、設定磁碟區的擁有權 (uidgid)、關閉隱含目錄,或指定偵錯記錄層級。

設定快取設定

您可以設定快取相關的掛載選項,變更磁碟區的快取設定。下表列出這些設定,以及預設的 Cloud Run 值:

快取設定 說明 預設
metadata-cache-ttl-secs 快取中繼資料項目的存留時間 (以秒為單位)。例如,metadata-cache-ttl-secs=120s。如要使用最新的檔案,請指定 0 值。如要一律使用快取版本,請指定 -1 值。詳情請參閱「設定快取撤銷功能」。 60
stat-cache-max-size-mb 統計快取可使用的最大大小 (以 MiB 為單位)。統計快取一律會保留在記憶體中,這會影響記憶體用量。如果工作負載涉及的檔案數量上限為 20,000 個,請指定 32 的值。如果工作負載超過 20,000 個檔案,請以 10 的值為單位,每增加 6,000 個檔案就增加大小,其中統計快取會使用每個檔案平均 1,500 MiB 的記憶體。

如要讓統計快取視需要使用記憶體,也就是不設定限制,請指定 -1 的值。如要停用統計資料快取,請指定 0 值。
32
type-cache-max-size-mb 類型快取可使用的目錄大小上限 (以 MiB 為單位)。類型快取一律會保留在記憶體中,這會影響記憶體用量。

如果要掛載的儲存桶中單一目錄內的檔案數量上限為 20,000 個以下,請指定 4 的值。如果您要掛載的單一目錄中含有超過 20,000 個檔案,請將值增加 1,每增加 5,000 個檔案就增加 1,也就是每個檔案平均約 200 個位元組。

如要讓類型快取使用所需的記憶體,也就是不指定上限,請指定 -1 值。

如要停用類型快取,請指定 0 值。
4

下列 Google Cloud CLI 指令會將 metadata-cache-ttl-secs 設為 120 秒,並將統計資料和類型快取容量分別增加至 527 MiB:

gcloud beta run services update SERVICE \
    --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

啟用偵錯記錄功能

根據預設,Cloud Storage FUSE 會記錄嚴重性為 Info 的事件。您可以使用下列任一記錄嚴重性掛接選項變更記錄設定:

  • trace
  • debug
  • info
  • warning
  • error
  • 如要關閉所有記錄,請指定 off 值。

這些嚴重性等級依嚴重程度由低至高排序。指定嚴重性等級後,Cloud Storage FUSE 會針對嚴重性等級等於或高於指定嚴重性的事件產生記錄檔。舉例來說,如果您指定 warning 層級,Cloud Storage FUSE 就會產生警告和錯誤記錄。

將記錄嚴重性設為 info 以上的層級可能會影響效能並產生大量記錄資料,因此建議您只在必要時才這麼做。

下列指令列會啟用偵錯記錄:

gcloud beta run services update SERVICE \
    --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

停用隱含的目錄

為了讓 Cloud Storage 更像標準檔案系統,Cloud Run 會在掛接 Cloud Storage 值區時,預設啟用隱含目錄。您可以使用 implicit-dirs 掛載選項關閉隱含目錄。停用隱含目錄可改善效能和成本,但會影響相容性。

隱含目錄功能可讓 Cloud Run 辨識現有的 Cloud Storage 檔案,這些檔案的檔案名稱會模仿目錄結構,例如 /mydir/myfile.txt。如果停用隱含目錄,Cloud Run 就無法列出或讀取這類檔案。

關閉隱含目錄可減少對 Cloud Storage 的請求次數,進而改善應用程式效能和成本。如需進一步瞭解,請參閱 Cloud Storage FUSE 的「檔案和目錄」說明文件。

下列指令列會停用隱含目錄:

gcloud beta run services update SERVICE \
    --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

在 Cloud Storage 值區中掛載特定目錄

根據預設,Cloud Run 會掛載整個 Cloud Storage 值區,讓 Cloud Run 服務存取所有內容。在某些情況下,您可能只想掛接特定目錄。舉例來說,如果值區包含大量檔案,掛載特定目錄就能提升效能。

另一個例子是為了隔離目的,您需要讓不同的服務存取儲存空間值區中的不同目錄。

下列指令列會指定要掛載的目錄:

gcloud beta run services update SERVICE \
    --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

設定音量 UIDGID

使用 uidgid 掛載選項,變更磁碟區的使用者 ID 和群組 ID。如果您想將檔案的擁有權設為特定使用者或群組,以便與一或多個執行中的容器身分相符,這項功能就很實用。根據預設,磁碟區由 root 擁有。

下列指令列會設定 uidgid

gcloud beta run services update SERVICE \
    --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

設定其他掛載選項

以下是 Cloud Run 支援的所有掛載選項完整清單。

目錄

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

偵錯

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

快取

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

權限

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

其他

  • 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

如需支援的掛載選項完整說明文件,請參閱 Cloud Storage FUSE 指令列掛載選項

查看磁碟區掛接設定

控制台

  1. 在 Google Cloud 控制台中,前往「Cloud Run」服務頁面:

    前往 Cloud Run

  2. 在服務清單中按一下您有興趣的服務,開啟「Service details」(服務詳細資料) 頁面。

  3. 按一下「Volumes」分頁標籤。

  4. 在磁碟區詳細資料頁面中找出「磁碟區掛接」設定。

gcloud

  1. 使用下列指令:

    gcloud run services describe SERVICE_NAME
  2. 在傳回的設定中找出「磁碟區掛接」設定。

改善 Cloud Storage FUSE 網路頻寬效能

為提升讀取和寫入效能,請使用直接虛擬私有雲將 Cloud Run 服務連線至虛擬私有雲網路,並將所有輸出流量轉送至虛擬私有雲網路。您可以使用下列任一選項執行此操作:

容器啟動時間和 Cloud Storage FUSE 掛載

使用 Cloud Storage FUSE 可能會稍微增加 Cloud Run 容器的冷啟動時間,因為系統會先掛載卷,再啟動容器。只有在 Cloud Storage FUSE 成功掛載時,容器才會啟動。

請注意,Cloud Storage FUSE 必須先與 Cloud Storage 建立連線,才能成功掛載磁碟區。任何網路延遲都可能影響容器啟動時間。相應地,如果連線嘗試失敗,Cloud Storage FUSE 就會無法掛載,Cloud Run 服務也會無法啟動。此外,如果 Cloud Storage FUSE 掛載時間超過 30 秒,Cloud Run 服務就會啟動失敗,因為 Cloud Run 執行所有掛載作業的總時限為 30 秒。

Cloud Storage FUSE 效能特徵

如果您定義兩個磁區,且每個磁區都指向不同的值區,系統就會啟動兩個 Cloud Storage FUSE 程序。掛載和處理程序會同時發生。

使用 Cloud Storage FUSE 的作業會受到網路頻寬的影響,因為 Cloud Storage FUSE 會使用 Cloud Storage API 與 Cloud Storage 通訊。如果網路頻寬偏低,某些作業 (例如列出資料夾內容) 可能會變慢。同樣地,讀取大型檔案也需要時間,因為這也會受到網路頻寬的限制。

當您寫入值區時,Cloud Storage FUSE 會在記憶體中完整排程物件。也就是說,寫入大型檔案時,會受到容器執行個體可用的記憶體量限制 (容器記憶體上限為 32 GiB)。

只有在您執行 closefsync 時,寫入作業才會刷新至值區:系統會將完整物件上傳/重新上傳至值區。物件會完全重新上傳至值區的唯一例外狀況,是當檔案大小為 2 MiB 或更大時,且檔案含有附加內容。

詳情請參閱下列資源:

清除及移除磁碟區和磁碟區掛接

您可以清除所有磁區和磁區掛載點,也可以移除個別磁區和磁區掛載點。

清除所有磁碟區和磁碟區掛載

如要清除單一容器服務中的所有磁碟區和磁碟區掛載,請執行下列指令:

gcloud run services update SERVICE \
    --clear-volumes
    --clear-volume-mounts

如果您有多個容器,請按照 sidecars CLI 慣例清除磁碟區和磁碟區掛載:

gcloud run services update SERVICE \
    --container=container1 \
    --clear-volumes
    -–clear-volume-mounts \
    --container=container2 \
    --clear-volumes \
    -–clear-volume-mounts

移除個別磁碟區和磁碟區掛載

如要移除磁碟區,您也必須移除使用該磁碟區的所有磁碟區掛接點。

如要移除個別磁碟區或磁碟區掛接,請使用 remove-volumeremove-volume-mount 旗標:

gcloud run services update SERVICE \
    --remove-volume VOLUME_NAME \
    --container=container1 \
    --remove-volume-mount MOUNT_PATH \
    --container=container2 \
    --remove-volume-mount MOUNT_PATH