一文了解Kubernetes的前世今生

简介: 近十几年来,IT领域新技术、新概念层出不穷,例如DevOps、微服务(Microservice)、容器(Container)、云计算(Cloud Computing)和区块链(Blockchain)等,直有“乱花渐欲迷人眼”之势。

近十几年来,IT领域新技术、新概念层出不穷,例如DevOps、微服务(Microservice)、容器(Container)、云计算(Cloud Computing)和区块链(Blockchain)等,直有“乱花渐欲迷人眼”之势。另外,出于业务的需要,IT应用模型也在不断地变革,例如,开发模式从瀑布式(Waterfall)到敏捷(Agile)再到精益(Lean),甚至是与QA和Operations融合的DevOps,应用程序架构从单体(monolithic)模型到分层模型再到微服务,部署及打包方式从面向物理机到虚拟机再到容器,应用程序的基础架构从自建机房到托管再到云计算,等等,这些变革使得IT技术应用的效率大大提升,同时却以更低的成本交付更高质量的产品。
尤其是以Docker为代表的容器技术的出现,终结了DevOps中交付和部署环节因环境、配置及程序本身的不同而造成的动辄几种甚至十几种部署配置的困境,将它们统一在容器镜像(image)之上。如今,越来越多的企业或组织开始选择以镜像文件作为交付载体。容器镜像之内直接包含了应用程序及其依赖的系统环境、库、基础程序等,从而能够在容器引擎上直接运行。于是,IT运维工程师(operator)无须关注开发应用程序的编程语言、环境配置等,甚至连业务逻辑本身也不必过多关注,而只需要掌握容器管理的单一工具链即可。

部署的复杂度虽然降低了,但以容器格式运行的应用程序间的协同却成了一个新的亟待解决的问题,这种需求在微服务架构中表现得尤为明显。结果,以Kubernetes为代表的容器编排系统应需而生。
222

尽管公开面世不过短短数年时间,Kubernetes业已成为容器编排领域事实上的标准,其近一两年的发展状态也在不断地验证着Urs H?lzle曾经的断言:无论是公有云、私有云抑或混合云,Kubernetes都将作为一个为任何应用、任何环境提供的容器管理框架而无处不在。

Kubernetes(来自希腊语,意为“舵手”或“飞行员”)由Joe Beda、Brendan Burns和Craig McLuckie创立,而后Google的其他几位工程师,包括Brian Grant和Tim Hockin等加盟共同研发,并由Google在2014年首次对外宣布。Kubernetes的开发和设计都深受Google内部系统Borg的影响,事实上,它的许多顶级贡献者之前也是Borg系统的开发者。

Borg是Google内部使用的大规模集群管理系统,久负盛名。它建构于容器技术之上,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率最大化。2015年4月,Borg论文《Large-scale cluster management at Google with Borg》伴随Kubernetes的高调宣传被Google首次公开,人们终于有缘得窥其全貌。

事实上,正是由于诞生于容器世家Google,并站在Borg这个巨人的肩膀之上,充分受益于Borg过去十数年间积累的经验和教训,Kubernetes甫一面世就立即广受关注和青睐,并迅速称霸了容器编排技术领域。很多人将Kubernetes视为Borg系统的一个开源实现版本,在Google内部,Kubernetes的原始代号曾经是Serven of Nine,即星际迷航中友好的“Borg”角色,它标识中的舵轮有七个轮辐就是对该项目代号的致意,如图所示。
111
Kubernetes v1.0于2015年7月21日发布,紧随其后,Google与Linux基金会合作组建了Cloud Native Computing Foundation(云原生计算基金会,简称为CNCF),并将Kubernetes作为种子技术予以提供。这之后,Kubernetes进入了版本快速迭代期,从此不断地融入着新功能,如Federation、Network Policy API、RBAC、CRD和CSI,等等,并增加了对Windows系统的支持。

2017年可谓是容器生态发展史上具有里程碑意义的一年。这一年,AWS、Azure和Alibaba Cloud都相继在其原有容器服务上新增了对Kubernetes的支持,而Docker官方也在2017年10月宣布同时支持Swarm和Kubernetes编排系统。这一年,RKT容器派系的CoreOS舍弃掉自己的调度工具Fleet,将其商用平台Tectonic的重心转移至Kubernetes。这一年,Mesos也于9月宣布了对Kubernetes的支持,其平台用户可以安装、扩展和升级多个生产级的Kubernetes集群。这一年,Rancher Labs推出了其2.0版本的容器管理平台并宣布all-in Kubernetes,放弃了其内置多年的容器编排系统Cattle。类似的故事依然在进行,并且必将在一个时期内持续上演。

本文摘编自《Kubernetes进阶实战》,经出版方授权发布。

推荐阅读:《Kubernetes进阶实战》 作者 马永亮‍

333
内容简介:
基于K8S 1.12版本,透彻解析技术架构、组件应用、扩缩容、网络与存储策略,以及技术进阶等话题 。
马哥教育CEO马哥(马永亮)撰写,渐进式铺陈,适合入门与进阶 ;
涵盖Kubernetes架构、部署、核心/自定义资源、扩缩容、存储卷、网络插件与策略、安全、调度策略、监控、日志等话题 ;
渐进式讲解,手把手示范,大量实操案例,随时动手验证。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
负载均衡 5G
频谱利用 | 带你读《5G 空口设计与实践进阶 》之二十
NR 单载波最大支持 275 个 RB,即 3300 个子载波。这相应也约束了不同Numerology 下 NR 的最大工作带宽。NR 须通过合理设置保护带宽来降低误差矢量幅度、抑制相邻频道泄漏。
频谱利用 | 带你读《5G 空口设计与实践进阶 》之二十
|
编解码 物联网
LDPC 码在 3GPP 中的应用 | 带你读《5G-NR信道编码》之十八
本章节带你了解LDPC 码在 3GPP 中的应用。
LDPC 码在 3GPP 中的应用  | 带你读《5G-NR信道编码》之十八
|
Web App开发 JavaScript 程序员
LDPC 的产生和发展 | 带你读《5G-NR信道编码》之六
低密度校验码(LDPC)是在1963年由Gallager发明的线性分组码 [1-2]。 由于该码的校验矩阵 H 具有很低的密度(H 只有少量的“1”,大 部分是“0”,即 H 的密度很低;H 是一个稀疏矩阵),故,Gallager 称 其为低密度校验码。经过 50 多年的发展,LDPC 码的构造、编码、译 码等方法已相当完备。LDPC 码已广泛应用到数据存储、光通信和无线 通信等系统中。
LDPC 的产生和发展  | 带你读《5G-NR信道编码》之六
|
算法 关系型数据库 5G
前几代移动通信的演进 | 带你读《5G-NR信道编码》之二
本章节介绍了前几代移动通信的演进,带你感受移动通信的进化之路。
前几代移动通信的演进  | 带你读《5G-NR信道编码》之二
|
5G 定位技术 虚拟化
空域结构 | 带你读《5G 空口设计与实践进阶 》之二十二
在 NR 物理层中,来自上层的业务流进行信道编码后的数据,称之为码字(Code Word)。不同的码字可以区分不同的数据流,其目的是通过 MIMO 发送多路数据,实现空分复用。由于码字数量与发射天线数量不一致,需要通过层映射和预编码将码字流映射到不同的发射天线上。层映射首先按照一定的规则将码字流重新映射到多个层(新的数据流),预编码再将数据映射到不同的天线端口上,再在各个天线端口上进行资源映射,生成 OFDM 符号并发射。
空域结构 | 带你读《5G 空口设计与实践进阶 》之二十二
|
数据采集 监控 5G
部分带宽 | 带你读《5G 空口设计与实践进阶 》之二十一
部分带宽(BWP)是在给定载波和给定 Numerology 条件下的一组连续的PRB。由于 NR 支持小至 5 MHz、大至 400 MHz 的工作带宽,如果要求所有UE 均支持最大的 400 MHz 带宽,无疑会对 UE 的性能提出较高要求,也不利于降低 UE 的成本。同时,由于一个 UE 不可能同时占满整个 400 MHz 带宽,且高带宽意味着高采样率,而高采样率意味着更高功耗,如果 UE 全部按照支持 400 MHz 的带宽进行设计,无疑是对性能的极大浪费。因此,NR 引入了带宽自适应(Bandwidth Adaptation)技术,针对性地解决上述问题。
部分带宽 | 带你读《5G 空口设计与实践进阶 》之二十一
|
存储 数据采集 编解码
第五代移动通信系统(5G-NR)的系统要求 | 带你读《5G-NR信道编码》之三
与前四代不同的是,5G 的应用十分多样化 [4],峰值速率和平均小区频谱效 率不再是唯一的要求。此外,体验速率、连接数、低时延、高可靠、高能效都 将成为系统设计的重要因素。应用场景也不止有广域覆盖,还有密集热点、机 器间通信、车联网、大型露天集会、地铁等,这也决定了 5G 中的技术是多元的。
第五代移动通信系统(5G-NR)的系统要求  | 带你读《5G-NR信道编码》之三
|
算法 关系型数据库 5G
本书的目的和篇章结构 | 带你读《5G-NR信道编码》之五
2017 年 12 月,在葡萄牙里斯本的 3GPP RAN#78 次会议上,5G-NR 的第一 个版本获得通过 [17]。这标志着 5G 第一阶段的标准化工作已经完成(eMBB 部分)。 作为 5G 物理层的关键技术,先进的编码将对满足 5G 主要场景的性能指标发挥重 要作用。根据作者的了解,目前,无论是国外还是国内,尚未有一本能比较全面介 绍 5G 信道编码的书,这本书的目的就是给读者呈现 5G 信道编码的丰富画面。
本书的目的和篇章结构  | 带你读《5G-NR信道编码》之五
|
人工智能 编解码 算法
LDPC 码的基本原理 | 带你读《5G-NR信道编码》之七
本节将为你详细介绍LDPC 码的基本原理 。
16393 2
LDPC 码的基本原理  | 带你读《5G-NR信道编码》之七