在本文中,我们旨在通过展示 Kubernetes 在虚拟机(SMTX Kubernetes 服务,简称 SKS)和裸机服务器上运行有状态和无状态应用程序的实证性能数据来解决这一差距。总体而言,结果表明 SKS 的性能范围是基于裸机的 Kubernetes 的 82% 到 96%,这表明基于虚拟机的 Kubernetes 可以有效满足生产环境中大多数容器化应用程序的要求。
1
1 测试目标
在相同的 Kubernetes 版本、调优参数和应用资源配置下,我们在实验室环境中测试了 Kubernetes 在 SKS(部署在 SmartX HCI 上)和裸机上的表现,以及有状态应用和无状态应用的运行情况。有状态应用测试选择了 MySQL、Redis、Kafka,无状态应用测试选择了 Nginx、Online Boutique。
我们利用两台配置(包括 CPU、内存、本地磁盘、网络)完全相同的裸机服务器,支撑两个 Kubernetes 集群:SKS 集群和裸机 Kubernetes 集群。SKS 集群由一个 Control Plane 和一个 Worker 组成,部署在 SmartX HCI 上(原生 Hypervisor ELF)。SKS 集群使用 SmartX HCI 的分布式存储,而裸机 Kubernetes 集群通过 CSI 使用单独的分布式存储集群。该分布式存储集群的配置(CPU/内存/本地磁盘/网络)与 SKS 集群保持一致。为了表述方便,下面提到的两个测试环境将分别称为“SKS”和“裸机 Kubernetes”。
2
2 测试环境配置
2.1
2.1 软件配置
2.1.1 SKS 环境(部署在 SmartX HCI 上)
SMTX OS(SmartX 超融合软件):
SKS:
2.1.2 裸机环境
2.2
2.2 硬件配置
裸机服务器:
3
3 测试结果
3.1
3.1 基准测试
我们在两种环境中都进行了 FIO 压力测试。结果表明,SKS 的表现优于裸机 Kubernetes,这可能是由于 SmartX HCI 的 I/O 本地化特性。
3.2
3.2 有状态应用测试
3.2.1 MySQL
软件配置
测试结果读写:
连续 1 小时测试:
3.2.2 Redis
参数
10,000,000 个请求 200 个并行客户端
混合模式数据持久化(AOF、RDB)
测试结果
3.2.3 Kafka
参数
6 分区 3 复制记录数 10,000,000
测试结果
3.3
3.3 无状态应用测试
3.3.1 Nginx
软件配置
测试结果当并发用户数少于 20,000 时,SKS 与裸机 Kubernetes 之间的性能差距不到 1%。
经过持续运行,在 25000 个并发用户的情况下,SKS 与裸机 Kubernetes 的性能差距在 12%左右。
3.3.2 在线应用测试
这是一个用于微服务演示的云原生应用,由 11 层微服务应用组成。它模拟了一个基于 Web 的电子商务应用程序,用户可以在其中浏览商品、将商品添加到购物车并进行购买。
软件配置测试结果在并发用户数少于 5000 时,SKS 与裸机 Kubernetes 之间的性能差距在 4% 以内。随着用户数的增加,这一差距可能会达到 20% 左右。
4
4 结论
总体而言,SKS 表现出了出色的性能水平,可达到裸机 Kubernetes 部署的 82% 至 96% 的性能。特别是在常见业务场景中,SKS 和裸机 Kubernetes 表现出几乎相同的性能,突显出 SKS 能够满足大多数容器化应用程序的性能要求。具体来说:
SKS 可以很好地支持企业早期和初始阶段的容器化应用。SKS 可以有效支持全场景开发测试集群上的容器化应用。
SKS 可以满足大多数常见应用场景的性能要求,除非该应用对性能有严格要求或有大量并发用户。在下一个版本中,SKS 将升级其功能以支持裸机部署。
值得注意的是,以上测试均在 SmartX HCI 上部署 SKS 并开启 Boost 模式进行 I/O 加速,并不保证其他虚拟化/HCI 平台也能达到同样的效果。
此外,尽管基于虚拟机和基于裸机的 Kubernetes 之间存在性能差距,但 Gartner* 预计,到 2027 年,70% 的数据中心 x86 工作负载仍将部署在虚拟化环境中,这得益于虚拟化在资源利用率、弹性扩展、安全隔离以及操作和维护简单性方面的优势。
推荐
随手关注或者”在看“,诚挚感谢!