笔记内容来自隐语Mooc,欢迎一起来学习。Mooc课程地址:https://www.secretflow.org.cn/community/bootcamp/2narwgw4ub8rabq/course/vhii941jitkl122?tab=outline
🧩 一、为什么需要 Kuscia?
1. 背景问题
- 传统应用部署存在环境不一致问题(开发、测试、生产环境差异)。
- Docker 和 Kubernetes 解决了单域应用的环境一致性问题。
2. 联合计算的新挑战
- 联邦学习(FL)、安全多方计算(MPC)等跨域联合计算应用,同样面临环境不一致、调度复杂、网络通信难等问题。
3. Kuscia 的目标
- 解决联合应用从开发到生产的一致性问题。
- 提供一套跨域协同调度、网络通信、多运行时适配的框架。
- 加速联合计算应用的交付过程。
🛠️ 二、Kuscia 做了什么?
1. 跨域协同调度
- 原子性调度:All or Nothing,确保多方任务同时运行或同时停止。
- 多阶段确认机制:资源预占用 → 启动容器,确保任务协同执行。
2. 跨域网络通信
- 安全通信通道:基于非对称加密握手,建立端到端加密通道。
- 透明网络访问:像访问本地服务一样访问跨域服务,通过 Gateway 实现域名解析与路由。
3. 多运行时适配
- 支持多种部署环境:
- RunC:以容器方式运行
- RunK:以 K8s Pod 方式运行
- RunP:以进程方式运行
- 开发者只需提供 Docker 镜像,Kuscia 自动适配运行环境。
4. 多数据源支持
- 支持多种数据源:LocalFS、S3、ODPS、MySQL 等。
- 提供 Data Mesh SDK,便于应用接入和扩展。
- 未来支持权限控制、审计、断点续传等。
5. 复用 K8s 能力
- 声明式 API、高可用、滚动升级、资源管理。
- 应用版本管理:支持多版本共存、平滑升级,隔离应用与框架的变化。
🔗 三、如何集成 Kuscia?
1. 架构层级
产品层(如 SecretPad)
↓
KusciaAPI(Infra)
↓
联合应用层(如 SecretFlow、SCQL、Serving)
2. 应用接入步骤
定义 AppImage:
- 配置模板、部署模板、镜像信息
- 支持变量渲染(如任务配置、组网信息)
通过 KusciaAPI 发起任务:
- 指定 AppImage 名称、任务配置、参与方等
- Kuscia 自动渲染配置、拉取镜像、启动容器
3. 集成价值
- 可基于 KusciaAPI 快速构建定制化隐私计算平台。
- 将自有隐私计算应用接入 Kuscia,加速应用交付。
📌 四、核心价值总结
| 方面 | 能力 |
|---|
| 调度 | 跨域原子性任务调度 |
| 网络 | 安全、透明的跨域通信 |
| 运行时 | 多运行时适配,兼容多种部署环境 |
| 数据 | 多数据源接入,支持扩展 |
| 集成 | 声明式 API,复用 K8s 生态 |
| 交付 | 加速联合计算应用从开发到生产的交付 |
🔗 参考资料