Kubernetes架构的8个问题
Kubernetes的架构非常适合大规模的组织,但是对于中小组织来说,它可能会过于复杂。
作为开源容器编排器,Kubernetes已经成为组织部署容器化应用程序的实际解决方案。这其中有一些充分的理由,其中包括Kubernetes提供高度的可靠性、自动化、可扩展性的事实。尽管如此,有此行业人士还是认为Kubernetes架构过于复杂。虽然已经有6年以上的应用历史,但它还是有许多缺点。其中一些缺点是Kubernetes本身所固有的,而另一些缺点则是围绕该平台成长起来的生态系统的产物。
在部署Kubernetes之前,企业需要考虑以下开源容器编排器的一些问题。
1. Kubernetes是为大规模的公司设计的
首先,Kubernetes架构始终是为需要管理超大规模应用程序环境的组织而构建的。对于谷歌公司来说(Borg编排者构成了成为开源Kubernetes项目的基础),Kubernetes是一个很好的工具。而对于拥有数十个数据中心以及数千个分布在其中的应用程序和服务的Netflix、Facebook、AWS等其他大规模的公司来说,也是如此。
但是如果是一个规模较小的组织,并且只有一个可能只部署十几个应用程序的数据中心,那么Kubernetes架构无疑规模过于庞大,这可能就像驾驶推土机为后院花园翻土一样大材小用。除非是大规模使用,否则配置和管理它需要解决大量的问题。
2. Kubernetes有很多发行版
Kubernetes架构的另一个问题是,Kubernetes有很多发行版,以及大量与其相关的不同的工具、理念和观点。
当然,在某种程度上,任何开源生态系统中都会发生分裂。例如,RedHat Linux与Ubuntu Linux具有不同的软件包管理器、管理工具等。但是,RedHat和Ubuntu的相似之处远大于区别。对于使用Red Hat系统的管理员来说,如果要迁移到Ubuntu,则不需要花费六个月的时间自学新工具。
行业专家并不认为Kubernetes也是如此。如果现在正在使用OpenShift,但又想切换到VMware Tanzu,则其学习过程将非常艰巨。尽管这两个Kubernetes发行版都使用相同的基础平台Kubernetes,但是它们添加的方法和工具却截然不同。
基于云计算的Kubernetes服务也有类似的分裂。Google Kubernetes Engine(GKE)与Amazon EKS(相当于AWS云)等平台相比,具有截然不同的用户体验和管理工具套件。
当然,这并不是Kubernetes架构本身的错,而是不同供应商尝试使其Kubernetes产品实现差异化的结果。但是从Kubernetes用户的角度来看,这仍然是一个现实问题。
3. Kubernetes是多个部分组成的平台
人们将Kubernetes当作一个平台,但实际上它由6个以上的不同组件组成。这意味着当安装或更新Kubernetes时,必须分别处理每个组件。而且大多数Kubernetes发行版都缺乏执行这些操作的自动化解决方案。
当然,Kubernetes是一个复杂的平台,它需要多个部分组合才能工作。但是与其他复杂平台相比,Kubernetes在将其各个部分集成到一个易于管理的整体方面做得特别糟糕。典型Linux发行版也包含许多不同的软件。但是用户能够以集中、简化的方式安装和管理它们。Kubernetes架构并非如此。
4. Kubernetes不会自动地保证高可用性
使用Kubernetes的最常被提及的原因之一是,它以一种神奇的方式管理应用程序,保证它们永远不会失败,即使部分基础设施出现故障。
确实,Kubernetes架构可以做出明智的自动决策,以决定将工作负载放置在集群中的位置。但是,Kubernetes并不是实现高可用性的灵丹妙药。例如,它将在只有一个主节点的生产环境中运行,这是关闭整个集群的方法(如果主要服务器出现故障,则整个集群将基本上停止运行)。
Kubernetes也不能自动保证在集群中运行的不同工作负载之间正确分配资源。要进行设置,用户需要人工设置资源配额。
5.很难人工控制Kubernetes
尽管Kubernetes需要大量的人工干预才能提供高可用性,但是如果确实要这样做,它会使人工控制变得相当困难。
可以肯定的是,有一些方法可以修改Kubernetes执行的探测时间,以确定容器是否正常运行,或者强制工作负载在集群中的特定服务器上运行。但是,Kubernetes架构的设计并不期望管理员会进行这些人工更改。
如上所述,Kubernetes首先是针对Web规模的部署,这是有道理的。如果用户有数千台服务器和数百个工作负载,将不会人工配置许多东西。但是如果是一家规模较小的公司,并且想要更好地控制集群中工作负载的结构方式,那么采用Kubernetes很难做到这一点。
6. Kubernetes监视和性能优化面临挑战
Kubernetes试图在保持工作负载正常运行方面做得很好(尽管如上所述,其能力取决于诸如用户设置的管理者数量以及如何组织资源分配等因素)。
但是Kubernetes架构并不能帮助用户监视工作负载或确保它们表现最佳。它不会在出现问题时向用户发出警报,而且从集群中收集监视数据也不太容易。Kubernetes发行版随附的大多数监视仪表板也无法提供对环境的深入可见性。采用第三方工具可以使用户获得可见性,但是如果要运行Kubernetes,则必须设置、学习和管理这些工具。
同样,Kubernetes也不擅长帮助用户优化成本。它不会通知用户集群中的服务器是否仅以20%的容量使用,这可能意味着用户在过度配置的基础设施方面浪费了资金。同样,第三方工具可以帮助用户应对诸如此类的挑战,但它们会增加复杂性。
7. Kubernetes将所有内容简化为代码
在Kubernetes中,完成几乎所有任务都需要用户编写代码。通常情况下,其代码采用YAML文件的形式,然后必须在Kubernetes命令行上应用它们。
许多人会把Kubernetes架构的所有代码要求作为功能而不是错误。然而,虽然使用单一方法和工具(即YAML文件)可以管理整个平台,但确实希望Kubernetes能为需要它们的人提供其他选择。
有时候,用户不想编写一个很长的YAML文件(或从GitHub中提取一个文件,然后人工调整其中的随机部分以适合其环境)来部署简单的工作负载。用户希望按下一个按钮或运行一个简单的命令(这指的是不需要十几个参数的kubectl命令,其中许多参数都配置有必须复制和粘贴的数据串)。需要在Kubernetes中做一些简单的事情。但是这种情况很少发生。
8. Kubernetes希望控制一切
Kubernetes的最后一个问题是,它的设计并不能很好地与其他类型的系统配合。它希望成为用户用来部署和管理应用程序的唯一平台。
如果用户的所有工作负载都是容器化的,并且可以由Kubernetes进行协调,这是一个很好的结果。但是,如果用户拥有无法作为容器运行的原有应用程序怎么办?或者,如果想在Kubernetes集群上运行一部分工作负载,而又有一部分在外部运行呢?Kubernetes不提供执行这些操作的原生功能。其设计的前提是希望一直在容器中运行所有内容。
结论
Kubernetes其实是编排大型容器化应用程序的强大工具。 Kubernetes有很多适合的用例。
但是Kubernetes架构也有一些缺点。总体而言,如果用户要管理原有的工作负载或部署规模不足以证明Kubernetes带来的所有复杂性,那么就不是一个很好的解决方案。为了证明它的全部价值,Kubernetes应该解决这些问题,以便它可以完全匹配其在IT生态系统某些领域中享有的声誉。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
云计算到底是谁发明的?
本文转载自微信公众号「鲜枣课堂」,作者小枣君 。转载本文请联系鲜枣课堂公众号。 说到云计算的起源,公众普遍认为,谷歌前CEO埃里克·施密特是云计算概念的第一个提出者。 2006年8月9日,在搜索引擎大会(SES San Jose 2006)上,他提出了“云计算(Cloud Computing)”的概念。 埃里克·施密特(Eric Schmidt) 也有人认为,当今云计算市场的龙头老大——美国亚马逊(Amazon)公司,在更早的2006年3月,就正式推出了自家的弹性计算云(Elastic Compute Cloud,EC2)服务,是事实上的云计算开创者。 其实,准确来说,不管是谷歌还是亚马逊,都不是云计算的发明人。云计算概念的提出,远比我们想象中要早得多。 今天这篇文章,我们就针对云计算来一次彻底的“寻根问祖”。 � Part.1 公共计算——云计算理论的萌芽 大家应该还记得,我们的计算机通识课本里说过,世界上第一台电子计算机是ENIAC(埃尼阿克)。 Electronic Numerical Integrator And Computer 电子数字积分计算机 其实,严谨来说,ENIAC...
- 下一篇
三大运营商半年报:5G建网加速 宽带业务重在价值重塑
截至昨日,三大运营商已悉数发布上半年业绩报告:在疫情的影响下,都实现了不同程度的收入增长,其中中国联通营收和利润双增,而中国移动利润出现小幅下降;三大运营商的5G建网速度在加快;固网宽带业务由于人口红利已经接近天花板,都重点对固网宽带业务进行价值重塑,效果显著。 财务数字:中国联通营收净利双增且增速最快 2020年上半年,无论营收还是净利,中国联通都是双增,且增速最快,其次是中国电信,而拥有庞大数字基础的中国移动则出现营收略增、净利下降的状况。 从营收上来看,尽管上半年一直在受疫情的波及影响,但同比去年并未下降。中国移动当然是比较高的,比电信联通总和还要高。但论营收增长率来说,中国联通增长最快,其次电信,中国移动增长最慢。 2020年上半年中国移动营收3899 亿元,同比增长 0.1%,其中通信服务收入 3582 亿元,同比增长 1.9%;中国电信营收1938.03亿元,比去年同期上升1.7%,其中移动服务收入为1871.1亿元,同比增长2.5%;中国联通营收1503.97亿元,同比增长3.8%,其中通信服务收入1383 亿元,同比上升 4.0%。 从利润上来看,相比去年中国联通增速最...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2整合Redis,开启缓存,提高访问速度
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16