查看原文
其他

虚拟化vs.裸金属:两种K8s部署模式下的多场景性能对比(附赠电子书)

解用户之忧的 志凌海纳SmartX
2024-11-05

本文重点

  • 整体而言,SKS(虚拟机 Kubernetes)可以达到裸金属 Kubernetes 性能的 82% - 96%,满足绝大部分场景下生产容器应用的性能需求。

  • 更多虚拟化与裸金属 Kubernetes 架构、特性、适用场景与性能对比,欢迎阅读文末电子书《IT 基础架构团队的 Kubernetes 管理:从入门到评估(更新版)》。


前段时间,我们通过《虚拟化 vs. 裸金属:K8s 部署环境架构与特性对比》和《适合在虚拟化环境中部署 Kubernetes 的三个场景》两篇文章,从功能特性和应用场景的角度,对比了虚拟化环境和裸金属环境部署 Kubernetes 的区别和优劣势。在性能方面,虽然普遍认为裸金属支持 Kubernetes 性能更佳,但对于两个环境的具体表现和性能差距并没有明确的数据参考,甚至有不少用户认为“虚拟化上的 Kubernetes 不能满足生产需求”。


为了让用户直观感受两个环境对 Kubernetes 的支持能力,我们分别测试了基于裸金属与 SMTX Kubernetes Service(SKS)运行有状态应用和无状态应用的性能表现。综合结果显示,SKS(虚拟机 Kubernetes)可以达到裸机 Kubernetes 性能的 82% - 96%,满足绝大部分场景下生产容器应用的性能需求。


1 测试目标


在 Kubernetes 版本、相关的调优参数、应用的资源配置均保持一致的情况下,对比测试超融合(虚拟化环境)上部署 Kubernetes 集群与裸金属服务器部署 Kubernetes 集群的基础性能、有状态应用性能和无状态应用性能。其中,有状态应用选择 MySQL、Redis 和 Kafka,无状态应用选择 Nginx 和微服务测试 Online Boutique。


在这次测试中,我们使用了配置相同(包括 CPU、内存、本地盘和网络)的裸金属服务器。这些服务器被用于部署两种 Kubernetes 集群:一种是通过 SmartX 超融合(内置原生虚拟化 ELF)部署的 SKS Kubernetes 集群(包含 1 个 Control Plane 和 1 个 Worker),另一种是直接运行在一个裸金属上的 Kubernetes 集群。


SKS Kubernetes 集群使用了超融合集群自身的分布式存储,而裸金属上的 Kubernetes 集群则通过 CSI 使用了分离部署的分布式存储集群的资源。这个分布式存储集群的配置(CPU/内存/本地盘/网络)与超融合集群保持一致。


测试环境架构图


为了方便表述,下文中两种测试环境分别简称为“SKS”和“裸金属 Kubernetes”。


2 测试环境配置


2.1 软件环境


2.1.1 SKS 环境(基于超融合部署)


SMTX OS(SmartX 超融合软件):

SKS:



2.1.2 裸金属环境




2.2 硬件环境


裸金属服务器配置见下表。




3 测试过程与结果


3.1 基础性能测试


利用 FIO 对两个环境进行压力测试,结果显示,得益于 SMTX ELF CSI 具备超融合系统中 I/O 本地化的性能优势,SKS 相比裸金属 Kubernetes 性能更佳。









3.2 有状态应用测试


3.2.1 MySQL


软件列表:



测试结果:

  • ReadWrite


  • 连续 1 小时压测


3.2.2 Redis


参数设定:
  • 10,000,000 requests

  • 200 parallel clients

  • Mixed 模式数据持久化模式(AOF、RDB)


测试结果:


3.2.3 Kafka


参数设定:
  • 6 Partition 3 Replication

  • num-records 10,000,000


测试结果:

3.3 无状态应用测试


3.3.1 Nginx


软件列表:


测试结果:

可以看到,20000 以下的用户并发场景下,SKS 与裸金属 Kubernetes 性能相差小于 1%。



长时间运行后,25000 用户并发场景下,SKS 与裸金属 Kubernetes 性能相差在 12% 左右。



3.3.2 微服务测试 Online Boutique


Online Boutique 是一个云优先的微服务演示应用程序,由 11 层微服务应用程序组成。该应用程序是一个基于网络的电子商务应用程序,用户可以在其中浏览商品、将其添加到购物车并购买。


软件列表:


测试结果:

可以看到,5000 以下的用户并发场景下,SKS 与裸金属 Kubernetes 性能相差小于 4%,后随着用户数量提升,最大差距在 20% 左右。



4 测试结论


综合以上测试结果,可以看到,在 SKS 上运行的有状态和无状态应用的整体性能水平,可达到裸金属 Kubernetes 的 82% - 96%,在一些常规业务压力的场景下,SKS 与裸金属 Kubernetes 几乎可以提供相同的性能,满足绝大多数业务场景的性能需求。具体来说:


  • SKS 可以很好地支撑处于早期和起步阶段的用户的容器化应用。

  • SKS 可以很好地支撑所有场景中的研发测试集群上的容器化应用。

  • 虽然各类企业应用对性能的需求不尽相同,但通过以上多个场景的测试结果可以看出,SKS 可满足大部分常规应用场景的性能需求(除非应用对性能要求非常严格,或同时在线用户数可达到较高水平)。SKS 在下一版本也会增加对裸金属部署环境的支持能力,以满足不同用户和应用的性能需求。

  • 另外值得注意的是,此次测试时 SKS 基于 SmartX 超融合部署,并开启了 Boost 模式进行加速,其他的虚拟化方案可能无法达到相同的性能水平。



此外,正如《适合在虚拟化环境中部署 Kubernetes 的三个场景》文章中提到,虽然虚拟化和裸金属支持 Kubernetes 在性能上有所差距,但由于虚拟化在资源效率、弹性扩缩、安全隔离、简易运维等方面的优势,Gartner 预计直到 2027 年依旧会有 70% 的数据中心 x86 工作负载部署在虚拟化环境,为容器化应用提供敏捷支持。


基于虚拟化/超融合建设 Kubernetes 的优势

更多关于 Kubernetes 平台的管理运维知识,您可扫描下方二维码,一键获取电子书《IT 基础架构团队的 Kubernetes 管理:从入门到评估(更新版)》





扫码关注“SmartX 用户社区”后将自动弹出电子书


未来,SmartX 学院还会陆续更新更多 IT 基础架构热门技术解读、运维管理参考、行业用户场景实践等方面的干货资料,欢迎读者订阅感兴趣的内容频道,及时获取最新资料!

>>订阅方式:进入 SmartX 用户社区,点击菜单栏右侧“我的社区”-“内容订阅”。


推荐阅读:


点击“阅读原文”,即可直达 SmartX 学院,解锁更多 IT 基础架构干货知识!

继续滑动看下一个
志凌海纳SmartX
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存