我正在设置一台服务器来进行一些机器学习基准测试,提交的形式将是(Docker)容器或(Kubernetes)Pod。我花了很多时间研究当前的最佳实践,并做了很多基于go
的hello world,但是目前看来一切进展都非常快(2019年6月),所以我无法弄清楚应该使用哪些工具(未来的证明)。
一些观察:
- Kubernetes似乎是最佳做法(尽管还有其他做法)。
- Docker运行时似乎不是最佳的,因为:不是pod-native,使用守护程序,以前没有无根选项。
- rkt通常被认为是最优雅的选择,但并未得到积极开发(尽管大约2周前仍在进行一些工作)。
- (与rkt相关的)appc规范似乎已停止使用,以支持OCI规范。
- Podman和Buildah似乎很受欢迎atm
- Google已发布了gvisor,它似乎具有良好的安全性(更重?),我希望有了Google可以提供的资源,这对未来是一个不错的选择,我相信它是OCI兼容的
- Red Hat / CoreOS正在推动CRI-O,这是基于OCI规范的运行时。
那么问题是:
鉴于我可能会使用Kubernetes:
- 我应该使用哪个运行时?
- 我应该使用哪个容器/容器构建器?
- 设置使用rkt的新项目是否有意义?
也许不是集中的,但也许是有趣的,我也听说过kata容器,尽管其名称似乎是轻量级的虚拟机(在〜150ms内启动等),这些VM怎么可能如此?快很多?