对于我看来,这不是个问题,是根据用户自身条件来选择的
如果是自建IDC机房,建议用实体机,原因如下:
(1)运维成本:k8s本身的网络环境比较复杂,在这个复杂的网络上再叠加上复杂的虚拟机的网络,这没有专有的运维人员难以搞定;
(2)是可靠性: 虚机构建的k8s,有可能共享cpu,一旦宿主机节点挂了,导致多个k8s节点崩溃,一旦发生master节点全挂,容器云就玩完;
(3)是软件成本,IDC机房自建已经投入大量资金,如果再投入vmware、boss等pks的软件成本太大
(4)是需求缺乏,使用虚拟机构建k8s,其中最大的优点是可以客户化,比如我需要5个节点的集群,我可以自己构建虚拟机,自建集群,听上去很美,现实很骨感,大部分企业没有这种需求。这需求出现在公有云上。
(5)是技术不成熟,我有亲身经历,就是Dell Emc的pks,企业级容器云,是cloudfoudation的boss为基础的k8s集群,dell承包了软硬件的部署,然而,其中有大坑,部署后NxT网络有问题,导致容器云中的应用经常“龟速”运行,dell排查了大半年,无法解决,最后赔偿了事(吐槽一下,dell这公司的技术真不怎么样)
如果用户没有自建机房,那必然使用虚拟机的k8s部署方案,有朋友说性能会下降多少,还真没感觉出来,不过有很多优点
(1) 省钱:现在大部分公有云商家, k8s集群都是不收费的,只收底层服务器的钱;
(2)还是省钱: 全托管的k8s,master节点是公有的大池子,不收费;
(3)省心; 对于不是互联网大公司而言,要养k8s专业运维人员是不小的支出,但公有云没有这个烦恼;
(4)autoscale: 服务器是虚拟机,可以自动扩展,活动日不仅能用k8s自己的autoscale,还可以用虚拟机的autoscale,实体机是不可能有后者的;
(5)随心所欲的自建,你平时会有不少测试、实验的需求,建立一个k8s就可以了,不像实体机, 没资源,你还要去买机器。