当前位置:首页 > 云计算 > 使用Kubernetes的四个理由 > 正文

使用Kubernetes的四个理由

导读:大多数现代软件开发人员可以证明容器为我们在物理和虚拟基础架构上运行云本地应用程序提供了更大的灵活性。容器将组成应用程序的服务打包,并使其在不同的计算环境中可移植,以

大多数现代软件开发人员可以证明容器为我们在物理和虚拟基础架构上运行云本地应用程序提供了更大的灵活性。容器将组成应用程序的服务打包,并使其在不同的计算环境中可移植,以进行开发/测试和生产。使用容器,应用程序实例可以轻松快速地扩展,以适应高峰需求。因为容器使用主机操作系统的资源,所以它们比虚拟机轻得多。这意味着容器可以有效地利用底层服务器的基础设施。到目前为止,一切都很好。

AI人工智能网

然而,尽管容器运行时应用编程接口非常适合管理单个容器应用程序,但当管理可能分布在多个主机上的数百个容器应用程序时,它仍然远远不够。有必要管理容器并将其连接到外部,以执行调度、负载平衡和分配等任务,这是容器业务流程工具(如Kubernetes)所独有的。

Kubernetes是一个用于部署、扩展和管理容器应用程序的开源系统。它可以处理调度容器的工作来计算集群并管理工作负载,以确保它们按照用户的预期运行。Kubernetes之后不会添加操作,而是通过设计将软件开发和操作结合起来。通过使用声明性的、独立于基础设施的结构来描述应用程序的组成、它们如何交互以及它们如何被管理,Kubernetes极大地提高了现代软件系统的可操作性。Kubernetes是谷歌根据自己在生产中运行容器的经验构建的,它的成功很大程度上归功于谷歌的参与。谷歌拥有世界上最有才华的软件开发人员,并大规模运营一些最大的软件服务。这种组合确保了Kubernetes将成为一个坚如磐石的平台,能够满足几乎任何组织的扩展需求。

这篇文章解释了为什么Kubernetes如此重要,以及为什么它标志着Devops团队向前迈出了重要的一步。

今天的基础设施框架

如今,开发人员需要编写在多种操作环境下运行的应用程序,包括专用本地服务器、虚拟化私有云以及公共云(如AWS和Azure)。传统上,支持它们的应用程序和工具与底层基础架构紧密相连,因此尽管它们有潜在的优势,但使用其他部署模型的成本很高。这意味着应用程序在许多方面依赖于特定的环境,包括与特定网络体系结构相关的性能问题;遵守特定于云提供商的架构,例如专有的流程编排技术;以及对特定后端存储系统的依赖。PaaS试图解决这些问题,但通常以牺牲编程语言和应用程序框架等领域的严格要求为代价。因此,PaaS是许多开发团队的禁区。Kubernetes无限制地为容器提供核心功能,从而解除基础架构锁定。它通过将Kubernetes平台(包括Pod和服务)中的功能结合起来实现了这个目标。

通过模块化改进管理

容器允许应用程序被分解成更小的部分,焦点被清楚地分开。为单一容器映像提供的抽象层使我们能够从根本上重新考虑分布式应用程序是如何构建的。这种模块化方法使得更小、更专注的团队能够加速开发,每个团队负责一个特定的容器。它还使我们能够隔离依赖关系,并广泛使用经过调整的较小组件。然而,它不能仅通过容器来实现;它需要一个系统来集成和安排这些模块化组件。Kubernetes在某种程度上,Pod用于实现这一目标-Pod通常是作为单个应用程序控制的一个组容器。容器共享资源,如文件系统、内核名称空间和IP地址。通过允许容器,Kubernetes以这种方式并置,消除了在单个容器图像中塞入太多函数的诱惑。Kubernetes中的服务概念用于将执行类似功能的Pod集组合在一起。服务可以很容易地配置为可发现、可观察、水平扩展和负载平衡。

软件的大规模部署和更新

Devops是作为一种加速软件构建、测试和分发过程的方式出现的。不可避免的结果是将焦点从管理基础设施转移到管理软件的大规模部署和更新。大多数基础架构框架不支持这种模型,但是Kubernetes可以部分支持Kubernetes控制器。控制器使得使用基础设施来管理应用程序生命周期变得很容易。部署控制器简化了许多复杂的管理任务。例如:

1.可扩展性:软件可以首次以横向扩展的方式部署在Pod中,并且可以随时扩展或横向扩展部署。

2.可见性:使用状态查询功能来识别已完成、正在进行和失败的部署。

3.节省时间:随时暂停部署,稍后恢复。

4.版本控制:如果当前版本不稳定,用应用程序映像的较新版本更新已部署的Pod,并回滚到较早的部署。

在其他可能性中,Kubernetes简化了某些对现代应用程序开发人员特别有价值的部署操作。这些包括:

1.水平自动缩放:Kubernetes自动缩放器根据指定资源的使用情况(在定义的限制内)自动确定部署的Pod数量。

2.滚动更新:Kubernetes部署的更新在部署的Pod中以“滚动方式”排列。这些滚动更新是在对可能不可用的PODs数量和可能暂时存在的备用PODs数量进行可选预定义限制时精心策划的。

3.金丝雀部署:当部署新版本的部署时,一个有用的模式是在生产环境中与以前的版本并行测试新的部署,并在减少以前的部署的同时扩展新的部署。

与传统的全包含PaaS产品不同,Kubernetes为受支持的应用程序类型提供了广泛的自由度。它没有指定应用程序框架(例如,野火),限制支持的语言(Java、Python、Ruby)的运行时间,只满足12个因素的应用程序,并且不区分“应用程序”和“服务”Kubernetes支持各种工作负载,包括无状态、有状态和数据处理工作负载。如果应用程序可以在容器上运行,它应该在Kubernetes上运行良好。

为云本地应用奠定基础

鉴于对容器的兴趣,出现其他管理和编排工具也就不足为奇了。受欢迎的替代品包括阿帕奇Mesos和马拉松、DockersSwarm、AWSC 2 容器服务(ECS)和Nomad和HashiCorp。每一种都有其优点。码头工人群与码头工人运行时紧密相关,因此用户可以很容易地从码头工人群过渡到群;Mesos和马拉松不限于容器,还可以部署任何类型的应用程序。当前AWS co用户更容易访问AWS co。但是,Kubernetes群集可以在EC2上运行,并与亚马逊弹性块存储、弹性负载平衡、自动扩展组和其他服务集成。这些框架开始在特性和功能上相互复制,但是由于它们的架构、创新和周围的大型开源社区,Kubernetes仍然非常流行。Kubernetes对开发人员来说是一个突破,因为它使团队能够跟上现代软件开发的需求。没有Kubernetes,团队经常被迫为软件部署、工作流的扩展和更新编写自己的脚本。一些组织雇佣大型团队独自处理这些任务。Kubernetes允许我们从容器中获得最大的效用,并构建可以在任何地方运行的云本地应用程序,而不考虑云的特定需求。显然,这是我们一直在等待的应用程序开发和操作的有效模型。

原始链接:https://www . info world . com/article/3173266/4-reasons-you-should-use-kubernetes . html


推荐阅读:

      使用Kubernetes的四个理由

最新动态