0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

云计算:Kubernetes架构的八个问题解答

如意 来源:企业网D1Net 作者:Christopher Tozzi 2020-08-19 11:24 次阅读

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生态系统某些领域中享有的声誉。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 云计算
    +关注

    关注

    39

    文章

    7800

    浏览量

    137401
  • 架构
    +关注

    关注

    1

    文章

    514

    浏览量

    25470
  • kubernetes
    +关注

    关注

    0

    文章

    224

    浏览量

    8716
收藏 人收藏

    评论

    相关推荐

    使用ADS1299开发套件时,如何为八个通道输入提供一共同的外部参考?

    请问在使用ADS1299开发套件时,想要为八个通道输入提供一共同的外部参考,在硬件和TI提供的软件上该如何设置?
    发表于 12-16 08:50

    C2000常见问题解答

    电子发烧友网站提供《C2000常见问题解答.pdf》资料免费下载
    发表于 12-06 16:04 0次下载
    C2000常见<b class='flag-5'>问题解答</b>

    电路设计常见问题解答

    电路设计充满挑战,即便是最富经验的工程师也难免遭遇困惑与阻碍。《电路设计常见问题解答》是ADI精心筹备的一份实用指南,力求为您铺设一条清晰的学习与实践之路。
    的头像 发表于 11-05 17:02 441次阅读
    电路设计常见<b class='flag-5'>问题解答</b>

    Kubernetes集群搭建容器需要几台服务器?

    Kubernetes集群搭建容器需要几台服务器?至少需要4台服务器。搭建容器所需的服务器数量以及具体的搭建步骤,会根据所选用的威廉希尔官方网站 栈、业务规模、架构设计以及安全需求等因素而有所不同
    的头像 发表于 10-21 10:06 160次阅读

    BQ2404x、BQ2405x和BQ2409x常见问题解答

    电子发烧友网站提供《BQ2404x、BQ2405x和BQ2409x常见问题解答.pdf》资料免费下载
    发表于 10-14 10:10 0次下载
    BQ2404x、BQ2405x和BQ2409x常见<b class='flag-5'>问题解答</b>

    Keystone EDMA常见问题解答

    电子发烧友网站提供《Keystone EDMA常见问题解答.pdf》资料免费下载
    发表于 10-11 10:43 0次下载
    Keystone EDMA常见<b class='flag-5'>问题解答</b>

    Keystone NDK常见问题解答

    电子发烧友网站提供《Keystone NDK常见问题解答.pdf》资料免费下载
    发表于 10-11 10:41 0次下载
    Keystone NDK常见<b class='flag-5'>问题解答</b>

    TVP51xx产品系列-常见问题解答

    电子发烧友网站提供《TVP51xx产品系列-常见问题解答.pdf》资料免费下载
    发表于 10-08 14:36 0次下载
    TVP51xx产品系列-常见<b class='flag-5'>问题解答</b>

    TFPxxx常见问题解答

    电子发烧友网站提供《TFPxxx常见问题解答.pdf》资料免费下载
    发表于 09-29 09:56 0次下载
    TFPxxx常见<b class='flag-5'>问题解答</b>

    RS-232常见问题解答

    电子发烧友网站提供《RS-232常见问题解答.pdf》资料免费下载
    发表于 09-24 10:55 0次下载
    RS-232常见<b class='flag-5'>问题解答</b>

    MSP MCU上Σ-Δ ADC的常见问题解答

    电子发烧友网站提供《MSP MCU上Σ-Δ ADC的常见问题解答.pdf》资料免费下载
    发表于 09-24 10:53 0次下载
    MSP MCU上Σ-Δ ADC的常见<b class='flag-5'>问题解答</b>

    采用MSP430FR604x MCU的水流和燃气流量计量超声波传感威廉希尔官方网站 的常见问题解答(FAQ)

    电子发烧友网站提供《采用MSP430FR604x MCU的水流和燃气流量计量超声波传感威廉希尔官方网站 的常见问题解答(FAQ).pdf》资料免费下载
    发表于 09-23 12:23 0次下载
    采用MSP430FR604x MCU的水流和燃气流量计量超声波传感威廉希尔官方网站
的常见<b class='flag-5'>问题解答</b>(FAQ)

    关于UCC25640x LLC谐振控制器的常见问题解答

    电子发烧友网站提供《关于UCC25640x LLC谐振控制器的常见问题解答.pdf》资料免费下载
    发表于 09-04 09:37 0次下载
    关于UCC25640x LLC谐振控制器的常见<b class='flag-5'>问题解答</b>

    OMAPL138/C6748 ROM引导加载程序资源和常见问题解答

    电子发烧友网站提供《OMAPL138/C6748 ROM引导加载程序资源和常见问题解答.pdf》资料免费下载
    发表于 09-04 09:31 0次下载
    OMAPL138/C6748 ROM引导加载程序资源和常见<b class='flag-5'>问题解答</b>

    TMP LM 75比较常见问题解答

    电子发烧友网站提供《TMP LM 75比较常见问题解答.pdf》资料免费下载
    发表于 08-30 11:40 0次下载
    TMP LM 75比较常见<b class='flag-5'>问题解答</b>