前言
在IT 运维领域,开发运维的核心原则已广为人知并得到了广泛采用,但是如今情况正在发生变化,一个名为Kubernetes 的新应用程序平台已被全世界各个不同行业的公司迅速采用。随着越来越多的应用程序和企业从传统服务器迁移到Kubernetes 环境,人们开始关心如何在这个新世界中开展开发运维的工作。
本书讲解了以Kubernetes 为标准平台的云原生世界中开发运维的含义。不仅可以帮助你从Kubernetes 生态系统中挑选最佳工具和框架,而且还呈上了一套使用这些工具和框架的统一方式,此外还提供了久经考验可在实际生产环境中运行的解决方案。
主要内容
你将学习Kubernetes 是什么,它来自何处,以及对软件开发和运维的未来意味着什么。你将学习容器的工作原理,如何构建和管理容器,以及如何设计云原生服务和基础架构。
你将了解自行构建并运行Kubernetes 集群与使用托管服务之间的利弊,将学习流行的Kubernetes 安装工具(比如kops、kubeadm 和Kubespray)的功能、局限性以及优缺点,还将大致了解亚马逊、Google 以及微软提供的主流Kubernetes 托管产品的概况。
你将学习大量实践经验,包括如何编写和部署Kubernetes 应用程序,如何配置和操作Kubernetes 集群,以及如何使用Helm 等工具自动化云基础设施与部署。你将了解Kubernetes 对安全、身份验证和权限的支持,包括基于角色的访问控制(RBAC),以及在生产中保护容器和Kubernetes 的最佳实践。
你将学习如何设置Kubernetes 的持续集成和部署,如何备份和还原数据,如何测试集群的一致性和可靠性,如何监控、跟踪、记录和汇总指标,以及如何保证Kubernetes 基础架构兼具可扩展性、弹性和高性价比。
为了方便说明,我们引入了一个非常简单的演示应用程序。你可以通过本书Git 代码库中的代码来学习所有的示例。
本书面向的读者对象
本书主要面向负责服务器、应用程序和服务的IT 运维人员,以及负责构建云原生服务或将现有应用程序迁移到Kubernetes 和云端的开发人员。我们不要求你了解有关Kubernetes 或容器的前提知识,书中已经涵盖这些基本知识,所以请不用担心。
经验丰富的Kubernetes 用户也可以从本书中找到很多有价值的材料,比如本书涵盖了RBAC、持续部署、机密管理以及可观察性等高级主题。无论你的专业水平如何,我们都希望你可以从本书中找到有用的信息。
本书解决的主要问题
在计划和创作本书期间,我们与数百人就云原生和Kubernetes 进行了交流,其中既有行业领导者和专家,也有初学者。下面是他们希望本书能够解决的问题:
• “我希望了解为什么我应该把时间投入到这项技术上。它能够帮助我和我的团队解决哪些问题?”
• “Kubernetes 看起来很棒,但是学习曲线相当陡峭。建立一个快速的演示很容易,但是运维和故障排除似乎非常有难度。我们希望获得一些可靠的指导,了解人们如何在现实世界中运行Kubernetes 集群,以及我们可能会遇到哪些问题。”
• “希望提供一些真知灼见。对于新手团队来说,Kubernetes 生态系统提供了太多选择。当有多种方式都可以完成同一项工作时,哪一种才是最好的?我们该如何选择?”
而其中最重要的问题是:
• 如何在不破坏公司现有状况的情况下使用Kubernetes ?
在编写本书时,我们牢记包括上述问题在内的许多问题,并竭尽全力回答这些问题。这些问题是否得到了解答?请仔细阅读本书吧。
排版约定
本书使用了下述排版约定。
斜体(Italic)
表示新术语、URL、示例电子邮件地址、文件名、扩展名、路径名和目录。
等宽字体(Constant Width)
表示命令、选项、开关、变量、属性、键、函数、类型、类、命名空间、方法、模块、属性、参数、值、对象、事件、事件句柄、XML 标签、HTML 标签、宏、文件的内容,或者命令的输出。
斜体等宽字体(constant width italic)
表示应该替换成用户提供的值。
使用代码示例
你可以通过如下链接下载本书的补充材料(代码示例,练习等):https://github.com/cloudnativedevops/demo
本书的目的是帮助你完成工作。一般来说,你可以在自己的程序或者文档中使用本书附带的示例代码。你无需联系我们获得使用许可,除非你要复制大量的代码。例如,使用本书中的多个代码片段编写程序就无需获得许可。但以CD-ROM 的形式销售或者分发O’Reilly 书中的示例代码则需要获得许可。回答问题时援引本书内容以及书中示例代码,无需获得许可。在你自己的项目文档中使用本书大量的示例代码时,则需要获得许可。
我们不强制要求署名,但如果你这么做,我们深表感激。署名一般包括书名、作者、出版社和国际标准书号。例如:“Cloud Native DevOps with Kubernetes by John Arundel and Justin Domingus (O’Reilly). Copyright 2019 John Arundel and Justin Domingus, 978-1-492-04076-7”。
如果你觉得自身情况不在合理使用或上述允许的范围内,请通过邮件和我们联系,地址是 permissions@oreilly.com。
O’Reilly Online Learning
40 年间,O’Reilly Media 为众多公司提供技术和商业培训,提升知识储备和洞察力,为企业的成功助力。
我们有一群独家专家和创新者,他们通过图书、文章、会议和在线学习平台分享知识和技术。O’Reilly 的在线学习平台提供按需访问的直播培训课程、详细的学习路径、交互式编程环境,以及由O’Reilly 和其他200 多家出版社出版的书籍和视频。
详情请访问 http://oreilly.com。
联系方式
请将你对本书的评价和问题发给出版社:
美国:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)
奥莱利技术咨询(北京)有限公司
这本书有专属网页,你可以在那里找到本书的勘误、示例和其他信息。地址是:http://bit.ly/cloud-nat-dev-ops
如果你对本书有一些评论或技术上的建议,请发送电子邮件到bookquestions@oreilly.com。
要了解O’Reilly 图书、培训课程和新闻的更多信息,请访问我们的网站,地址是:
http://www.oreilly.com
我们的Facebook:
http://facebook.com/oreilly
我们的Twitter:
http://twitter.com/oreillymedia
我们的Youtube 视频:
http://www.youtube.com/oreillymedia
致谢
本书得以付梓,我要感谢很多人阅读本书的初稿并提供了宝贵反馈和建议,还有通过其他方式予以支持的人,包括(但不限于)Abby Bangser、Adam J.McPartlan、Adrienne Domingus、Alexis Richardson、Aron Trauring、Camilla Montonen、 Gabriell Nascimento、Hannah Klemme、Hans Findel、Ian Crosby、Ian Shaw、Ihor Dvoretskyi、Ike Devolder、Jeremy Yates、 Jérôme Petazzoni、Jessica Deen、John Harris、Jon Barber、Kitty Karate、Marco Lancini、Mark Ellens、Matt North、Michel Blanc、Mitchell Kent、Nicolas Steinmetz、Nigel Brown、Patrik Duditš、Paul van der Linden、Philippe Ensarguet、Pietro Mamberti、 Richard Harper、Rick Highness、Sathyajith Bhat、Suresh Vishnoi、Thomas Liakos、Tim McGinnis、Toby Sullivan、Tom Hall、 Vincent De Smet 和Will Thames 等。