Smith——安全微容器构建者
传统的容器构建过程需要一系列的复杂操作步骤。Smith就是一个解决构建一致性和安全性的问题的微容器构建工具。可方便的通过rpms、yum库,甚至已有容器来构建微容器。更多构建微容器的信息可参考资料:the Microcontainer Manifesto。
Crashcart——微容器调试工具
若生产环境应用容器的精简配置,导致的诊断工具缺失,对运维来说是一个巨大挑战。虽然大部分诊断可在主节点上完成,但有时也需要在容器节点可访问的文件系统上进行诊断。Crashcart便是应用在这个场景下,它为正在运行的容器加载一组数据用来定位故障原因。了解crashcart是如何定位单边加载数据故障的原理可参考资料:Hardcore Container Debugging。
Railcar——可选的容器Runtime
Go语言对于容器runtime不一定是***选择。(注:runtime是通过命名空间和cgroups完成隔离的组件。Go语言对于容器镜像和CLIS仍然是一个非常明智的选择。)为便于理解,可阅读博客: Linux Namespaces And Go Don’t Mix。 Runc(runc是oci runtime的默认组件)的部分代码是由C语言编写,在Go运行时态启动之前调用的。Go虽然是一个伟大的语言,但对于仅需轻量线程控制及大量系统调用的小型组件而言,还有更好的选择。Rust语言则可以提供类似C语言的轻量控制,但是内存安全且避免了类的BUG和漏洞。更多Railcar的开发信息可参考资料:Building a Container Runtime in Rust。