首页 >>  正文

k8s怎么进入容器

来源:baiyundou.net   日期:2024-09-20

本文重点

  • 整体而言,SKS(虚拟机 Kubernetes)可以达到裸金属 Kubernetes 性能的 82% - 96%,满足绝大部分场景下生产容器应用的性能需求。
  • 更多虚拟化与裸金属 Kubernetes 架构、特性、适用场景与性能对比,欢迎阅读文末电子书《IT 基础架构团队的 Kubernetes 管理:从入门到评估(更新版)》。

前段时间,我们通过《如何选择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 管理:从入门到评估

阅读原文:虚拟化和裸金属 K8s 哪个性能更好?一文了解多场景下的性能对比数据  SmartX

","gnid":"9abf507f148a4ddb0","img_data":[{"flag":2,"img":[{"desc":"","height":"600","title":"","url":"https://p0.ssl.img.360kuai.com/t01ccd7144bc4518788.jpg","width":"952"},{"desc":"","height":"600","title":"","url":"https://p0.ssl.img.360kuai.com/t016e051c4aecfff340.jpg","width":"952"},{"desc":"","height":"243","title":"","url":"https://p0.ssl.img.360kuai.com/t012dbb025301568718.jpg","width":"796"},{"desc":"","height":"464","title":"","url":"https://p0.ssl.img.360kuai.com/t01d7a454728153c91e.jpg","width":"1080"},{"desc":"","height":"414","title":"","url":"https://p0.ssl.img.360kuai.com/t016c3e8e79fa0d7a19.jpg","width":"938"},{"desc":"","height":"411","title":"","url":"https://p0.ssl.img.360kuai.com/t01bda4e366443596c4.jpg","width":"1080"},{"desc":"","height":"459","title":"","url":"https://p0.ssl.img.360kuai.com/t0168abda563e813079.jpg","width":"1080"},{"desc":"","height":"483","title":"","url":"https://p0.ssl.img.360kuai.com/t0187c2ca805412a1e3.jpg","width":"1080"},{"desc":"","height":"472","title":"","url":"https://p0.ssl.img.360kuai.com/t012c3f75dbc17c1a8c.jpg","width":"1080"},{"desc":"","height":"480","title":"","url":"https://p0.ssl.img.360kuai.com/t018922b9b728add3a4.jpg","width":"1080"},{"desc":"","height":"210","title":"","url":"https://p0.ssl.img.360kuai.com/t015da2b0da3af142bc.jpg","width":"1019"},{"desc":"","height":"1244","title":"","url":"https://p0.ssl.img.360kuai.com/t011a7a31657d7e0226.jpg","width":"1080"},{"desc":"","height":"483","title":"","url":"https://p0.ssl.img.360kuai.com/t01a7d950fa856ba8f1.jpg","width":"1080"},{"desc":"","height":"1218","title":"","url":"https://p0.ssl.img.360kuai.com/t0128118ffd051e7088.jpg","width":"1041"},{"desc":"","height":"334","title":"","url":"https://p0.ssl.img.360kuai.com/t01a939f1cffdc1771d.jpg","width":"1080"},{"desc":"","height":"210","title":"","url":"https://p0.ssl.img.360kuai.com/t01393197dec74255ff.jpg","width":"1019"},{"desc":"","height":"1814","title":"","url":"https://p0.ssl.img.360kuai.com/t0186501c25ed22b1fe.jpg","width":"1080"},{"desc":"","height":"300","title":"","url":"https://p0.ssl.img.360kuai.com/t01c86e67fbe1af385e.jpg","width":"1080"},{"desc":"","height":"868","title":"","url":"https://p0.ssl.img.360kuai.com/t015daf0662f136123a.jpg","width":"1080"},{"desc":"","height":"2106","title":"","url":"https://p0.ssl.img.360kuai.com/t01b9b6cc6a2533db50.jpg","width":"1080"},{"desc":"","height":"557","title":"","url":"https://p0.ssl.img.360kuai.com/t01996aafa4f428c170.jpg","width":"1080"},{"desc":"","height":"484","title":"","url":"https://p0.ssl.img.360kuai.com/t01c4ff9f20c795da17.jpg","width":"1080"}]}],"original":0,"pat":"art_src_3,sexf,sex8,sexc,fts0,sts0","powerby":"pika","pub_time":1707103080000,"pure":"","rawurl":"http://zm.news.so.com/71888f5a01dd6b6302b5d0f55647e231","redirect":0,"rptid":"873fd018973c77d9","rss_ext":[],"s":"t","src":"志凌海纳SmartX","tag":[],"title":"虚拟化和裸金属 K8s 哪个性能更好?我们做了 6 个应用场景测试

刘旺炒2861如何进行K8S存储系统 -
郝厘克17381874405 ______ 在K8S运行的服务,从简单到复杂可以分成三类:无状态服务、普通有状态服务和有状态集群服务.下面分别来看K8S是如何运行这三类服务的. 无状态服务,K8S使用RC(或更新的Replica Set)来保证一个服务的实例数量,如果说某个Pod...

刘旺炒2861Kubernetes能不能够固定容器的IP -
郝厘克17381874405 ______ 打印机用的网络打印还是USB打印,网络打印的话当然要设置固定IP啊,USB打印的话根本没有IP的,网络打印设置IP,不要和电脑IP地址一样就行了,比如说最后几个数字加大几个或改小几个都行,那样不会冲突就什么问题也没有了

刘旺炒2861k8s中kube - apiserver的主要功能是什么? -
郝厘克17381874405 ______ 通过kube-apiserver提供的接口能够进行操作kubernetes集群中各种资源,它是整个进群的入口.学习有关于kube-apiserver的知识,可以在网上搜索,也可以直接到黑马程序员社区看.

刘旺炒2861docker 里可以安装docker吗 -
郝厘克17381874405 ______ 可以的,我们将讨论如何在 CentOS 7.x 中安装 docker. CentOS 7 中 Docker 的安装 Docker 软件包已经包括在默认的 CentOS-Extras 软件源里.因此想要安装 docker,只需要运行下面的 yum 命令: [root@localhost ~]# yum install docker 启动 ...

刘旺炒2861如何启动一个已经创建的docker容器,并进入SHELL对其操作 -
郝厘克17381874405 ______ 有同学在docker下安装了nginx 但是不知道目录在哪,可以使用命令:sudo find / -name "50x.html" 因为nginx里必定会有50x.html,所以查找它,结果发现nginx的目录在docker容器里,如果操作它,就需要进入容器的shell.必须先启动容器:sudo docker start “容器ID” 然后使用下边的命令进入shell:sudo docker exec -it “容器ID” bash 将主机的文件复制到容器里:sudo docker cp 主机目录 容器ID:容器目录

刘旺炒2861kubernetes为什么叫k8s -
郝厘克17381874405 ______ k和s之间有8个字母

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024