为简化Agent Sandbox的存储挂载及运行时注入的YAML配置,可通过在Sandbox资源中配置 spec.runtimes 字段,实现自动注入 CSI 存储挂载和 AgentRuntime 相关配置,来简化整个部署流程。
准备工作
已完成Agent Sandbox环境搭建,详情请参见创建Agent Sandbox。
在集群组件管理中,确认
ack-agent-sandbox-controller组件版本为v0.5.12及以上。安装组件时,在
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等共享存储挂载能力。启用动态存储挂载功能,需要为容器开放特权容器 (Privileged Container) 和 宿主机路径 (hostPath,/var/run/csi) 的容器安全验证,可以提交工单放开限制,但由此带来的安全风险需要用户承担一定责任,相关机制请参见安全责任共担模型。
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"
alibabacloud.com/compute-class: agent-sandbox # Agent Sandbox 实例类型
alibabacloud.com/compute-qos: default # 算力质量 default/best-effort
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.11及以上版本默认提供的注入配置,通常无需修改。其中镜像地址中的<region-id>会根据集群所在地域自动替换(如cn-zhangjiakou)。
每个配置项的数据结构包含以下字段:
字段 | 说明 |
| 主容器注入配置,包括环境变量( |
| Sidecar容器列表,用于注入CSI插件容器或AgentRuntime初始化容器。格式为 |
| Volume配置列表,定义注入到Pod级别的卷。格式为 |