前沿
前言
近几年,容器技术越来越普及。据Gartner预估,到2022年,全球将有75%的公司使用容器技术,而在2017年,这个比例还不到20%,这说明容器技术的发展非常迅速。容器技术的火热引发了容器编排技术的发展,目前最受欢迎的容器编排系统是Kubernetes,其引领着技术潮流,用于应对生产环境中编排容器所需的额外复杂度及成本。Kubernetes系统帮助企业加快了容器编排的速度,并实现了对多容器集群的大规模管理。它允许持续集成和交付、网络处理、服务发现及存储服务等,并具有在多云环境下进行操作的能力。
很多人都在说掌控了Kubernetes等于掌控了云计算的未来,这是为什么呢?在过去的几年里,Kubernetes发展飞速,社区也随之壮大,截至本书截稿时,Kubernetes项目在GitHub上已有接近6万个Star,拥有8万多次提交量。
Kubernetes系统已经越来越成熟,很多企业对它的应用从试水阶段逐步走向大规模落地阶段,但随着Kubernetes系统越来越稳定、成熟,代码的迭代能力逐渐变弱了。底层代码的成熟和健壮能够支撑更大的上层应用,这便让更多优秀的生态应用围绕着Kubernetes系统各自发展。这得益于Kubernetes系统的高扩展性,Kubernetes越来越像一个系统核心,对外提供通用接口,实现了众多标准化。另外,Kubernetes得到了许多云服务提供商(Cloud Provider)的支持,例如Google、Cisco、VMware、Microsoft、Amazon及许多其他大型公司。
建议读者在阅读Kubernetes源码的过程中,学习一些关于设计模式(Design Pattern)的知识,这样有助于大家理解源码的实现原理,而非只是泛泛地看代码。例如,在Go语言中常用NewXXX函数来实例化相关类,在设计模式中,其被称为简单工厂模式,该设计模式在Go语言中替代了其他语言中的构造函数功能。不同语言的设计模式原理基本相同,只是在语法实现方式上有所不同。对于Go语言的设计模式,大家可以参考Go Design Pattern(参见链接[1])。
学习Kubernetes代码库并不容易,它拥有大量的源码,学习过程会比较枯燥,但通过对源码的学习,我们一定会收益良多。本书将基于Kubernetes 1.14.0版本来深入研究和分析Kubernetes源码的关键部分,希望能对读者有所帮助。建议读者在阅读本书的同时参考Kubernetes源码文件,这样学习效果更佳。
最后,谨以此书献给我的爱人和我刚出世的女儿。
联系作者
由于作者时间与水平有限,因此书中难免出现遗漏或错误,如果读者发现相关问题,请及时与我联系,联系方式为shanhu5739@gmail.com。非常希望与大家共同学习和交流。
本书涉及的链接说明
为了保证书中涉及的相关链接可以实时更新,特地将“链接地址”文档放于博文视点官方网站,如书中标有“参见链接[1]”“参见链接[2]”等字样时,可在该文档中查询相关链接。读者可在http://www.broadview.com.cn/38914页面下载或通过“读者服务”中提供的方式获取 “链接地址”文档。
读者服务
扫码回复:38914
√ 获取博文视点学院20元付费内容抵扣券
√ 加入读者交流群,与更多读者互动
√ 获取本书配套下载文件(“链接地址”文档)
√ 获取免费增值资源