K8S环境下的容器,是直接运行在物理机上,还是运行在隔离的虚机上比较好?

K8S环境下的容器,是直接运行在物理机上,还是运行在隔离的虚机上比较好。如果运行在物理机上,那么资源会最大程度的得到利用,但是会牺牲一定的隔离性及安全性,特别是在企业没有规范的CI/CD镜像交付流程时,不同租户的容器会相互影响。如果运行在虚拟机上,那么隔离性和安全性都会强...显示全部

K8S环境下的容器,是直接运行在物理机上,还是运行在隔离的虚机上比较好。
如果运行在物理机上,那么资源会最大程度的得到利用,但是会牺牲一定的隔离性及安全性,特别是在企业没有规范的CI/CD镜像交付流程时,不同租户的容器会相互影响。
如果运行在虚拟机上,那么隔离性和安全性都会强于前者,但是会增加管理虚机的成本,以及降低资源利用率。
这一块企业该如何去抉择考量呢

收起
参与22

查看其它 5 个回答zhuqibs的回答

zhuqibszhuqibs软件开发工程师Adidas

对于我看来,这不是个问题,是根据用户自身条件来选择的
如果是自建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就可以了,不像实体机, 没资源,你还要去买机器。

互联网服务 · 2020-03-25
浏览5830

回答者

zhuqibs
软件开发工程师Adidas
擅长领域: 云计算服务器存储

zhuqibs 最近回答过的问题

回答状态

  • 发布时间:2020-03-25
  • 关注会员:7 人
  • 回答浏览:5830
  • X社区推广