Harbor權(quán)威指南:容器鏡像、Helm Chart等云原生制品的管理與實踐
定 價:128 元
叢書名:博文視點云原生精品叢書
- 作者:張海寧 等
- 出版時間:2020/9/1
- ISBN:9787121396854
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.5
- 頁碼:500
- 紙張:
- 版次:01
- 開本:16開
在云原生生態(tài)中,容器鏡像和其他云原生制品的管理與分發(fā)是至關(guān)重要的一環(huán)。本書對開源云原生制品倉庫Harbor展開全面講解,由Harbor開源項目維護者和貢獻者傾力撰寫,內(nèi)容涵蓋Harbor的架構(gòu)、原理、功能、部署與配置、運維、定制化開發(fā)、API、項目治理和成功案例等,很多未公開發(fā)表的內(nèi)容在本書中都有詳盡講解,如:Harbor的架構(gòu)原理;OCI制品的支持方式;高可用制品倉庫的設(shè)計要點;鏡像等制品的掃描;權(quán)限和安全策略;備份與恢復(fù)策略;API使用指南等。
張海寧VMware中國研發(fā)中心云原生實驗室技術(shù)總監(jiān),Harbor開源項目創(chuàng)建者及維護者,擁有多年軟件全棧開發(fā)經(jīng)驗,為多個開源項目貢獻者,“亨利筆記”公眾號作者,從事云原生、機器學(xué)習(xí)及區(qū)塊鏈領(lǐng)域的創(chuàng)新工作。鄒佳VMware中國研發(fā)中心主任工程師,Harbor開源項目架構(gòu)師及核心維護者,擁有十多年軟件研發(fā)及架構(gòu)經(jīng)驗,專注于云原生等領(lǐng)域的研發(fā)與創(chuàng)新,獲得PMP資格認證及多項技術(shù)專利授權(quán)。王巖VMware中國研發(fā)中心高級研發(fā)工程師,Harbor開源項目維護者,專注于云原生、Kubernetes、Docker等領(lǐng)域的技術(shù)研究及創(chuàng)新。尹文開VMware中國研發(fā)中心高級研發(fā)工程師,Harbor開源項目維護者,長期從事容器領(lǐng)域的研究及開發(fā)工作。任茂盛VMware中國研發(fā)中心高級研發(fā)經(jīng)理,Harbor開源項目維護者,在網(wǎng)絡(luò)、虛擬化、云計算及云原生領(lǐng)域擁有豐富的產(chǎn)品開發(fā)及管理經(jīng)驗。姜坦VMware中國研發(fā)中心主任工程師,Harbor開源項目核心維護者,從事云原生領(lǐng)域的軟件開發(fā)工作。裴明明網(wǎng)易杭州研究院輕舟云原生架構(gòu)師,Harbor開源項目維護者,主要負責(zé)網(wǎng)易輕舟云原生DevOps體系設(shè)計、研發(fā)及落地等,在云原生、DevOps、微服務(wù)架構(gòu)等領(lǐng)域擁有豐富的經(jīng)驗。鄧謙VMware中國研發(fā)中心研發(fā)工程師,Harbor開源項目貢獻者,參與了Harbor多個組件及功能的開發(fā)工作,在云原生及監(jiān)控系統(tǒng)等領(lǐng)域擁有豐富的經(jīng)驗。何威威VMware中國研發(fā)中心高級研發(fā)工程師,Harbor開源項目貢獻者,專注于性能測試調(diào)優(yōu)、云原生等領(lǐng)域的技術(shù)研發(fā)?椎\建騰訊高級工程師,負責(zé)騰訊云鏡像倉庫產(chǎn)品的研發(fā);Harbor開源項目維護者,深耕容器鏡像存儲及分發(fā)、云存儲、云原生應(yīng)用領(lǐng)域。張子明VMware中國研發(fā)中心高級研發(fā)工程師,Harbor開源項目貢獻者。擁有多年軟件全棧開發(fā)經(jīng)驗,對云原生、配置管理等領(lǐng)域有較深入的研究。陳家豪VMware中國研發(fā)中心研發(fā)工程師,專注于容器、網(wǎng)絡(luò)及分布式技術(shù)的研發(fā),積極參與開源社區(qū)的建設(shè)。深耕虛擬化、云計算及區(qū)塊鏈等領(lǐng)域。張道軍VMware中國研發(fā)中心主任工程師,Harbor開源項目貢獻者。關(guān)注應(yīng)用性能監(jiān)控、性能調(diào)優(yōu)、云原生等領(lǐng)域。陳德騰訊專有云平臺研發(fā)工程師,Harbor開源項目維護者,主要負責(zé)騰訊云原生有狀態(tài)服務(wù)管理平臺的設(shè)計及開發(fā),并實現(xiàn)服務(wù)的自動化運維管理。
第1章 云原生環(huán)境下的制品管理 1
1.1 云原生應(yīng)用概述 2
1.2 容器技術(shù)簡介 5
1.2.1 容器技術(shù)的發(fā)展背景 5
1.2.2 容器的基本原理 7
1.2.3 容器運行時 8
1.3 虛擬機和容器的融合 14
1.3.1 vSphere Pod 14
1.3.2 Kata Containers 16
1.4 容器鏡像的結(jié)構(gòu) 17
1.4.1 鏡像的發(fā)展 17
1.4.2 Docker鏡像的結(jié)構(gòu) 18
1.4.3 Docker鏡像的倉庫存儲結(jié)構(gòu) 20
1.4.4 Docker鏡像的本地存儲結(jié)構(gòu) 24
1.4.5 OCI鏡像規(guī)范 25
1.5 鏡像管理和分發(fā) 34
1.5.1 Docker鏡像管理和分發(fā) 34
1.5.2 OCI分發(fā)規(guī)范 35
1.5.3 OCI Artifact 37
1.6 鏡像倉庫Registry 40
1.6.1 Registry的作用 41
1.6.2 公有Registry服務(wù) 43
1.6.3 私有Registry服務(wù) 43
1.6.4 Harbor Registry 44
第2章 功能和架構(gòu)概述 47
2.1 核心功能 47
2.1.1 訪問控制 48
2.1.2 鏡像簽名 49
2.1.3 鏡像掃描 50
2.1.4 高級管理功能 52
2.2 組件簡介 58
2.2.1 整體架構(gòu) 58
2.2.2 核心組件 59
2.2.3 可選組件 63
第3章 安裝Harbor 65
3.1 在單機環(huán)境下安裝Harbor 65
3.1.1 基本配置 66
3.1.2 離線安裝 74
3.1.3 在線安裝 76
3.1.4 源碼安裝 77
3.2 通過Helm Chart安裝Harbor 80
3.2.1 獲取Helm Chart 80
3.2.2 配置Helm Chart 81
3.2.3 安裝Helm Chart 95
3.3 高可用方案 96
3.3.1 基于Harbor Helm Chart的高可用方案 96
3.3.2 多Kubernetes集群的高可用方案 99
3.3.3 基于離線安裝包的高可用方案 101
3.4 存儲系統(tǒng)配置 105
3.4.1 AWS的Amazon S3 106
3.4.2 網(wǎng)絡(luò)文件系統(tǒng)NFS 108
3.4.3 阿里云的對象存儲OSS 108
3.5 Harbor初體驗 110
3.5.1 管理控制臺 110
3.5.2 在Docker中使用Harbor 120
3.5.3 在Kubernetes中使用Harbor 121
3.6 常見問題 124
第4章 OCI Artifact的管理 125
4.1 Artifact功能的實現(xiàn) 125
4.1.1 數(shù)據(jù)模型 126
4.1.2 處理流程 128
4.2 鏡像及鏡像索引 131
4.3 Helm Chart 134
4.3.1 Helm 3 135
4.3.2 ChartMusuem的支持 139
4.3.3 ChartMuseum和OCI倉庫的比較 141
4.4 云原生應(yīng)用程序包CNAB 142
4.5 OPA Bundle 145
4.6 其他Artifact 147
第5章 訪問控制 149
5.1 概述 149
5.1.1 認證與授權(quán) 149
5.1.2 資源隔離 150
5.1.3 客戶端認證 152
5.2 用戶認證 153
5.2.1 本地數(shù)據(jù)庫認證 153
5.2.2 LDAP認證 154
5.2.3 OIDC認證 159
5.3 訪問控制與授權(quán) 169
5.3.1 基于角色的訪問策略 169
5.3.2 用戶與分組 170
5.4 機器人賬戶 173
5.5 常見問題 175
第6章 安全策略 177
6.1 可信內(nèi)容分發(fā) 177
6.1.1 TUF與Notary 178
6.1.2 內(nèi)容信任 182
6.1.3 Helm 2 Chart簽名 186
6.2 插件化的漏洞掃描 188
6.2.1 整體設(shè)計 190
6.2.2 掃描器管理 192
6.2.3 掃描API規(guī)范 193
6.2.4 掃描管理 197
6.2.5 異步掃描任務(wù) 201
6.2.6 與掃描相關(guān)的API 202
6.3 使用漏洞掃描功能 207
6.3.1 系統(tǒng)掃描器 207
6.3.2 項目掃描器 209
6.3.3 項目漏洞掃描 210
6.3.4 全局漏洞掃描 213
6.3.5 自動掃描 214
6.3.6 與漏洞關(guān)聯(lián)的部署安全策略 214
6.3.7 已支持的插件化掃描器 216
6.4 常見問題 218
第7章 內(nèi)容的遠程復(fù)制 220
7.1 基本原理 220
7.2 設(shè)置Artifact倉庫服務(wù) 223
7.3 復(fù)制策略 225
7.3.1 復(fù)制模式 225
7.3.2 過濾器 225
7.3.3 觸發(fā)方式 226
7.3.4 創(chuàng)建復(fù)制策略 228
7.3.5 執(zhí)行復(fù)制策略 229
7.4 Harbor實例之間的內(nèi)容復(fù)制 231
7.5 與第三方倉庫服務(wù)之間的內(nèi)容復(fù)制 232
7.5.1 與Docker Hub之間的內(nèi)容復(fù)制 233
7.5.2 與Docker Registry之間的內(nèi)容復(fù)制 234
7.5.3 與阿里云鏡像倉庫之間的內(nèi)容復(fù)制 235
7.5.4 與AWS ECR之間的內(nèi)容復(fù)制 236
7.5.5 與GCR之間的內(nèi)容復(fù)制 236
7.5.6 與Helm Hub之間的內(nèi)容復(fù)制 237
7.6 典型使用場景 238
7.6.1 Artifact的分發(fā) 238
7.6.2 雙向同步 239
7.6.3 DevOps鏡像流轉(zhuǎn) 240
7.6.4 其他場景 241
第8章 高級管理功能 242
8.1 資源配額管理 242
8.1.1 基本原理 242
8.1.2 設(shè)置項目配額 247
8.1.3 設(shè)置系統(tǒng)配額 247
8.1.4 配額的使用 249
8.1.5 配額超限的提示 252
8.2 垃圾回收 253
8.2.1 基本原理 253
8.2.2 觸發(fā)方式 256
8.2.3 垃圾回收的執(zhí)行 257
8.3 不可變Artifact 258
8.3.1 基本原理 259
8.3.2 設(shè)置不可變Artifact的規(guī)則 260
8.3.3 使用不可變Artifact的規(guī)則 262
8.4 Artifact保留策略 263
8.4.1 基本原理 263
8.4.2 設(shè)置保留策略 265
8.4.3 模擬運行保留策略 269
8.4.4 觸發(fā)保留策略 271
8.5 Webhook 272
8.5.1 基本原理 273
8.5.2 設(shè)置Webhook 276
8.5.3 與其他系統(tǒng)的交互 280
8.6 多語言支持 284
8.7 常見問題 286
第9章 生命周期管理 288
9.1 備份與恢復(fù) 288
9.1.1 數(shù)據(jù)備份 288
9.1.2 Harbor的恢復(fù) 290
9.1.3 基于Helm的備份與恢復(fù) 291
9.1.4 基于鏡像復(fù)制的備份和恢復(fù) 292
9.2 版本升級 295
9.2.1 數(shù)據(jù)遷移 296
9.2.2 升級Harbor 299
9.3 系統(tǒng)排錯方法 300
9.4 常見問題 305
9.4.1 配置文件不生效 305
9.4.2 Docker重啟后Harbor無法啟動 305
9.4.3 在丟失secret key的情況下刪除已簽名的鏡像 306
9.4.4 丟失了系統(tǒng)管理員admin的密碼 307
第10章 API的使用方法 308
10.1 API概述 308
10.1.1 核心管理API概述 309
10.1.2 Registry API概述 313
10.2 核心管理API 315
10.2.1 用戶管理API 315
10.2.2 項目管理API 317
10.2.3 倉庫管理API 319
10.2.4 Artifact管理API 319
10.2.5 遠程復(fù)制API 322
10.2.6 掃描API 324
10.2.7 垃圾回收API 326
10.2.8 項目配額API 327
10.2.9 Tag保留API 328
10.2.10 不可變Artifact API 329
10.2.11 Webhook API 330
10.2.12 系統(tǒng)服務(wù)API 331
10.2.13 API控制中心 332
10.3 Registry API 336
10.3.1 Base API 337
10.3.2 Catalog API 337
10.3.3 Tag API 337
10.3.4 Manifest API 338
10.3.5 Blob API 338
10.4 API編程實例 339
10.5 小結(jié) 340
第11章 異步任務(wù)系統(tǒng) 341
11.1 系統(tǒng)設(shè)計 341
11.1.1 基本架構(gòu) 342
11.1.2 任務(wù)編程模型 350
11.1.3 任務(wù)執(zhí)行模型 353
11.1.4 任務(wù)執(zhí)行流程解析 354
11.1.5 系統(tǒng)日志 357
11.1.6 系統(tǒng)配置 358
11.1.7 REST API 360
11.2 核心代碼解讀 364
11.2.1 代碼目錄結(jié)構(gòu) 365
11.2.2 主函數(shù)入口 366
11.2.3 系統(tǒng)的啟動過程 367
11.2.4 API服務(wù)器的啟動過程 371
11.2.5 任務(wù)運行器的執(zhí)行過程 375
11.2.6 系統(tǒng)中的關(guān)鍵子模塊 379
11.3 常見問題 400
11.3.1 如何排除故障 401
11.3.2 狀態(tài)不一致 402
第12章 應(yīng)用案例 404
12.1 Harbor功能的集成 404
12.1.1 vSphere 7.0 404
12.1.2 Tanzu Kubernetes Grid 412
12.1.3 P2P鏡像分發(fā) 414
12.1.4 云原生的聯(lián)邦學(xué)習(xí)平臺 420
12.2 成功案例 423
12.2.1 網(wǎng)易輕舟微服務(wù)平臺 423
12.2.2 京東零售鏡像服務(wù) 428
12.2.3 品高云企業(yè)級DevOps實戰(zhàn) 431
12.2.4 騫云SmartCMP容器即服務(wù) 434
12.2.5 前才云容器云平臺 435
12.2.6 360容器云平臺的Harbor高可用方案 440
第13章 社區(qū)治理和發(fā)展 443
13.1 Harbor社區(qū)治理 443
13.1.1 治理模式 443
13.1.2 安全響應(yīng)機制 446
13.1.3 社區(qū)參與方式 449
13.1.4 參與項目貢獻 451
13.2 項目展望 463
13.2.1 鏡像代理 463
13.2.2 P2P鏡像預(yù)熱 464
13.2.3 Harbor Operator 466
13.2.4 非阻塞垃圾回收 467
附錄A 詞匯表 471