虚拟化和裸金属中的K8s部署环境架构与特性对比
Tags: k8s
简介
伴随着 IT 云化转型的逐步推进,越来越多的用户加入应用容器化改造的行列,并使用 Kubernetes(K8s)进行容器部署管理。然而,令不少用户感到困惑的是,由于大部分应用此前都部署在虚拟化或超融合环境,在进行容器化转型后,企业应该继续沿用原有架构,还是有必要替换成“更契合容器”的裸金属服务器。
在虚拟化(含超融合)和裸金属环境运行 K8s 有何区别?两者更适合支持哪些应用和使用场景?企业应如何进行选择?在这篇文章中,我们将详细对比虚拟化和裸金属运行 K8s 的架构,并从性能、可用性、扩展能力、资源投入等 13 个角度,全面解析两者对 K8s 的支持能力,为用户选择 K8s 部署环境提供参考。
架构对比
从上图可以看出,将 K8s 部署在虚拟化与裸金属环境,最大区别在于有无虚拟化层:虚拟化环境采用多台虚拟机支持 K8s 集群,而裸金属环境下 K8s 直接跑在物理服务器上。这样的架构差异具体体现在以下方面。
操作系统
在虚拟化环境中,主机安装 Host OS 支持虚拟机运行,而虚拟机安装 Node OS 支持 K8s 集群运行。在同一个虚拟化集群上,可以通过不同的虚拟机支持不同的操作系统版本、K8s 版本和应用程序版本。
而裸金属服务器操作系统需要用户自行选配,该操作系统直接作为 Node OS 支持 K8s 集群,一台裸金属服务器只可支持一种操作系统,该操作系统为该服务器上运行的所有应用程序所共用。
资源访问方式
虚拟化架构使用虚拟化层来管理和分配物理资源。一台物理服务器被分割成多个虚拟服务器,每个虚拟服务器可以运行不同的应用程序,多个虚拟机在同一组物理服务器上可共享资源,并可动态地请求和释放资源。