Helm學習指南:Kubernetes上的應用程序管理
定 價:99 元
- 作者: [美] 馬特·布徹,[美] 馬特·法里納,[美] 喬什·多利茨基 著
- 出版時間:2021/9/1
- ISBN:9787111689959
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP317
- 頁碼:216
- 紙張:膠版紙
- 版次:1
- 開本:16開
Helm是用于流行的開源容器管理平臺Kubernetes的軟件包管理器。本書首先概述Helm在云原生生態(tài)系統(tǒng)中的位置及其架構。接著介紹Helm的安裝、使用以及高級功能。然后介紹如何為Helm創(chuàng)建軟件包。之后介紹Helm在軟件包共享與分發(fā)方面的應用。書末介紹Helm的擴展。
適讀人群 :Kubernetes和DevOps專業(yè)人士
本書將帶你快速了解Helm這一用于Kubernetes容器編排系統(tǒng)的卓越的軟件包管理器。書中展示了如何高效地創(chuàng)建、安裝和管理在容器中運行的應用程序,解釋了這個軟件包管理器如何融入Kubernetes生態(tài)系統(tǒng),并提供了Helm設計和佳實踐的深入介紹。
如今,超過70%使用Kubernetes開展工作的組織都在使用Helm。Helm社區(qū)提供了數(shù)以千計的軟件包和chart,而本書則帶領開發(fā)人員和DevOps工程師完成了創(chuàng)建自定義chart來打包應用程序的過程。如果你對Kubernetes有了一定的了解,就可以開始學習了。
通過閱讀本書,你將:
??探索主要功能,包括常用的Helm命令。
??學習如何從零開始構建和部署Helm chart。
??學習使用Helm管理復雜性并實現(xiàn)可重復部署。
??學習打包應用程序及其依賴項以便于安裝。
??學習管理Kubernetes上應用程序的整個生命周期。
??探索擴展Helm以增加功能的方法。
??學習用于測試、處理依賴項和提供安全性的特性。
“在Kubernetes上管理應用程序可以是一致的、可重復的和易實現(xiàn)的。在這本詳細的新指南中,Helm維護者展示了如何降低快速增長的生態(tài)系統(tǒng)的復雜性!
—Bridget Kromhout
微軟首席項目經理
Matt Butcher是Helm項目的聯(lián)合創(chuàng)始人,并在微軟Azure領導一個開源工程師團隊。他與云原生計算基金會的Karen Chu合著了The Illustrated Children’s Guide to Kubernetes。
Matt Farina是Helm項目的維護者,也是開源項目的長期貢獻者。他參與創(chuàng)建了Kubernetes應用程序特別興趣小組(SIG),并在SUSE擔任軟件架構師。
Josh Dolitsky是Helm項目的維護者和ChartMuseum項目的創(chuàng)始人。他是軟件咨詢公司Blood Orange的所有者兼首席工程師。
Helm是用于流行的開源容器管理平臺Kubernetes的軟件包管理器。
軟件包管理器使平臺更易于訪問。使用Kubernetes等平臺,你需要在上面運行軟件,而且上面的大部分軟件都是現(xiàn)成的或共享的。Helm這一軟件包管理器以易于使用的方式對軟件進行了打包,使你能夠快速安裝并使用某個軟件。
使用軟件包管理器,你可以很容易地與其他人共享某個軟件。當某個平臺上有各種各樣的軟件在運行時,此平臺會更有用。開源項目和公司都喜歡讓它們的軟件在其運行的平臺上易于安裝,而Helm使Kubernetes做到了這一點。
軟件包管理器不僅可以用來共享和使用他人的軟件,它通常也是其他系統(tǒng)(如DevOps工具)不可分割的一部分,并被用作基礎構件。
幾乎每個現(xiàn)代平臺都有一個軟件包管理器。各種操作系統(tǒng)、編程語言和云平臺都有某種形式的軟件包管理器。
在本書中,你將了解Helm,它為Kubernetes提供了現(xiàn)代的軟件包管理,以及你可以使用的軟件包(稱為chart)。你將學習如何使用Helm,如何創(chuàng)建軟件包,以及如何與其他平臺共享軟件包。
本書受眾
如果你是Kubernetes的新手,或者想學習如何安裝現(xiàn)成的應用程序,本書將幫助你學習如何使用Helm達成目標。通過Helm安裝應用程序要比通過Kubernetes手工安裝應用程序容易得多,也快得多。
如果你為一家公司(或某個項目)工作,希望以一種簡便的方式將應用程序分發(fā)給Kubernetes用戶,那么這本書將教你如何使用Helm做到這一點。Helm能夠幫助你快速安裝應用程序,從而使項目啟動更容易。
本書也是為DevOps專業(yè)人士準備的,通過學習本書,他們可以學會將Kubernetes軟件包管理作為DevOps工具鏈的一部分來使用。Helm提供了強大的高級功能,可以作為其他自動化的基礎構件。這些功能已經被用于在Kubernetes上部署復雜的大型應用程序,本書將教你如何利用這些功能。
為什么寫作本書
我們不僅想提供文檔中經常可以找到的技術細節(jié),還想提供有關Helm能做什么以及為什么要這樣做的背景和見解。
本書內容結構
前三章介紹Helm并展示如何使用Helm客戶端。第1章概述了Helm在云原生生態(tài)系統(tǒng)中的位置及其架構。第2章和第3章介紹如何使用Helm客戶端—從安裝逐步過渡到高級用法。
第4~6章介紹了如何為Helm創(chuàng)建軟件包。該部分從如何創(chuàng)建包(第4章)開始,然后學習模板語法(第5章),最后學習高級功能(第6章)。
第7章介紹了共享軟件包,包括它們各自的發(fā)布版本。如果你正在使用DevOps進程將軟件分發(fā)給其他人或在系統(tǒng)之間共享軟件,則共享非常重要。
第8章介紹了Helm的擴展?梢栽跓o須對其建立分支或增加功能的前提下,對Helm進行定制。
兩個附錄提供了參考資料。附錄A概述了當前軟件包和遺留軟件包之間的區(qū)別,附錄B介紹了用于共享包的存儲庫API。
排版約定
本書中使用以下排版約定:
斜體(Italic)
表示新的術語、URL、電子郵件地址、文件名和文件擴展名。
等寬字體(Constant width)
用于程序清單,以及段落中的程序元素,例如變量名、函數(shù)名、數(shù)據庫、 數(shù)據類型、環(huán)境變量、語句以及關鍵字。
等寬粗體(Constant width bold)
表示應由用戶直接輸入的命令或其他文本。
等寬斜體(Constant width italic)
表示應由用戶提供的值或由上下文確定的值替換的文本。
該圖示表示提示或建議。
該圖示表示一般性說明。
該圖示表示警告或注意。
示例代碼
可以從https://github.com/masterminds/learning-helm下載補充材料(示例代碼、練習、勘誤等)。
這里的代碼是為了幫助你更好地理解本書的內容。通常,可以在程序或文檔中使用本書中的代碼,而不需要聯(lián)系O’Reilly獲得許可,除非需要大段地復制代碼。例如,使用本書中所提供的幾個代碼片段來編寫一個程序不需要得到我們的許可,但銷售或發(fā)布O’Reilly書籍中的示例代碼需要獲得許可。引用本書的示例代碼來回答問題也不需要許可,將本書中的很大一部分示例代碼放到自己的產品文檔中則需要獲得許可。
非常歡迎讀者使用本書中的代碼,希望(但不強制)注明出處。注明出處的形式包含書名、作者、出版社和ISBN,例如:
Learning Helm:Managing Apps on Kubernetes,作者Matt Butcher、Matt Farina和Josh Dolitsky,由O’Reilly出版,書號978-1-492-08365-8
如果讀者覺得對示例代碼的使用超出了上面所給出的許可范圍,歡迎通過permissions@oreilly.com聯(lián)系我們。
O’Reilly在線學習平臺(O’Reilly Online Learning)
40多年來,O’Reilly Media致力于提供技術和商業(yè)培訓、知識和卓越見解,來幫助眾多公司取得成功。
我們擁有獨一無二的專家和革新者組成的龐大網絡,他們通過圖書、文章、會議和我們的在線學習平臺分享他們的知識和經驗。O’Reilly的在線學習平臺允許你按需訪問現(xiàn)場培訓課程、深入的學習路徑、交互式編程環(huán)境,以及O’Reilly和200多家其他出版商提供的大量文本和視頻資源。有關的更多信息,請訪問http://oreilly.com。
如何聯(lián)系我們
對于本書,如果有任何意見或疑問,請按照以下地址聯(lián)系本書出版商。
美國:
O’Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中國:
北京市西城區(qū)西直門南大街2號成銘大廈C座807室(100035)
奧萊利技術咨詢(北京)有限公司
要詢問技術問題或對本書提出建議,請發(fā)送電子郵件至bookquestions@oreilly.com。
本書配套網站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生態(tài)系統(tǒng)是來自世界各地的眾多貢獻者共同創(chuàng)建的。個人、非政府組織和公司已經合作開發(fā)出一種能夠滿足廣泛需求的技術。從構建chart到提供修復程序,再到幫助其他人學習Helm,每個人都投入了時間和精力來優(yōu)化代碼。我們非常感謝他們。
最重要的是,我們要感謝我們各自的妻子和孩子在整個寫作過程中付出的耐心和愛。
前言1
第1章 Helm簡介7
1.1 云原生生態(tài)系統(tǒng)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 了解發(fā)布版本信息55
3.3 歷史記錄和回滾63
3.4 深入了解安裝和升級66
3.5 結論72
第4章 構建chart73
4.1 chart創(chuàng)建命令73
4.2 Chart.yaml文件77
4.3 修改模板80
4.4 使用values文件83
4.5 打包chart88
4.6 校驗chart代碼90
4.7 結論92
第5章 開發(fā)模板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