使用Kubernetes的四个原因
发布时间:2021-06-07 10:00:45 所属栏目:云计算 来源:互联网
导读:大多数现代软件开发人员可以证明,容器为我们提供了更大的灵活性,可以在物理和虚拟基础架构上运行云原生应用程序。容器将组成应用程序的服务打包,并使其可在不同的计算环境中移植,以供开发/测试和生产使用。使用容器,可以轻松地快速扩展应用程序实例以适
|
大多数现代软件开发人员可以证明,容器为我们提供了更大的灵活性,可以在物理和虚拟基础架构上运行云原生应用程序。容器将组成应用程序的服务打包,并使其可在不同的计算环境中移植,以供开发/测试和生产使用。使用容器,可以轻松地快速扩展应用程序实例以适应需求的高峰。而且由于容器利用了主机OS的资源,因此它们的重量比虚拟机轻得多。这意味着容器可以高效利用基础服务器基础架构。到目前为止,一切都很好。
但是,尽管容器运行时API非常适合于管理单个容器,但在管理可能包含分布在多个主机上的数百个容器的应用程序时,它们仍然远远不足。需要管理容器并将其连接到外部,以执行诸如调度,负载平衡和分发之类的任务,这就是诸如Kubernetes这样的容器编排工具所独有的地方。
Kubernetes是一个用于部署,扩展和管理容器化应用程序的开源系统,可处理将容器调度到计算集群上的工作,并管理工作量以确保它们按用户预期的方式运行。Kubernetes并没有在事后再加上操作,而是通过设计将软件开发和操作结合在一起。通过使用声明性的,与基础结构无关的构造来描述应用程序的组成方式,它们如何交互以及如何管理它们,Kubernetes使得现代软件系统的可操作性得到了大幅度的提高。Kubernetes是由Google根据自己在生产中运行容器的经验而构建的,它的成功很大程度上归功于Google的参与。Google拥有地球上一些最有才华的软件开发人员,并且按规模运行着一些最大的软件服务。这种结合确保了Kubernetes将成为坚如磐石的平台,几乎可以满足任何组织的扩展需求。
本文解释了Kubernetes为什么如此重要以及为什么它标志着Devops团队向前迈出了重要的一步。
当今的基础架构框架
如今,开发人员被要求编写在多个操作环境中运行的应用程序,包括专用的本地服务器,虚拟化的私有云以及诸如AWS和Azure的公共云。传统上,支持它们的应用程序和工具与底层基础结构紧密联系在一起,因此尽管具有潜在优势,但使用其他部署模型的成本很高。这意味着应用程序在多个方面都依赖于特定环境,包括与特定网络体系结构有关的性能问题;遵守特定于云提供商的架构,例如专有的编排技术;以及对特定后端存储系统的依赖性。PaaS试图解决这些问题,但通常以在编程语言和应用程序框架等领域提出严格要求为代价。因此,PaaS对许多开发团队来说都是禁区。Kubernetes通过为容器提供核心功能而没有施加限制,从而消除了基础架构锁定。它通过结合Kubernetes平台内的功能(包括Pod和Services)来实现此目的。
通过模块化改善管理
容器允许将应用程序分解为较小的部分,并且可以将关注点清楚地分开。为单个容器映像提供的抽象层使我们可以从根本上重新考虑分布式应用程序的构建方式。这种模块化的方法可以使规模较小,专注程度更高的团队加快开发速度,每个团队分别负责特定的容器。它还使我们能够隔离依赖关系,并广泛使用经过调整的较小组件。但是,仅靠容器是无法实现的;它需要一个用于集成和编排这些模块化部件的系统。Kubernetes在某种程度上使用Pod来实现这一目标-Pod通常是作为单个应用程序控制的一组容器。容器共享资源,例如文件系统,内核名称空间和IP地址。通过允许以这种方式并置容器,Kubernetes消除了将太多功能塞入单个容器映像的诱惑。Kubernetes中的服务概念用于将执行类似功能的Pod集合组合在一起。可以轻松配置服务以实现可发现性,可观察性,水平扩展和负载平衡。
大规模部署和更新软件
Devops作为一种加快构建,测试和发布软件过程的方法而出现。其必然结果是将重点从管理基础结构转移到管理软件的大规模部署和更新方式。大多数基础架构框架都不支持该模型,但是Kubernetes可以部分支持Kubernetes Controller。借助控制器,可以轻松使用基础架构来管理应用程序生命周期。部署控制器简化了许多复杂的管理任务。
![]() (编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

