本文僅適用於標準叢集。
本文說明如何使用 GKE Pod 快照儲存執行中的 Agent Sandbox 環境狀態。
代理程式沙箱提供安全且獨立的環境,可執行不受信任的程式碼,例如大型語言模型 (LLM) 生成的程式碼。直接在叢集中執行這類程式碼會造成安全風險,因為不受信任的程式碼可能會存取或干擾其他應用程式,或底層叢集節點本身。
您可以透過 GKE Pod 快照儲存及還原沙箱環境的狀態。這項功能有以下優點:
- 快速啟動:從預先暖機的快照還原,縮短沙箱啟動時間。
- 長時間執行的代理程式:暫停長時間執行的沙箱,稍後再繼續執行,或將沙箱移至其他節點,進度不會遺失。
- 有狀態的工作負載:儲存及還原沙箱環境的狀態,藉此保留代理程式的脈絡,例如對話記錄或中繼計算。
- 可重現性:擷取特定狀態,並以該狀態為基礎,啟動多個具有相同初始狀態的新沙箱。
你可以透過兩種方式觸發快照:
- 手動觸發:您建立
PodSnapshotManualTrigger資源來觸發快照。 - 工作負載觸發條件:沙箱應用程式本身會發出信號,表示已準備好儲存。
本文說明如何手動觸發快照。
注意:GKE Pod 快照是預先發布功能。
事前準備
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Google Kubernetes Engine, Cloud Storage, Identity and Access Management (IAM) APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
In the Google Cloud console, activate Cloud Shell.
需求條件
如要使用 GKE Pod 快照,您需要執行 GKE 1.34.1-gke.3084001 以上版本的 Standard 模式叢集。建議使用 GKE 1.35 以上版本。GKE 1.34 版有已知問題,檢查點可能會因與 Cloud Storage 權限錯誤相關的輸入/輸出錯誤而失敗。
Pod 快照不支援 E2 機器類型。因此,本教學課程會建立由 N2 機器組成的節點集區。
如要在節點集區的節點中使用以 GPU 為基礎的機器類型,請參閱「限制和需求」。
定義環境變數
如要簡化本文中執行的指令,可以在 Cloud Shell 中設定環境變數。這些變數會儲存專案 ID、用於儲存快照的 Cloud Storage bucket 名稱,以及 GKE 叢集位置等值。 Google Cloud
定義這些變數後,您就可以重複使用這些變數,方法是參照變數名稱 (例如
$CLUSTER_NAME),而不必每次都重新輸入或替換值。這種做法可簡化程序,並降低出錯風險。如要在 Cloud Shell 中定義下列實用的環境變數,請執行下列指令:
export PROJECT_ID=$(gcloud config get project) export CLUSTER_NAME="agent-sandbox-cluster" export GKE_LOCATION="us-central1" export GKE_VERSION="1.35.0-gke.1795000" export AGENT_SANDBOX_VERSION="v0.1.0" export NODE_POOL_NAME="agent-sandbox-node-pool" export MACHINE_TYPE="n2-standard-2" export SNAPSHOTS_BUCKET_NAME="agent-sandbox-snapshots-${PROJECT_ID}" export SNAPSHOT_NAMESPACE="pod-snapshots-ns" export SNAPSHOT_KSA_NAME="pod-snapshot-sa" export SNAPSHOT_FOLDER="my-snapshots" export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")這些環境變數的說明如下:
PROJECT_ID:目前 Google Cloud 專案的 ID。定義這個變數可確保所有資源 (例如 GKE 叢集) 都是在正確的專案中建立。CLUSTER_NAME:GKE 叢集的名稱 (例如agent-sandbox-cluster)。GKE_LOCATION:要建立 GKE 叢集的 Google Cloud 區域 (例如us-central1)。GKE_VERSION:與 Pod 快照相容的 GKE 叢集和節點版本。GKE Pod 快照需要 GKE 1.34.1-gke.3084001 以上版本。AGENT_SANDBOX_VERSION:要部署至叢集的 Agent Sandbox 控制器版本。NODE_POOL_NAME:將執行沙箱化工作負載的節點集區名稱 (例如agent-sandbox-node-pool)。MACHINE_TYPE:節點集區中節點的機型 (例如n2-standard-2)。Pod 快照不支援 E2 機型。如要為節點集區中的節點使用以 GPU 為基礎的機器類型,請參閱「限制和需求」。如要瞭解不同機器系列,以及如何選擇不同選項,請參閱「機器家族資源與比較指南」。SNAPSHOTS_BUCKET_NAME:您將建立的 Cloud Storage bucket 名稱,用於儲存快照。SNAPSHOT_NAMESPACE:快照工作負載和服務帳戶所在的 Kubernetes 命名空間。SNAPSHOT_KSA_NAME:工作負載用於驗證的 Kubernetes 服務帳戶名稱。SNAPSHOT_FOLDER:Cloud Storage bucket 內的目錄,用於整理快照。PROJECT_NUMBER:專案的專屬數字 ID,用於 IAM 權限繫結。
設定步驟總覽
如要啟用 Agent Sandbox 環境的 Pod 快照,請執行一些設定步驟。如要瞭解這些步驟,建議您先瞭解幾個重要概念,然後再瞭解快照程序:
基本概念
- 環境:沙箱化應用程式會在 GKE 叢集節點的 Kubernetes Pod 內執行。
- 身分:Pod 會與 Kubernetes 服務帳戶建立關聯,並在您建立的特殊命名空間中執行。Kubernetes 服務帳戶和命名空間會共同形成專屬身分,用於授予 Pod 資源的安全存取權。 Google Cloud
- 權限:如要允許將快照儲存至 Cloud Storage,必須授予 Pod 身分特定 IAM 權限,允許其寫入 Cloud Storage 值區。
快照程序
- 觸發條件:手動 (外部) 或由沙箱化工作負載本身啟動快照。本文示範手動觸發程序,也就是透過建立
PodSnapshotManualTrigger資源來啟動程序。 - 擷取:GKE 會擷取 Pod 的執行狀態,例如 Pod 的記憶體和檔案系統狀態。
- 上傳:GKE 會使用授予 Pod Kubernetes 服務帳戶的權限,將擷取的狀態以快照檔案的形式上傳至指定的 Cloud Storage 值區。
如要進一步瞭解 GKE 如何使用 Kubernetes 服務帳戶和 IAM 角色存取 Google Cloud 資源,請參閱「從 GKE 工作負載向 API 進行驗證 Google Cloud 」。
如要啟用 Agent Sandbox 環境的 Pod 快照,請進行下列設定。首先,請建立 GKE 叢集,並啟用 Workload Identity Federation for GKE 和 Pod 快照功能,準備叢集環境。接著,您將設定 Cloud Storage 和 IAM 政策,確保快照安全儲存,且沙箱具備必要權限。最後,您會建立快照資源,指定沙箱的儲存位置和政策。
下表彙整了您需要執行的設定步驟,後續章節將說明每個步驟:
叢集設定
沙箱化應用程式會在 GKE 叢集節點的 Pod 內執行,因此您需要設定叢集環境。本節說明如何建立 GKE 叢集,以及部署 Agent Sandbox 控制器。
建立 GKE 叢集
建立 GKE Standard 叢集。這個叢集提供 Kubernetes 環境,您將在其中建立 Agent Sandbox 環境的快照。下列指令會建立叢集,並啟用 GKE 的 Workload Identity 聯盟和 Pod 快照功能:
如要使用 Google Cloud CLI 建立標準叢集,請執行下列指令:
gcloud beta container clusters create ${CLUSTER_NAME} \ --location=${GKE_LOCATION} \ --cluster-version=${GKE_VERSION} \ --workload-pool=${PROJECT_ID}.svc.id.goog \ --workload-metadata=GKE_METADATA \ --num-nodes=1 \ --enable-pod-snapshots除了建立叢集,這個指令還會為叢集啟用 GKE 的 Workload Identity Federation 和 Pod 快照功能。
擷取叢集憑證,讓
kubectlCLI 可以連線至叢集。這項指令會更新 Kubernetes 設定檔,該檔案預設儲存在~/.kube/config目錄中。這個設定檔包含kubectl與 GKE 叢集互動所需的憑證:gcloud container clusters get-credentials ${CLUSTER_NAME} \ --location=${GKE_LOCATION}建立啟用 gVisor 的節點集區:
gcloud container node-pools create ${NODE_POOL_NAME} \ --cluster=${CLUSTER_NAME} \ --location=${GKE_LOCATION} \ --machine-type=${MACHINE_TYPE} \ --node-version=${GKE_VERSION} \ --image-type=cos_containerd \ --num-nodes=1 \ --sandbox type=gvisor這個指令使用下列主要標記:
--image-type=cos_containerd:指定節點使用含有 containerd 的 Container-Optimized OS。--sandbox type=gvisor:在節點上啟用 gVisor 沙箱技術,這是 Agent Sandbox 的必要條件。
將 Agent Sandbox Controller 部署至叢集
您可以將正式發布的資訊清單套用至叢集,部署 Agent Sandbox 控制器及其必要元件。這些資訊清單是設定檔,可指示 Kubernetes 下載在叢集上部署及執行 Agent Sandbox 控制器所需的所有必要元件。
如要將 Agent Sandbox 部署至 GKE 叢集,請執行下列指令:
# Apply the main manifest for the controller and its Custom Resource Definitions (CRDs) kubectl apply \ -f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/${AGENT_SANDBOX_VERSION}/manifest.yaml \ -f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/${AGENT_SANDBOX_VERSION}/extensions.yaml驗證控制器
套用資訊清單後,請檢查 Agent Sandbox 控制器 Pod 是否在
agent-sandbox-system命名空間中正確執行。您在上一個步驟中套用資訊清單時,系統會自動建立agent-sandbox-system命名空間。kubectl get pods -n agent-sandbox-system等待 Pod 在「STATUS」(狀態) 欄中顯示「Running」(執行中),並在「READY」(就緒) 欄中顯示「1/1」。如果 Pod 正常運作,輸出內容會類似以下內容:
NAME READY STATUS RESTARTS AGE agent-sandbox-controller-0 1/1 Running 0 44d現在 Agent Sandbox 控制器正在執行,因此可以自動為您在叢集中建立的任何
Sandbox資源,建立及管理沙箱環境。設定儲存空間和權限
本節說明如何設定 Pod 快照所需的儲存空間和權限。您會建立 Cloud Storage bucket 和受管理資料夾,以儲存快照資料。接著,您會授予沙箱和快照控制器存取該儲存空間所需的權限。
建立 Cloud Storage 值區
建立 bucket 來儲存快照。為確保快照程序快速且經濟實惠,建議您使用下列設定建立 bucket:
- 啟用階層結構式命名空間:階層結構式命名空間功能會將值區整理成檔案系統階層,而非平面命名空間。這項設定可提高讀寫輸送量,因此能加快儲存及還原快照的速度。
- 停用虛刪除功能:虛刪除功能會保留已刪除的檔案一段時間,藉此保護資料。不過,在上傳期間,快照程序會建立及刪除許多暫存檔案。建議您停用虛刪除功能,避免因儲存這些暫時性檔案而產生不必要的費用。
如要使用這些設定建立 bucket,請執行下列指令:
gcloud storage buckets create "gs://${SNAPSHOTS_BUCKET_NAME}" \ --uniform-bucket-level-access \ --enable-hierarchical-namespace \ --soft-delete-duration=0d \ --location="${GKE_LOCATION}"建立代管資料夾
建立受管理資料夾,在值區中整理快照。透過受管理資料夾,您可以將 IAM 權限套用至特定資料夾,而非整個 bucket。這項資料夾層級的存取權會限制沙箱只能存取自己的快照,並將這些快照與值區中的其他資料隔離。
如要建立受管理資料夾,請執行下列指令:
gcloud storage managed-folders create "gs://${SNAPSHOTS_BUCKET_NAME}/${SNAPSHOT_FOLDER}/"設定服務帳戶和 IAM 角色
如要允許 GKE 安全地儲存快照,執行沙箱工作負載的 Pod 所用 Kubernetes 服務帳戶,必須具備寫入 bucket 的權限。如要授予這項權限,請將 IAM 角色繫結至 Pod 使用的 Kubernetes 服務帳戶。 Google Cloud本節說明如何建立自訂 IAM 角色、建立 Kubernetes 服務帳戶,以及設定必要權限。
建立名為
podSnapshotGcsReadWriter的自訂 IAM 角色,並授予寫入快照資料所需的權限:gcloud iam roles create podSnapshotGcsReadWriter \ --project="${PROJECT_ID}" \ --permissions="storage.objects.get,storage.objects.create,storage.objects.delete,storage.folders.create"角色建立成功後,輸出內容如下所示:
Created role [podSnapshotGcsReadWriter]. etag: BwZJUfjNbew= includedPermissions: - storage.folders.create - storage.objects.create - storage.objects.delete - storage.objects.get name: projects/${PROJECT_ID}/roles/podSnapshotGcsReadWriter stage: ALPHA title: podSnapshotGcsReadWriter建立沙箱及其服務帳戶所在的命名空間:
kubectl create namespace "${SNAPSHOT_NAMESPACE}"在您剛建立的命名空間中,建立 Kubernetes 服務帳戶。Kubernetes 服務帳戶和命名空間會共同形成專屬身分,用於授予沙箱對 Google Cloud 資源的安全存取權:
kubectl create serviceaccount "${SNAPSHOT_KSA_NAME}" \ --namespace "${SNAPSHOT_NAMESPACE}"將
roles/storage.bucketViewer角色授予命名空間中的所有服務帳戶。這個角色可讓帳戶檢視值區的中繼資料,但無法讀取或寫入資料本身:gcloud storage buckets add-iam-policy-binding "gs://${SNAPSHOTS_BUCKET_NAME}" \ --member="principalSet://iam.googleapis.com/projects/${PROJECT_NUMBER}/locations/global/workloadIdentityPools/${PROJECT_ID}.svc.id.goog/namespace/${SNAPSHOT_NAMESPACE}" \ --role="roles/storage.bucketViewer"將自訂
podSnapshotGcsReadWriter角色授予沙箱的 Kubernetes 服務帳戶。這項繫結只允許這個特定帳戶將資料寫入受管理資料夾:gcloud storage buckets add-iam-policy-binding "gs://${SNAPSHOTS_BUCKET_NAME}" \ --member="principal://iam.googleapis.com/projects/${PROJECT_NUMBER}/locations/global/workloadIdentityPools/${PROJECT_ID}.svc.id.goog/subject/ns/${SNAPSHOT_NAMESPACE}/sa/${SNAPSHOT_KSA_NAME}" \ --role="projects/${PROJECT_ID}/roles/podSnapshotGcsReadWriter"將
roles/storage.objectUser角色授予 Kubernetes 服務帳戶。Pod 快照代理程式必須具備這個角色,才能對受管理資料夾執行作業:gcloud storage buckets add-iam-policy-binding "gs://${SNAPSHOTS_BUCKET_NAME}" \ --member="principal://iam.googleapis.com/projects/${PROJECT_NUMBER}/locations/global/workloadIdentityPools/${PROJECT_ID}.svc.id.goog/subject/ns/${SNAPSHOT_NAMESPACE}/sa/${SNAPSHOT_KSA_NAME}" \ --role="roles/storage.objectUser"
授予快照控制器權限
將
objectUser角色授予 GKE 系統的快照控制器。這項權限可讓控制器管理快照生命週期,例如在刪除PodSnapshot資源時刪除快照物件:gcloud storage buckets add-iam-policy-binding "gs://${SNAPSHOTS_BUCKET_NAME}" \ --member="serviceAccount:service-${PROJECT_NUMBER}@container-engine-robot.iam.gserviceaccount.com" \ --role="roles/storage.objectUser"設定快照資源
本節說明如何為 Agent Sandbox 工作負載設定快照資源。
定義快照儲存空間和規則
如要指定 GKE 儲存快照的位置,以及管理快照程序的規則,請建立兩項自訂資源:
PodSnapshotStorageConfig:這個資源會指定 Cloud Storage bucket 和資料夾位置,GKE 會將快照檔案儲存於此。PodSnapshotPolicy:這個資源會根據 Pod 的 Kubernetes 標籤,定義哪些 Pod 符合快照資格。此外,這項設定也會指定觸發規則,例如快照是手動建立,還是由沙箱工作負載啟動。
如要一次套用這兩項資源,請在 Cloud Shell 中執行下列指令。這個方法有助於確保環境變數正確注入:
kubectl apply -f - <<EOF apiVersion: podsnapshot.gke.io/v1alpha1 kind: PodSnapshotStorageConfig metadata: name: cpu-pssc-gcs spec: snapshotStorageConfig: gcs: bucket: "${SNAPSHOTS_BUCKET_NAME}" path: "${SNAPSHOT_FOLDER}" EOF sleep 5 kubectl apply -f - <<EOF apiVersion: podsnapshot.gke.io/v1alpha1 kind: PodSnapshotPolicy metadata: name: cpu-psp namespace: ${SNAPSHOT_NAMESPACE} spec: storageConfigName: cpu-pssc-gcs selector: matchLabels: app: agent-sandbox-workload triggerConfig: type: manual postCheckpoint: resume EOF驗證設定
套用快照儲存空間設定和政策後,請確認資源是否可供使用。本節說明如何檢查這些自訂資源的狀態。
檢查
PodSnapshotStorageConfig資源的狀態:kubectl get podsnapshotstorageconfigs.podsnapshot.gke.io cpu-pssc-gcs \ --namespace "${SNAPSHOT_NAMESPACE}" -o yaml輸出內容應包含
type: Ready和status: "True"的條件:status: conditions: - lastTransitionTime: "2025-10-31T18:18:02Z" message: Valid PodSnapshotStorageConfig reason: StorageConfigValid status: "True" type: Ready檢查
PodSnapshotPolicy資源的狀態:kubectl get podsnapshotpolicies.podsnapshot.gke.io cpu-psp \ --namespace "${SNAPSHOT_NAMESPACE}" -o yaml輸出內容應包含
type: Ready和status: "True"的條件。也應指出找到參照PodSnapshotStorageConfig的位置:status: conditions: - lastTransitionTime: "2025-10-31T18:19:47Z" message: The referenced PodSnapshotStorageConfig "cpu-pssc-gcs" was found reason: StorageConfigValid status: "True" type: Ready
建立沙箱範本
儲存空間政策和權限設定完成後,請建立
SandboxTemplate和SandboxClaim資源。如要順利執行快照程序,沙箱必須使用您在本文件稍早建立的 Kubernetes 服務帳戶。沙箱也必須有您先前在PodSnapshotPolicy中指定的標籤。本範例使用 Python 應用程式,將遞增計數器列印至記錄檔。這個計數器可讓您確認狀態是否已成功儲存,並在稍後還原。
如要建立
SandboxTemplate和SandboxClaim資源,請套用下列資訊清單:kubectl apply -f - <<EOF --- apiVersion: extensions.agents.x-k8s.io/v1alpha1 kind: SandboxTemplate metadata: name: python-runtime-template namespace: ${SNAPSHOT_NAMESPACE} spec: podTemplate: metadata: labels: app: agent-sandbox-workload spec: serviceAccountName: ${SNAPSHOT_KSA_NAME} runtimeClassName: gvisor containers: - name: my-container image: python:3.10-slim command: ["python3", "-c"] args: - | import time i = 0 while True: print(f"Count: {i}", flush=True) i += 1 time.sleep(1) --- apiVersion: extensions.agents.x-k8s.io/v1alpha1 kind: SandboxClaim metadata: name: python-sandbox-example namespace: ${SNAPSHOT_NAMESPACE} labels: app: agent-sandbox-workload spec: sandboxTemplateRef: name: python-runtime-template EOF沙箱現在會使用正確的身分執行,可隨時建立快照。
建立快照
本節說明如何手動觸發執行中沙箱的快照。建立以沙箱 Pod 為目標的觸發程序資源,然後確認快照程序是否順利完成。
檢查初始計數器記錄:觸發快照前,請查看執行中沙箱的記錄,瞭解目前的計數器值。查看記錄可建立基準,以便在還原後進行比較。
kubectl logs python-sandbox-example --namespace "${SNAPSHOT_NAMESPACE}" --tail=5輸出內容會顯示計數器的最後幾行,例如:
Count: 15 Count: 16 Count: 17請注意最後幾個列印的「Count」值。
建立 PodSnapshotManualTrigger 資源:啟動快照:
kubectl apply -f - <<EOF apiVersion: podsnapshot.gke.io/v1alpha1 kind: PodSnapshotManualTrigger metadata: name: cpu-snapshot-trigger namespace: ${SNAPSHOT_NAMESPACE} spec: targetPod: python-sandbox-example EOF確認手動觸發作業是否成功:
kubectl get podsnapshotmanualtriggers.podsnapshot.gke.io \ --namespace "${SNAPSHOT_NAMESPACE}"輸出內容應會顯示
Complete狀態,表示 GKE 已順利觸發目標 Pod 的快照:NAME TARGET POD STATUS AGE cpu-snapshot-trigger python-sandbox-example Complete XXs描述觸發條件,進一步瞭解擷取的狀態:
kubectl describe podsnapshotmanualtriggers.podsnapshot.gke.io cpu-snapshot-trigger \ --namespace "${SNAPSHOT_NAMESPACE}"輸出內容會包含
Snapshot Created專區,其中列出儲存在值區中的快照檔案專屬名稱:Status: Conditions: Last Transition Time: 2026-01-30T19:11:04Z Message: checkpoint completed successfully Reason: Complete Status: True Type: Triggered Observed Generation: 1 Snapshot Created: Name: <UNIQUE_SNAPSHOT_NAME>
從快照還原
擷取快照後,您可以還原沙箱環境,從儲存的狀態繼續執行。如要還原沙箱,請建立參照原始
SandboxTemplate的新SandboxClaim。Pod 快照控制器會自動識別並還原最新的相符快照。建立新的
SandboxClaim,以還原沙箱:kubectl apply -f - <<EOF apiVersion: extensions.agents.x-k8s.io/v1alpha1 kind: SandboxClaim metadata: name: python-sandbox-from-snapshot namespace: ${SNAPSHOT_NAMESPACE} labels: app: agent-sandbox-workload spec: sandboxTemplateRef: name: python-runtime-template EOF查看記錄,確認是否已還原。請注意,計數器會從拍攝快照的時間點繼續計數:
kubectl logs python-sandbox-from-snapshot --namespace "${SNAPSHOT_NAMESPACE}"輸出內容應顯示計數器已恢復,例如:
Count: 18 Count: 19 Count: 20 Count: 21
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取本文件所用資源的費用,請按照下列步驟刪除您建立的資源:
刪除沙箱聲明,停止所有正在執行的 Pod,並允許 Agent Sandbox 控制器安全終止容器。
kubectl delete sandboxclaims --all --namespace "${SNAPSHOT_NAMESPACE}"刪除用於建立沙箱及啟動快照的沙箱範本和手動觸發條件。
# Delete the blueprints kubectl delete sandboxtemplates --all --namespace "${SNAPSHOT_NAMESPACE}" # Delete the snapshot initiation objects kubectl delete podsnapshotmanualtriggers --all --namespace "${SNAPSHOT_NAMESPACE}"刪除定義命名空間中哪些 Pod 符合快照資格的快照政策。
kubectl delete podsnapshotpolicy cpu-psp --namespace "${SNAPSHOT_NAMESPACE}"刪除快照儲存設定,這是快照儲存後端的全域定義。由於這個資源屬於叢集範圍,請勿使用命名空間標記。
kubectl delete podsnapshotstorageconfig cpu-pssc-gcs刪除 Kubernetes 命名空間,系統就會自動移除 Kubernetes 服務帳戶和所有剩餘的命名空間中繼資料。
kubectl delete namespace "${SNAPSHOT_NAMESPACE}"刪除 GKE 叢集,移除基礎架構和與本教學課程相關聯的所有節點。
gcloud container clusters delete "${CLUSTER_NAME}" --location="${GKE_LOCATION}" --quiet如要完全重設儲存空間,請使用遞迴移除指令刪除 Cloud Storage bucket (選用)。請注意,如果您打算在日後的測試中重複使用設定正確的 bucket,可以略過這個步驟。
gcloud storage rm --recursive "gs://${SNAPSHOTS_BUCKET_NAME:?Error: SNAPSHOTS_BUCKET_NAME is not set. Please re-define the environment variables you defined earlier.}"如要將專案還原為完全乾淨的狀態,請刪除自訂 IAM 角色 (選用)。由於 IAM 角色會在叢集刪除後繼續存在,因此您必須分別刪除這些角色。
gcloud iam roles delete podSnapshotGcsReadWriter --project="${PROJECT_ID}"
後續步驟
- 進一步瞭解 GKE Pod 快照。
- 如要進一步瞭解 Agent Sandbox 開放原始碼專案,請前往 GitHub。
- 瞭解如何使用 Agent Sandbox 隔離 AI 程式碼執行作業。