Agent Sandbox 基於 Sandbox 自訂資源(CRD)描述沙箱的期望狀態與運行狀態。本文介紹 Sandbox 資源各欄位的含義、類型和取值說明。
配置樣本
以下樣本展示了一個包含內聯 Pod 模板、runtime sidecar注入和自訂儲存卷模板的 Sandbox。
資源資訊
項 | 說明 |
API 組和版本(apiVersion) |
|
資源類型(kind) |
|
資源名(plural) |
|
單數名(singular) |
|
簡稱(shortName) |
|
儲存版本(storageVersion) |
|
status 子資源 | 是, |
Sandbox
Sandbox 頂層欄位說明如下。
欄位 | 類型 | 是否必須 | 說明 |
apiVersion | String | 是 | API 組和版本,取值為 |
kind | String | 是 | 資源類型,固定取值為 |
metadata | ObjectMeta | 否 | 標準的 Kubernetes 對象中繼資料,例如 |
spec | SandboxSpec | 是 | 沙箱的期望狀態,詳細欄位請參見下文spec。 |
status | SandboxStatus | 否 | 沙箱的實際運行狀態,由系統觀測並寫入,詳細欄位請參見下文status。 |
spec
沙箱期望狀態 spec(SandboxSpec)的欄位說明如下。
欄位 | 類型 | 是否必須 | 說明 |
paused | Boolean | 否 | 是否休眠沙箱 Pod。預設值為 |
persistentContents | []String | 否 | 喚醒(resume)Pod 時需要保留的內容。暫時僅支援 |
shutdownTime | String | 否 | 刪除沙箱的絕對時間,採用 RFC3339 格式。到達該時間後沙箱被刪除;若設定為過去的時間,則立即刪除。 時間必須攜帶時區位移(RFC3339 要求),推薦使用 UTC,例如:2026-07-01T02:30:00Z。 |
runtimes | []RuntimeConfig | 否 | 為沙箱注入的 runtime sidecar 配置,可配置多個。詳細欄位請參見下文 RuntimeConfig。 |
pauseTime | String | 否 | 自動休眠沙箱的絕對時間,採用 RFC3339 格式。到達該時間後沙箱自動休眠。 時間必須攜帶時區位移(RFC3339 要求),推薦使用 UTC,例如:2026-07-01T02:30:00Z。 |
template | PodTemplateSpec | 否 | 內聯的 Pod 模板,描述待建立的 Pod。 |
volumeClaimTemplates | []PersistentVolumeClaim | 否 | 為該沙箱建立的 PersistentVolumeClaim(PVC)模板列表。 |
template、volumeClaimTemplates 來自內嵌結構 EmbeddedSandboxTemplate,在 YAML 中平鋪到 spec 下。
RuntimeConfig
欄位 | 類型 | 是否必須 | 說明 |
name | String | 是 | runtime 類型名稱。可選值:
|
status
沙箱運行狀態 status(SandboxStatus)的欄位說明如下。
status 由系統觀測後自動寫入,使用者無需手動設定。欄位 | 類型 | 說明 |
observedGeneration | Integer | 已觀測到的最新 |
phase | String | 沙箱當前所處的階段,取值請參見下文 SandboxPhase。 |
message | String | 人類可讀的狀態原因資訊。 |
conditions | []Condition | 沙箱資源的狀態條件列表。每個條件以 |
podInfo | PodInfo | 底層 Pod 的關鍵資訊,詳細欄位請參見下文 PodInfo。 |
nodeName | String | 沙箱被調度到的節點名稱。 |
sandboxIp | String | 分配給沙箱的 IP 位址。 |
updateRevision | String | 根據 |
PodInfo
欄位 | 類型 | 說明 |
annotations | map[string]string | Pod 的關鍵 annotations。 |
labels | map[string]string | Pod 的關鍵 labels。 |
nodeName | String | Pod 所在的節點名稱。 |
podIP | String | Pod 的 IP 位址。 |
podUID | String | Pod 的 UID。 |
枚舉值說明
SandboxPhase
沙箱階段 status.phase 的取值含義如下。
取值 | 說明 |
Pending | Pod 已被系統接受,但仍有容器未啟動(例如正在拉取鏡像或綁定節點)。 |
Running | Pod 已綁定到節點,所有容器均已啟動;至少一個容器正在運行或處於重啟過程中。 |
Paused | 沙箱已觸發休眠,休眠成功與否需結合 SandboxPaused Condition判斷。 |
Resuming | 沙箱正在喚醒,喚醒成功與否需結合SandboxResumed Condition判斷。 |
Upgrading | 沙箱正在通過 SandboxUpdateOps 重建升級,升級成功與否需結合Upgrading Condition判斷。 |
Succeeded | Pod 內所有容器均以退出碼 0 主動終止,且系統不會再重啟這些容器。 |
Failed | Pod 內所有容器均已終止,且至少一個容器以非 0 退出碼終止或被系統終止。 |
Terminating | 沙箱刪除後正在執行清理。 |
SandboxConditionType
狀態條件 status.conditions[].type 的取值含義如下。
各 Condition 的 Status 取 True 為成功,False 為失敗。
取值 | 說明 |
Ready | 沙箱已具備正常服務能力,關聯容器均已就緒(Ready)。 |
SandboxPaused | 沙箱休眠的執行結果;成功時所有容器均已休眠。 |
SandboxResumed | 沙箱喚醒的執行結果。 |
InplaceUpdate | 原地更新狀態。 |
Upgrading | 升級流程狀態。 |
RuntimeInitialized | 沙箱內的 agent-runtime 已完成初始化(首次初始化,或在喚醒、重建、升級、動態掛載後重新初始化)。 |
Condition 的取值為上表中的字串,部分取值與源碼常量名不完全一致(例如休眠對應 SandboxPaused、喚醒對應 SandboxResumed),請以取值字串為準。
PersistentContents 可選值
喚醒時保留內容 spec.persistentContents 的可選值如下。
取值 | 說明 |
filesystem | 喚醒時保留檔案系統。 |
Sandbox Label
Key | 說明 |
| 沙箱是否已被業務分配(claim)。 |
| 沙箱所屬預熱池的名稱,SandboxSet 通過該 Label 管理同池沙箱。 |
| 沙箱所引用的 SandboxTemplate 名稱,SandboxUpdateOps 通過該 Label 選擇目標沙箱。 |
kubectl get命令輸出
執行 kubectl get sandbox(或 kubectl get sbx)時,預設顯示以下列。
列名 | JSONPath | 說明 |
NAME |
| 沙箱名稱。 |
STATUS |
| 沙箱當前階段。 |
AGE |
| 自沙箱建立以來的時間長度。 |
CLAIMED |
| 沙箱是否已被業務分配。 |
SHUTDOWN_TIME |
| 刪除沙箱的絕對時間。 |
PAUSE_TIME |
| 自動休眠沙箱的絕對時間。 |
MESSAGE |
| 狀態原因資訊。 |