原创:Higx
(Vol. 040)
云宏大讲坛
Vol. 040
在不久前《容器的前世今生》中,追求技术前沿的小伙伴对于容器技术的发展历史已经抓住了脉络。但对于容器编排引擎Kubernetes的概念,则了解得较为模糊。那么,Kubernetes究竟是什么?
Kubernetes的希腊语意为“舵手”,缩写为k8s。正所谓“大海航行靠舵手,容器运行靠编排”,Kubernetes的主要功能就是调度控制容器的一切。目前,Kubernetes已经成为容器编排调度的实际标准。
Kubernetes来源于Google内部大规模容器集群管理系统Borg的开源版本,目前迭代周期越来越快,变得越来越稳定易用。而Kubernetes如今大获成功的原因,一是技术背景足够坚实,二是CNCF(Cloud Native Computing Foundation,云原生计算基金会)对其大力的推广,三是架构的开放性使得Kubernetes可以迅速扩展出容器的基础生态。目前基于Kubernetes及容器的周边已经极其丰富,生态涵盖了平台、容器运行时、网络、存储、数据库等等,而且组织还在不断壮大中。
Kubernetes及容器周边生态图
所以,Kubernetes能够做什么,受到业内这么多的追捧?
它是一个容器管理平台,用于管理微服务架构,理论上它可以管理约300,000个容器。假如按一个微服务需要30个容器计算,那么它可以编排管理1w个微服务应用。这种强大的性能,与其优秀的架构设计有关,其中关键点是其API设计属于声明式的。
Tips:
系统接口控制方式有“命令式”和“声明式”两种设计模式。
命令式设计,相当于独揽所有权力,例如用户要在10台机上部署10个容器,它就一个个的亲自去干活去了。这样的系统有着效率低下、单点故障、无法扩展等问题,随着系统规划扩大,问题会越来越严重,最后直到奔溃。
声明式设计,相当一块通告板,用户把不同的任务写在纸条贴在板上,然后号召一群小伙伴来处理;他们分别处理完不同任务并在纸条上记录结果,直到所有预期的结果全部完成。这样的系统可用性高,即使部分任务缺失也不影响其它任务,而且工作效率更高。
Cloud computing概念图
由于“贴在板上的纸”可以自定义(Kubernetes中的概念为CRD),基于这个贴纸来工作的“小伙伴”可以随时添加或更改(如加入不同能力的小伙伴协助处理),所以系统可以干很多不同的活。如开源社区中很火的Operators列表,可以管理各种分布式的服务应用,如nosql数据库、分布式中间件、人工智能等。通过operator把管理运维这些系统的经验固化后,用户可以更好地运维不同的分布式应用。在这个列表里,Android SDK的开发者们正在使用Operator“一键”生成和更新Android开发环境;而Linux系统工程师们则在使用Operator“一键”重现性能测试集群,等等。
Kubernetes还能做什么?在PaaS平台,借助其强大的容器编排能力和丰富的社区生态,在Kubernetes上构建的PaaS平台成为多数厂商的共识,云原生应用得以在上面落实得很好。在边缘计算方面,借助其强大的分布式微服务混合云管理能力,在边缘计算层解决了“最后一公里”云原生应用的供应问题,成为了云计算在未来发展中的重要落地支撑,推进边缘计算与云计算的彼此融合,实现“边云协同”的新阶段。
此外,Kubernetes社区是以SIG(Special Interest Group,特别兴趣小组)和工作组的形式组织起来的,覆盖了应用、大数据、Openstack、网络、存储等不同的领域,每个工作组都会定期召开会议讨论技术及新功能,共同促进Kubernetes朝着不同兴趣方向的发展。
如果各位小伙伴已经跃跃欲试想要试一试Kubernetes的功能,可以借助于云宏WinGarden容器云平台。WinGarden容器云平台为管理多Kubernetes的企业级容器管理平台,是专门针对企业级客户设计的安全、稳定、易管理和运维的轻量级容器云平台,为企业提供真正的云原生应用管理架构,帮助企业建立弹性、可伸缩、快速迭代和灵活敏捷的应用架构。借WinGarden之力,你可以快速部署出一个集群环境,然后....... Kubernetes嘿起来!
原文地址:https://blog.51cto.com/14035356/2379666