為簡化Agent Sandbox的儲存掛載及運行時注入的YAML配置,可通過在Sandbox資源中配置 spec.runtimes 欄位,實現自動注入 CSI 儲存掛載和 AgentRuntime 相關配置,來簡化整個部署流程。
準備工作
已完成Agent Sandbox環境搭建,詳情請參見建立Agent Sandbox。
在叢集組件管理中,確認
ack-agent-sandbox-controller組件版本為v0.5.10及以上。安裝組件(v0.5.9及以上版本)時,會在
sandbox-system命名空間下建立名為sandbox-injection-config的ConfigMap,包含agent-runtime和csi兩個配置項。如需特殊定製或配置修改,請在修改前聯絡阿里雲支援人員評估配置的完備性。
功能概述
在Agent Sandbox中配置動態儲存裝置掛載時,由於涉及手動設定CSI及Sidecar容器,YAML配置一般較為複雜。通過Sidecar自動注入功能,您只需定義業務容器,並在SandboxSet或Sandbox資源中聲明spec.runtimes欄位,系統將自動為建立的Sandbox注入所需的CSI和AgentRuntime Sidecar配置。目前支援以下兩種注入類型:
csi:注入CSI儲存掛載相關的init容器和Volume配置,支援NAS、OSS等共用儲存掛載能力。agent-runtime:注入AgentRuntime init容器(如envd等環境管理工具),並為業務容器添加相應的環境變數和生命週期鉤子。
Sidecar自動注入僅對新建立的Sandbox執行個體生效,存量執行個體不受影響。如需使用Command 和Filesystem 介面, 必須注入agent-runtime。
配置Sidecar注入
在SandboxSet或Sandbox資源的spec.runtimes欄位中聲明需要注入的運行時類型。以下分別展示兩種資源的配置樣本。
SandboxSet資源配置樣本
apiVersion: agents.kruise.io/v1alpha1
kind: SandboxSet
metadata:
name: code-interpreter-inject-test
namespace: default
spec:
runtimes:
- name: csi # 支援CSI掛載能力,建立的Sandbox會被注入對應的Sidecar
- name: agent-runtime # 注入envd等環境管理工具
replicas: 4
template:
metadata:
labels:
alibabacloud.com/acs: "true"
spec:
automountServiceAccountToken: false
containers:
- image: registry-cn-zhangjiakou-vpc.ack.aliyuncs.com/acs/code-interpreter:v1.6 # 替換成實際叢集所在的地區
imagePullPolicy: IfNotPresent
name: sandbox
resources:
limits:
cpu: "1"
memory: 1Gi
requests:
cpu: "1"
memory: 1Gi
terminationGracePeriodSeconds: 30Sandbox資源配置樣本
apiVersion: agents.kruise.io/v1alpha1
kind: Sandbox
metadata:
name: code-interpreter-inject-test-xxx
namespace: default
spec:
runtimes:
- name: csi # 提供CSI掛載能力
- name: agent-runtime # 注入envd等環境管理工具
...注入配置說明
以下為v0.5.9及以上版本預設提供的注入配置,通常無需修改。其中鏡像地址中的<region-id>會根據叢集所在地區自動替換(如cn-zhangjiakou)。
每個配置項的資料結構包含以下欄位:
欄位 | 說明 |
| 主容器注入配置,包括環境變數( |
| Sidecar容器列表,用於注入CSI外掛程式容器或AgentRuntime初始化容器。格式為 |
| Volume配置列表,定義注入到Pod層級的卷。格式為 |