描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111689959丛书名: O’Reilly精品图书系列
编辑推荐
本书将带你快速了解Helm这一用于Kubernetes容器编排系统的卓越的软件包管理器。书中展示了如何高效地创建、安装和管理在容器中运行的应用程序,解释了这个软件包管理器如何融入Kubernetes生态系统,并提供了Helm设计和实践的深入介绍。如今,超过70%使用Kubernetes开展工作的组织都在使用Helm。Helm社区提供了数以千计的软件包和chart,而本书则带领开发人员和DevOps工程师完成了创建自定义chart来打包应用程序的过程。如果你对Kubernetes有了一定的了解,就可以开始学习了。通过阅读本书,你将:•探索主要功能,包括常用的Helm命令。•学习如何从零开始构建和部署Helm chart。•学习使用Helm管理复杂性并实现可重复部署。•学习打包应用程序及其依赖项以便于安装。•学习管理Kubernetes上应用程序的整个生命周期。•探索扩展Helm以增加功能的方法。•学习用于测试、处理依赖项和提供安全性的特性。“在Kubernetes上管理应用程序可以是一致的、可重复的和易实现的。在这本详细的新指南中,Helm维护者展示了如何降低快速增长的生态系统的复杂性。”—Bridget Kromhout微软首席项目经理Matt Butcher是Helm项目的联合创始人,并在微软Azure领导一个开源工程师团队。他与云原生计算基金会的Karen Chu合著了The Illustrated Children’s Guide to Kubernetes。Matt Farina是Helm项目的维护者,也是开源项目的长期贡献者。他参与创建了Kubernetes应用程序特别兴趣小组(SIG),并在SUSE担任软件架构师。Josh Dolitsky是Helm项目的维护者和ChartMuseum项目的创始人。他是软件咨询公司Blood Orange的所有者兼首席工程师。
内容简介
Helm是用于流行的开源容器管理平台Kubernetes的软件包管理器。本书首先概述Helm在云原生生态系统中的位置及其架构。接着介绍Helm的安装、使用以及高级功能。然后介绍如何为Helm创建软件包。之后介绍Helm在软件包共享与分发方面的应用。书末介绍Helm的扩展。
目 录
前言1
第1章 Helm简介7
1.1 云原生生态系统7
1.2 Helm的目标17
1.3 Helm架构23
1.4 结论27
第2章 使用Helm29
2.1 安装和配置Helm客户端29
2.2 添加chart存储库35
2.3 搜索chart存储库36
2.4 安装程序包38
2.5 列出你的安装42
2.6 升级安装43
2.7 卸载安装46
2.8 结论48
第3章 Helm的高级功能49
3.1 模板和试运行49
3.2 了解发布版本信息55
3.3 历史记录和回滚63
3.4 深入了解安装和升级66
3.5 结论72
第4章 构建chart73
4.1 chart创建命令73
4.2 Chart.yaml文件77
4.3 修改模板80
4.4 使用values文件83
4.5 打包chart88
4.6 校验chart代码90
4.7 结论92
第5章 开发模板93
5.1 模板语法93
5.2 命名模板108
5.3 为可维护性构建模板112
5.4 调试模板113
5.5 结论117
第6章 chart的高级功能119
6.1 chart依赖项119
6.2 库chart127
6.3 模式化值文件130
6.4 钩子132
6.5 向chart中添加测试134
6.6 安全注意事项138
6.7 自定义资源定义141
6.8 结论144
第7章 chart存储库145
7.1 存储库索引146
7.2 设置chart存储库152
7.3 使用chart存储库160
7.4 实验性OCI支持163
7.5 相关项目168
第8章 Helm插件和启动程序171
8.1 插件171
8.2 启动程序187
8.3 进一步扩展Helm190
附录A chart API版本191
附录B chart存储库API201
关于作者206
关于封面206
第1章 Helm简介7
1.1 云原生生态系统7
1.2 Helm的目标17
1.3 Helm架构23
1.4 结论27
第2章 使用Helm29
2.1 安装和配置Helm客户端29
2.2 添加chart存储库35
2.3 搜索chart存储库36
2.4 安装程序包38
2.5 列出你的安装42
2.6 升级安装43
2.7 卸载安装46
2.8 结论48
第3章 Helm的高级功能49
3.1 模板和试运行49
3.2 了解发布版本信息55
3.3 历史记录和回滚63
3.4 深入了解安装和升级66
3.5 结论72
第4章 构建chart73
4.1 chart创建命令73
4.2 Chart.yaml文件77
4.3 修改模板80
4.4 使用values文件83
4.5 打包chart88
4.6 校验chart代码90
4.7 结论92
第5章 开发模板93
5.1 模板语法93
5.2 命名模板108
5.3 为可维护性构建模板112
5.4 调试模板113
5.5 结论117
第6章 chart的高级功能119
6.1 chart依赖项119
6.2 库chart127
6.3 模式化值文件130
6.4 钩子132
6.5 向chart中添加测试134
6.6 安全注意事项138
6.7 自定义资源定义141
6.8 结论144
第7章 chart存储库145
7.1 存储库索引146
7.2 设置chart存储库152
7.3 使用chart存储库160
7.4 实验性OCI支持163
7.5 相关项目168
第8章 Helm插件和启动程序171
8.1 插件171
8.2 启动程序187
8.3 进一步扩展Helm190
附录A chart API版本191
附录B chart存储库API201
关于作者206
关于封面206
前 言
Helm是用于流行的开源容器管理平台Kubernetes的软件包管理器。
软件包管理器使平台更易于访问。使用Kubernetes等平台,你需要在上面运行软件,而且上面的大部分软件都是现成的或共享的。Helm这一软件包管理器以易于使用的方式对软件进行了打包,使你能够快速安装并使用某个软件。
使用软件包管理器,你可以很容易地与其他人共享某个软件。当某个平台上有各种各样的软件在运行时,此平台会更有用。开源项目和公司都喜欢让它们的软件在其运行的平台上易于安装,而Helm使Kubernetes做到了这一点。
软件包管理器不仅可以用来共享和使用他人的软件,它通常也是其他系统(如DevOps工具)不可分割的一部分,并被用作基础构件。
几乎每个现代平台都有一个软件包管理器。各种操作系统、编程语言和云平台都有某种形式的软件包管理器。
在本书中,你将了解Helm,它为Kubernetes提供了现代的软件包管理,以及你可以使用的软件包(称为chart)。你将学习如何使用Helm,如何创建软件包,以及如何与其他平台共享软件包。
本书受众
如果你是Kubernetes的新手,或者想学习如何安装现成的应用程序,本书将帮助你学习如何使用Helm达成目标。通过Helm安装应用程序要比通过Kubernetes手工安装应用程序容易得多,也快得多。
如果你为一家公司(或某个项目)工作,希望以一种简便的方式将应用程序分发给Kubernetes用户,那么这本书将教你如何使用Helm做到这一点。Helm能够帮助你快速安装应用程序,从而使项目启动更容易。
本书也是为DevOps专业人士准备的,通过学习本书,他们可以学会将Kubernetes软件包管理作为DevOps工具链的一部分来使用。Helm提供了强大的高级功能,可以作为其他自动化的基础构件。这些功能已经被用于在Kubernetes上部署复杂的大型应用程序,本书将教你如何利用这些功能。
为什么写作本书
我们不仅想提供文档中经常可以找到的技术细节,还想提供有关Helm能做什么以及为什么要这样做的背景和见解。
本书内容结构
前三章介绍Helm并展示如何使用Helm客户端。第1章概述了Helm在云原生生态系统中的位置及其架构。第2章和第3章介绍如何使用Helm客户端—从安装逐步过渡到高级用法。
第4~6章介绍了如何为Helm创建软件包。该部分从如何创建包(第4章)开始,然后学习模板语法(第5章),后学习高级功能(第6章)。
第7章介绍了共享软件包,包括它们各自的发布版本。如果你正在使用DevOps进程将软件分发给其他人或在系统之间共享软件,则共享非常重要。
第8章介绍了Helm的扩展。可以在无须对其建立分支或增加功能的前提下,对Helm进行定制。
两个附录提供了参考资料。附录A概述了当前软件包和遗留软件包之间的区别,附录B介绍了用于共享包的存储库API。
排版约定
本书中使用以下排版约定:
斜体(Italic)
表示新的术语、URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
用于程序清单,以及段落中的程序元素,例如变量名、函数名、数据库、 数据类型、环境变量、语句以及关键字。
等宽粗体(Constant width bold)
表示应由用户直接输入的命令或其他文本。
等宽斜体(Constant width italic)
表示应由用户提供的值或由上下文确定的值替换的文本。
该图示表示提示或建议。
该图示表示一般性说明。
该图示表示警告或注意。
示例代码
可以从https://github.com/masterminds/learning-helm下载补充材料(示例代码、练习、勘误等)。
这里的代码是为了帮助你更好地理解本书的内容。通常,可以在程序或文档中使用本书中的代码,而不需要联系O’Reilly获得许可,除非需要大段地复制代码。例如,使用本书中所提供的几个代码片段来编写一个程序不需要得到我们的许可,但销售或发布O’Reilly书籍中的示例代码需要获得许可。引用本书的示例代码来回答问题也不需要许可,将本书中的很大一部分示例代码放到自己的产品文档中则需要获得许可。
非常欢迎读者使用本书中的代码,希望(但不强制)注明出处。注明出处的形式包含书名、作者、出版社和ISBN,例如:
Learning Helm:Managing Apps on Kubernetes,作者Matt Butcher、Matt Farina和Josh Dolitsky,由O’Reilly出版,书号978-1-492-08365-8
如果读者觉得对示例代码的使用超出了上面所给出的许可范围,欢迎通过[email protected]联系我们。
O’Reilly在线学习平台(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)
奥莱利技术咨询(北京)有限公司
要询问技术问题或对本书提出建议,请发送电子邮件至[email protected]。
本书配套网站https://oreil.ly/learning-helm上列出了勘误表、示例以及其他信息。
关于书籍、课程、会议和新闻的更多信息,请访问我们的网站http://oreilly.com。
我们在Facebook上的地址:http://facebook.com/oreilly
我们在Twitter上的地址:http://twitter.com/oreillymedia
我们在YouTube上的地址:http://www.youtube.com/oreillymedia
致谢
感谢本书的技术审校者:Taylor Thomas、Jonathan Johnson和Michael Hausenblas。
感谢O’Reilly每一位帮助我们完成本书的人,尤其是John Devins和Jeff Bleiel。撰写本书的过程令人愉快。
Helm生态系统是来自世界各地的众多贡献者共同创建的。个人、非政府组织和公司已经合作开发出一种能够满足广泛需求的技术。从构建chart到提供修复程序,再到帮助其他人学习Helm,每个人都投入了时间和精力来优化代码。我们非常感谢他们。
重要的是,我们要感谢我们各自的妻子和孩子在整个写作过程中付出的耐心和爱。
软件包管理器使平台更易于访问。使用Kubernetes等平台,你需要在上面运行软件,而且上面的大部分软件都是现成的或共享的。Helm这一软件包管理器以易于使用的方式对软件进行了打包,使你能够快速安装并使用某个软件。
使用软件包管理器,你可以很容易地与其他人共享某个软件。当某个平台上有各种各样的软件在运行时,此平台会更有用。开源项目和公司都喜欢让它们的软件在其运行的平台上易于安装,而Helm使Kubernetes做到了这一点。
软件包管理器不仅可以用来共享和使用他人的软件,它通常也是其他系统(如DevOps工具)不可分割的一部分,并被用作基础构件。
几乎每个现代平台都有一个软件包管理器。各种操作系统、编程语言和云平台都有某种形式的软件包管理器。
在本书中,你将了解Helm,它为Kubernetes提供了现代的软件包管理,以及你可以使用的软件包(称为chart)。你将学习如何使用Helm,如何创建软件包,以及如何与其他平台共享软件包。
本书受众
如果你是Kubernetes的新手,或者想学习如何安装现成的应用程序,本书将帮助你学习如何使用Helm达成目标。通过Helm安装应用程序要比通过Kubernetes手工安装应用程序容易得多,也快得多。
如果你为一家公司(或某个项目)工作,希望以一种简便的方式将应用程序分发给Kubernetes用户,那么这本书将教你如何使用Helm做到这一点。Helm能够帮助你快速安装应用程序,从而使项目启动更容易。
本书也是为DevOps专业人士准备的,通过学习本书,他们可以学会将Kubernetes软件包管理作为DevOps工具链的一部分来使用。Helm提供了强大的高级功能,可以作为其他自动化的基础构件。这些功能已经被用于在Kubernetes上部署复杂的大型应用程序,本书将教你如何利用这些功能。
为什么写作本书
我们不仅想提供文档中经常可以找到的技术细节,还想提供有关Helm能做什么以及为什么要这样做的背景和见解。
本书内容结构
前三章介绍Helm并展示如何使用Helm客户端。第1章概述了Helm在云原生生态系统中的位置及其架构。第2章和第3章介绍如何使用Helm客户端—从安装逐步过渡到高级用法。
第4~6章介绍了如何为Helm创建软件包。该部分从如何创建包(第4章)开始,然后学习模板语法(第5章),后学习高级功能(第6章)。
第7章介绍了共享软件包,包括它们各自的发布版本。如果你正在使用DevOps进程将软件分发给其他人或在系统之间共享软件,则共享非常重要。
第8章介绍了Helm的扩展。可以在无须对其建立分支或增加功能的前提下,对Helm进行定制。
两个附录提供了参考资料。附录A概述了当前软件包和遗留软件包之间的区别,附录B介绍了用于共享包的存储库API。
排版约定
本书中使用以下排版约定:
斜体(Italic)
表示新的术语、URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
用于程序清单,以及段落中的程序元素,例如变量名、函数名、数据库、 数据类型、环境变量、语句以及关键字。
等宽粗体(Constant width bold)
表示应由用户直接输入的命令或其他文本。
等宽斜体(Constant width italic)
表示应由用户提供的值或由上下文确定的值替换的文本。
该图示表示提示或建议。
该图示表示一般性说明。
该图示表示警告或注意。
示例代码
可以从https://github.com/masterminds/learning-helm下载补充材料(示例代码、练习、勘误等)。
这里的代码是为了帮助你更好地理解本书的内容。通常,可以在程序或文档中使用本书中的代码,而不需要联系O’Reilly获得许可,除非需要大段地复制代码。例如,使用本书中所提供的几个代码片段来编写一个程序不需要得到我们的许可,但销售或发布O’Reilly书籍中的示例代码需要获得许可。引用本书的示例代码来回答问题也不需要许可,将本书中的很大一部分示例代码放到自己的产品文档中则需要获得许可。
非常欢迎读者使用本书中的代码,希望(但不强制)注明出处。注明出处的形式包含书名、作者、出版社和ISBN,例如:
Learning Helm:Managing Apps on Kubernetes,作者Matt Butcher、Matt Farina和Josh Dolitsky,由O’Reilly出版,书号978-1-492-08365-8
如果读者觉得对示例代码的使用超出了上面所给出的许可范围,欢迎通过[email protected]联系我们。
O’Reilly在线学习平台(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)
奥莱利技术咨询(北京)有限公司
要询问技术问题或对本书提出建议,请发送电子邮件至[email protected]。
本书配套网站https://oreil.ly/learning-helm上列出了勘误表、示例以及其他信息。
关于书籍、课程、会议和新闻的更多信息,请访问我们的网站http://oreilly.com。
我们在Facebook上的地址:http://facebook.com/oreilly
我们在Twitter上的地址:http://twitter.com/oreillymedia
我们在YouTube上的地址:http://www.youtube.com/oreillymedia
致谢
感谢本书的技术审校者:Taylor Thomas、Jonathan Johnson和Michael Hausenblas。
感谢O’Reilly每一位帮助我们完成本书的人,尤其是John Devins和Jeff Bleiel。撰写本书的过程令人愉快。
Helm生态系统是来自世界各地的众多贡献者共同创建的。个人、非政府组织和公司已经合作开发出一种能够满足广泛需求的技术。从构建chart到提供修复程序,再到帮助其他人学习Helm,每个人都投入了时间和精力来优化代码。我们非常感谢他们。
重要的是,我们要感谢我们各自的妻子和孩子在整个写作过程中付出的耐心和爱。
评论
还没有评论。