容器技术在IT世界里并不是什么新鲜事物,最早可追溯到20世纪70年代。在数字化时代的大背景下,蒙尘多年的容器开始绽放光彩,恰逢其时地出现在大众面前。容器对应用开发和运维方式的改变,成为企业业务模式快速创新和重塑不可或缺的支点。在它蓬勃发展的几年里,有两个极具意义的里程碑:一个是2013年Docker的横空出世,它基于容器镜像带来的标准化,帮助开发者解决了应用打包、分发和部署的问题,真正实现了应用的一次构建、随处部署;另一个则是2016年的三大编排之争,容器编排帮助运维人员大幅降低了应用运行、管理和维护的复杂度,实现了单容器到容器云的跨越,为容器的投产奠定了坚实的基础。而在这场经典之争中脱颖而出,最终成为容器编排事实标准的就是Kubernetes,也是本书的主角。
作为译者,我们对Kubernetes并不陌生。在经历众多国内外交付项目的同时,我们也亲眼见证了Kubernetes在企业里一步步被采纳的全过程。从早期的谨小慎微到如今的标准配备,我们也不可避免地经历了一些至暗时刻。例如:缺乏良好的资源管理,导致应用不稳定、调度不可控、资源利用率低等问题;没有在最初就建立起集中监控和日志系统,故障出现时难以定位和排查,导致过长的服务恢复时间;代码化和自动化的程度不足导致环境不一致,进而影响应用部署、发布的速度和稳定。尽管通过不断的探索,我们最终识别并解决了这些问题。但是在翻译的过程中,我们也不禁多次感慨—如果能够早点遇到本书就好了。
在这个知识大爆炸的时代,通过搜索引擎、官方文档以及市面上涌现出来的大量关于Kubernetes的书籍,我们能够轻而易举地获得Kubernetes的各种资料,但这些精华总是零散地分布在各类知识库中,我们很难找到将它们体系化地应用于实践,并成功适配不同需求场景的最佳姿势。基于多年的软件交付、运维经验,我们深刻地体会到,对于绝大多数的新技术来说,学习它们的知识并不那么难,但是掌握将它们成功用于实践的技能却总会面临各种挑战,Kubernetes也不例外。本书的原作者均是专注于开源云和Kubernetes的专家,他们将实际工作中的经验教训提炼、总结并分享出来,对于读者来说,这是一笔宝贵的财富。
本书并非局限于Kubernetes本身的诸多最佳实践,更多的是从实际场景出发,详细介绍如何在Kubernetes上构建应用,包括开发者工作流、镜像分发、持续部署、网络安全、运维监控等应用交付和运维全生命周期的方方面面,甚至还包括很多Kubernetes生态圈中的优秀工具与发展趋势,以帮助我们更好地管理集群。无论你是Kubernetes的初学者还是经验丰富的工程师,相信都能从本书中找到一些解决实际问题的灵感。
在本书的翻译及出版过程中,我们非常感谢机械工业出版社华章公司的编辑们,他们在本书的翻译和校对过程中提供了巨大帮助。同时也特别感谢万学凡、周训杰、黄亚铭、杨佳欢等同事和好友的热情付出,他们在翻译流程和内容审校方面给出了很多宝贵的建议。
限于水平和时间,译文中难免存在疏漏,希望读者不吝赐教,发现问题请发送邮件至k8sbestpractice@hotmail.com,我们将不胜感激。
陈亮 王磊 张扬
2020年6月15日