容器云当然既可以选择裸金属,也可以选择虚拟机。
选择裸金属,可以避免损耗提高资源的利用率,提升 ROI 。同时也能更高效的利用硬件级别的创新,如计算加速设备,低延迟大带宽网络设备,高性能持久化设备等。应用裸金属的问题在于如何提高底层硬件资源的管理和监控能力,相对于传统的云计算平台, k8s 本身作为一个服务和负载的调配平台,目前对底层资源的管理能力相对较弱。
选择虚拟机可以最大化利用现有的基于虚拟化的云计算资源,虚拟化本身也带来更强的资源隔离性。但相对裸金属,一是有资源的消耗,另外很多硬件创新无法及时、高效的提供给应用使用。
我个人的观点是,裸金属应该是未来的发展方向。云原生技术重要的优势之一就是能够减少软件层的隔离,使硬件创新能够更好地支持应用的运行,提升性能可靠性等。云原生社区也在针对裸金属架构下,提升硬件资源的管理能力做出努力。 kube-virt 等项目也在尝试打通 k8s 和传统的虚拟化云平台。另外,针对容器本身资源隔离性不如传统虚拟化的问题,也有 kata container , gvisor 等项目在提供解决方案。这个领域 Intel 同样在做出贡献,您可以参考 https://01.org/kubernetes 。