作为时下最火热的热点词汇:Kubernetes,其拥有成熟的社区,大公司的背景等等获得了大部分人的认可,很多公司都在准备启用Kubernetes,但是你的企业真的准备好了去采用Kubernetes这项技术吗? 数人云今天给大家分享的本篇文章将从源头——容器入手,逐步分析选择Kubernetes所需要的思考及准备。
什么是容器?K8S适合在哪?需要什么工具去实现?
容器的使用比例正在迅速增长,开发商热爱它,企业也以前所未有的热情去拥抱它。
如果你的IT部门正在寻求一种更快,更简单的方法去进行应用开发,那么容器技术正好可以满足需求,但什么是容器呢?它们都会处理哪些问题?Kubernetes是否适用于容器和集群管理空间?为什么要向企业展示实施挑战?在探索容器和集群管理工具是否适合应用开发需求时,应考虑哪些因素?
以下是每个企业需要了解容器、容器集群管理、Kubernetes的优缺点以及如何从Kubernetes实现中获得最大利益的一些要点。
容器及其解决的问题
当应用开发人员进行测试时,必须确保在从一个计算环境移动到另一个计算环境时能够可靠得运行,这可能来自于从一个登台环境到生产环境,或者从一个前期服务器到云中的虚拟机,这产生的问题就是,不同的环境很少是共生的,软件可能不同,但网络和安全环境几乎不可能相同。
容器通过将组成的开发环境所有东西打包成一个包去解决这个问题,这引入了环境一致性的级别,并允许开发人员以相同的方式快速、可靠得部署应用程序,而不管部署环境如何,通过对应用平台及其依赖关系的容器化,操作系统分布和底层基础结构的差异被抽象出来了,事实上,使用容器,就可以忘记所有的基础设施。
模块化的、可执行的应用包应用,容器包括需要运行一个应用的每个元素——从代码到设置,这种可移植性使容器成为组织思考多云策略的重要资产。
容器还可以帮主准备适当的DevOps实现及高效、快速交付的目标,使用容器,可以更新和升级且不需要从每次开始的遗留问题,这也多亏了容器,在现有系统中实现新的应用和效率并不像想象的那么难。
最近的一项调查显示,在过去的12个月里,94%的受访者曾调研或正在使用比虚拟机更轻,资源更少的容器技术。
正在引领容器技术的公司
Docker现在是主流的容器技术,已经有了成熟的技术栈,强大的开源生态系统,且与任何平台的高强度兼容性,以及最主要的机遇和运气。Docker已经远远超越了曾经的对手——rkt,OpenVZ和LXC,与底层基础设施不可变和独立,让Docker在开发者机器上运行的方式与在生产环境中是一样的。
容器管理工具如何有效的管理容器
为了有效得实现DevOps方法,在企业级应用开发和有效管理容器技术和平台,需要合适的工具。
这就是容器集群管理或容器编排解决方案发挥作用的地方,随着企业将容器的使用扩展到生产中,问题出现在管理哪些容器运行在哪里,如何处理所有的这些容器,以及确保跨宿主的容器之间的简化通信,这些容器被称之为“集群”。
容器集群管理工具提供了一个企业框架,用于在大规模上集成和管理容器,并确保在实践DevOps时保持必要的连续性,基本上,它们可以帮助您定义初始容器部署,同时在后台处理关键的IT功能,如可用性、伸缩性和网络——所有这些都是Streamlined、标准化和统一的。
Kubernetes如何助力DevOps
根据Gartner最近的一项调查显示,大约50%的受访者计划在2017年年底前实施持续交付和DevOps,以便更快、更频繁、更可靠得提供服务,Puppet Labs发布的DevOps报告显示,专注于自动化和DevOps的高性能企业能够减少它们的交付和变更时间,因为它们提供的服务改变了4440个,并且增加了46倍的服务。这些结果帮助DevOps采用了一种主流的企业IT现象,因此,今天我们在几乎所有的行业和公司规模上都看到了DevOps的采用。
尽管DevOps的快速采用有许多驱动因素,但在技术方面,容器在提高所有团队的自动化程度方面发挥了关键性作用,由于Linux容器的简单性、可用性和可移植性,曾经为高度工程关注的组织保留的自动化技术现在已经变得可用了。
容器提供了标准的打包格式和运行时,无论应用是如何架构、配置和在容器内运行,都可以运行任何应用,标准化是一个操作系统、中间件、数据库和其他组建的长期标准操作环境(SOE)项目的目标,实际上已经变成了今天的容器,因此本文坐着看来,这是DevOps人气的主要转折点。
尽管容器可以提供标准化,但容器不能解决的是实现持续交付和DevOps所倡导的其他原则所需的端到端自动化,容器提供坚实的标准地面,然而,自动化的过程应该在它之上,以使更快的服务交付。
Kubernetes是在Googer的15年以上容器经验中诞生的,作为一个精心策划的框架,被创建并捐赠给社区,容器的自动化部署和管理基础设施无论使用如虚拟化服务器的基础设施,私有云或公有云等,在GitHub上,Kubernetes已经成为了最活跃的开放源码项目之一,有上千万的贡献者和数以百计的供应商。
虽然Kubernetes不提供完整的连续交付自动化,但它提供了比容器提供的坚实基础更高的起点,在容器中运行容器的许多操作复杂性已经通过编排框架来解决,尽管Kubernetes仍然需要团队在其上面构建一个端到端的自动化流程,但它确实提供了许多现成的模块,帮助用户构建一个定制的自动化流程,以进行持续交付。
哪些企业容器集群管理解决方案可用
对于容器集群管理有多种选择,然而Kubernetes现在比较火热,称为最广泛的开源解决方案,经过15年的Google研发,以及令人羡慕的开源社区(包括红帽、Canonical、CoreOS和微软),Kuberentes的成熟速度比市场上任何其他产品都要快。
Kubernetes为容器集群管理提供了一个很好的选择,因为它为开发者提供了一种工具,可以快速高效地响应客户需求,同时减轻云中的运行应用负担。通过消除与部署和伸缩您的容器应用相关的许多手工任务,以便在从一个环境移动到另一个环境时更可靠得运行应用,例如:可以调度并将任意数量的容器部署到节点集群(在公共、私有或混合云中)。然后Kubernetes扶着管理这些工作负载,让其执行意愿。
由于Kubernetes,容器任务被简化,包括部署操作(水平自动伸缩、滚动更新、金丝雀部署)和管理(监视资源、应用健康检查、调试应用等)。
Kubernetes的门槛
尽管Kubernetes有很多优势,但正如之前讨论过的,在选择最好的Kubernetes管理平台时,其仍然相对难以设置和使用,管理Kubernetes是一个耗时的过程,需要高技能的员工和一个潜在的巨大的货币承诺,对于没有经过培训的人员来说,Kubernetes似乎可以在数小时或数天内运行,但在生产环境中,需要额外的功能——安全性、高可用性、灾难恢复、备份和维护——所有需要让Kubernetes生产“准备就绪”的一切都是如此。
其结果是,那些应用了Kubernetes的企业很快就意识到,他们无法在不引入技术和昂贵外部资源的情况下交付它。
那么,有什么选择呢?答案在于Kubernetes的管理工具,为了简化企业的Kubernetes管理,即使你的系统是刚性的,流行的解决方案包括构造,红帽的开放移动容器平台,Rancher,andKublr。
如何选择正确的Kubernetes管理平台
当为企业选择Kubernetes管理平台时,有很多事情需要考虑,包括:
产品准备就绪:它是否提供了您需要完全自动化的Kubernetes配置的特性,没有配置麻烦?是否具有企业级的安全特性?它会自动处理集群中的所有管理任务吗?它是否为您的应用程序提供高可用性、可伸缩性和自愈性?
未来准备就绪:平台是否支持多云策略?尽管Kubernetes允许在任何地方运行应用且不需要使它们适应新的托管环境,但要确保Kubernetes管理平台能够支持这些功能,以便在将来需要时可以进行配置。
易于管理:是否包含自动化的智能监控和警报?是否消除了分析Kubernetes原始数据的问题,以便对系统状态、错误、事件和告警有一个单一的窗格视图。
支持和培训:当企业准备应用容器化战略时,Kuernetes管理平台提供商是否向企业保证24X7的支持以及培训?
在所有可用的选择中,只有少数的一些公司,如Kublr支持了这些选项。加速和简化了Kubernetes的建立和管理,提供自愈的自动伸缩解决方案,可以将遗留系统引入到单个引擎的云上,同时可以在后台无缝得维护、重建或替换它们,模块之间的动态、灵活性和不匹配的透明性,是一种双赢。
如何选择正确的Kubernetes管理平台供应商
当思考和计划Kubernetes企业战略时,要明确自己在前进道路上的障碍,以及对Kubernetes的挑战和误解,找出应当在Kubernetes平台上寻找什么,花点时间做一个Kubernetes平台的比较,最后,看看自动化工具如何能够提供生产准备(最重要的特性)、未来准备、易于管理和支持需要使用Kubernetes。
以上是小数今天分享的文章,给想采用Kubernetes的企业供以参考,希望对大家有所帮助。
原文作者:Kublr Team