网络配置
本文介绍如何配置 TKE Cube Agent Sandbox 的访问入口、控制面与数据面流量分离、出网策略和公网访问。
TKE Cube Agent Sandbox 将流量分为两类:
| 流量 | 说明 |
|---|---|
| 控制面流量 | 创建沙箱、查询状态、执行代码、管理文件等 API 请求 |
| 数据面流量 | 访问沙箱内服务、调试端口、运行时端口和用户应用端口 |
生产环境建议使用 SandboxGateway 分离控制面和数据面流量,避免控制面组件异常影响沙箱业务通信。
创建内网 SandboxGateway
Section titled “创建内网 SandboxGateway”默认建议使用内网入口:
apiVersion: sandbox.tke.cloud.tencent.com/v1alpha1kind: SandboxGatewaymetadata: name: default namespace: agent-demospec: access: internal: true public: false domains: api: api.sandbox.example.internal wildcard: "*.sandbox.example.internal" routing: splitControlAndDataPlane: true执行:
kubectl apply -f sandbox-gateway.yamlkubectl get sandboxgateway -n agent-demo开启公网访问
Section titled “开启公网访问”公网入口默认关闭。仅当外部用户或跨网络应用需要访问沙箱时开启。
spec: access: internal: true public: true domains: api: api.sandbox.example.com wildcard: "*.sandbox.example.com" tls: secretName: sandbox-gateway-tls security: sourceCIDRs: - 203.0.113.0/24开启公网访问时,请同时配置:
- TLS 证书。
- 来源 IP 白名单。
- 安全组。
- API Key。
- 访问审计。
配置出网策略
Section titled “配置出网策略”使用 SandboxNetworkPolicy 限制沙箱出网范围:
apiVersion: sandbox.tke.cloud.tencent.com/v1alpha1kind: SandboxNetworkPolicymetadata: name: code-interpreter-default namespace: agent-demospec: egress: defaultAction: deny allow: - type: cidr value: 10.0.0.0/8 - type: service value: kube-system/kube-dns ingress: defaultAction: deny allow: - type: gateway value: default在模板中引用:
spec: network: policyRef: code-interpreter-default禁止访问公网
Section titled “禁止访问公网”egress: defaultAction: deny allow: - type: cidr value: 10.0.0.0/8仅允许访问指定服务
Section titled “仅允许访问指定服务”egress: defaultAction: deny allow: - type: service value: default/model-service - type: service value: kube-system/kube-dns允许访问公网但限制入口
Section titled “允许访问公网但限制入口”egress: defaultAction: allowingress: defaultAction: deny allow: - type: gateway value: default在 SandboxTemplate 中声明沙箱端口:
ports: - name: runtime containerPort: 49999 - name: web containerPort: 8080声明后,数据面网关可以按实例 ID 和端口转发访问请求。
- 默认使用内网入口。
- 公网入口必须配置 TLS、白名单和 API Key。
- 任务型沙箱默认禁止入方向访问。
- 出网策略遵循最小权限原则。
- 不要允许沙箱访问云元数据服务,除非业务明确需要并已完成安全评审。
- 对公网入口、API 调用和策略变更开启审计。
| 问题 | 可能原因 | 处理建议 |
|---|---|---|
| SDK 无法连接 API | Gateway 未就绪、域名解析失败或 API Key 错误 | 检查 SandboxGateway、DNS 和凭证 |
| 沙箱内服务无法访问 | 端口未声明或数据面入口未开启 | 检查模板 ports 和 Gateway 路由 |
| 沙箱无法访问外部服务 | 出网策略拒绝或安全组限制 | 检查 SandboxNetworkPolicy 和安全组 |
| 公网访问不通 | 未开启公网、证书错误或白名单不匹配 | 检查 public、TLS Secret 和来源 CIDR |