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