hi,
原先想着启动csv,然后在csv里运行kata容器。
但读了白皮书后,发现完全不是这回事。感觉是: 先安装kata containers,其然后调用csv
vm,然后让kata-runtime运行在csv里。但后面又有一个containerd容器运行时。然后就有点迷惑了。然后再运行时里运行任务负载。
基础比较差。请专家们从数据流,软件间调用的角度,说下这个流程。不然真是看不懂啊!
期待您的回复!非常感谢!
祝好!
孟庆树
显示某日回复
hi,
在中文《云原生机密计算最佳实践白皮书》pdf的第31页,说得比较清楚:
1.containerd 调用 kata-runtime创建CSV VM,kata-runtime调用 image-rs 下载加密镜像;
2.kata-runtime 获取 CSV VM 的 launch_measurement发送给 gop-server;
3.gop-server 调 用 hag 对 launch_measurement 计算和校验; 验证 gop-server 调用 hag 对 key
进行加密、形成 secret 和 secret_header,发送给 kata-runtime;
4.kata-runtime 调用 qemu 向 CSV VM 注入 secret;CSV VM 利用固件解密 secret 获取 key 存入指定
位置;
5.CSV VM 中的 attestation-agent 获取 key,image-rs 使用 key 解密镜像;
6.启动镜像运行 workload。
我理解:和sevguard论文类似,kata作为主机的一个应用进程在起主导作用,其调用qemu-kvm构建vm,然后让解密的负载运行在vm的runtime环境里。这样一来,是不是每个vm只能运行一个容器了?
在 2023-09-20 17:14:33,"meng" <qsmeng(a)126.com> 写道:
hi,
原先想着启动csv,然后在csv里运行kata容器。
但读了白皮书后,发现完全不是这回事。感觉是: 先安装kata containers,其然后调用csv
vm,然后让kata-runtime运行在csv里。但后面又有一个containerd容器运行时。然后就有点迷惑了。然后再运行时里运行任务负载。
基础比较差。请专家们从数据流,软件间调用的角度,说下这个流程。不然真是看不懂啊!
期待您的回复!非常感谢!
祝好!
孟庆树