-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
1/26 新書到! 1/19 新書到! 1/12 新書到! 1/5 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Harbor權威指南:容器鏡像、Helm Chart等云原生制品的管理與實踐

( 簡體 字)
作者:張海寧 等類別:1. -> 程式設計 -> 雲計算
譯者:
出版社:電子工業出版社Harbor權威指南:容器鏡像、Helm Chart等云原生制品的管理與實踐 3dWoo書號: 53599
詢問書籍請說出此書號!

有庫存
NT售價: 640

出版日:9/1/2020
頁數:500
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121396854
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
作者序:

譯者序:

前言:

推薦序1


我在準備動筆寫這篇序的時候,一瞬間仿佛回到了多年前的大學校園。當時張海寧(Henry)正在攻讀我的碩士研究生,研究領域是數據挖掘和機器學習。在那個互聯網經濟尚待崛起的年代,我們對互聯網的未來充滿期盼。
時至今日,隨著各種新技術產業和商業模式動能的釋放,放眼全球,整個世界已經運行在一個巨大的軟件體系之上。以A(人工智能)B(大數據)C(云計算)為代表的互聯網企業和互聯網核心技術,更是以不可想象的步伐引領著社會的變革和前行。云計算作為強大的技術底座,深度融合人工智能、大數據和邊緣計算等技術,為現實世界建立起精確的數字化模型,形成一套可以對物理世界感知、洞察及反饋的高效體系。以云計算、5G、互聯網、物聯網為代表的信息基礎設施,正結合大數據、人工智能等技術,使傳統基礎設施向數字化、智能化的融合基礎設施轉型和升級,并為科研、技術、產業等領域提供創新型基礎設施。
從發展的歷程上看,云計算早期主要注重基礎設施的靈活交付能力,使計算資源能夠方便地為用戶所用。經過十多年的高速發展,云計算已經邁進2.0時代,以應用為中心和基礎設施為代碼的云原生(Cloud Native)技術正驅動著現代化應用前進的步伐。如今,云原生技術已經成為應用主流的設計、開發和運維模式,容器則作為云原生技術的基石,得到普遍采用。越來越多的企業在云原生平臺上構建了物聯網、大數據和人工智能的基礎能力,在產業智能化的浪潮中推動著數字化的創新,帶來影響深遠的社會價值和商業價值。
Henry作為資深的技術專家,一直活躍在云原生的舞臺上。他于2014年率領團隊創建和研發了開源鏡像倉庫Harbor項目,解決了用戶管理容器鏡像的諸多痛點,如權限控制、遠程復制、漏洞分析等,Harbor也一躍成為非常受歡迎的開源容器鏡像管理軟件。值得一提的是,秉承著開放、包容的理念,Harbor項目于2018年被捐獻給云原生計算基金會(CNCF),成為首個原創于中國的CNCF項目,由廣大社區用戶共同維護。最近更傳來喜訊:Harbor成為首個成熟度達到CNCF畢業級別的中國開源項目。
目前,我所帶領的微眾銀行人工智能團隊正致力于聯邦學習的前沿學術研究和應用場景落地。在2019年年初,我們開源了工業級聯邦學習框架FATE(Federated AI Technology Enabler),旨在解決人工智能中數據使用和隱私保護的問題。在聯邦學習中,多個組織參與數據方面的合作,各方需要相互信任并運行相同的軟件,因此,將FATE項目開源是很好的選擇,將促進聯邦學習生態圈的培育和發展。Henry所在的團隊和我們緊密合作,為FATE項目賦予了云原生的能力,FATE和Harbor兩個項目在開源領域勝利會師,實現了基于容器鏡像的敏捷部署和自動化運維,大大降低了聯邦學習平臺的使用門檻,也彰顯了開源的力量和云原生+AI的價值。
本書由Harbor項目維護者和貢獻者傾力編撰,立意新穎,思路清晰,涵蓋了Harbor的設計思想、技術原理、配置架構和應用案例等豐富內容,既高屋建瓴地闡釋了云原生技術的核心原理,也深入淺出地解析了容器落地的優秀實踐,是云計算、人工智能、大數據等計算機領域的工程師、架構師、開發者和開源貢獻者了解云原生應用,特別是容器和鏡像技術的優秀參考書,也適合理工類大學生閱讀和學習。

楊 強
微眾銀行首席人工智能官、香港科技大學教授




推薦序2


隨著LAMP(Linux、Apache、MySQL和PHP)技術的廣泛應用,開源技術如雨后春筍般發展。在云計算普及的時代,開發人員越來越多地使用Docker和Kubernetes等開源云原生管理工具和平臺。來自中國的開發人員也成為CNCF舉足輕重的貢獻者。
在這樣的背景下,云原生成為了中國開源社區參與度和貢獻度非常顯著的技術。VMware從一開始就參與了相關工作,在2011年將Cloud Foundry等內部項目開源給云原生社區。VMware也是中國云原生社區的先行者之一,一直積極支持技術社區的活動,例如2016年,VMware發起“云原生論壇”,并在2018年推動了國際云原生大會KubeCon+CloudNativeCon在中國的落地。
Harbor是一個企業級開源鏡像倉庫,能夠對云原生制品的內容進行存儲、簽名和掃描,用戶對Harbor的接受度也證明了VMware在云原生開源領域的影響力。Harbor最初是VMware中國研發中心云原生實驗室的內部項目,在2014年由我和本書作者之一張海寧等聯合發起,于2016年年初首先在中國開源社區推廣。開源后,Harbor很快就展現了云原生基礎軟件的普適性,首先獲得國內主流互聯網公司、大型企業和初創公司的青睞和應用。
Harbor也逐漸從國內發展到國外,獲得了全球云原生社區的一致認可。2018年8月, Harbor成為中國第一個原創的CNCF項目,也是VMware捐獻給CNCF的第一個項目。截至2020年年中,Harbor在GitHub上獲得12000多顆星,擁有190多位代碼貢獻者,這些貢獻者來自全球80多個組織,如Anchore、網易云、前才云科技、騰訊云和OVHcloud等,月下載量超過3萬次。
同時,Harbor項目成立了由多個社區主導的工作組,例如遠程復制工作組、P2P分發工作組、鏡像掃描工作組等,負責制定和開發Harbor各個具體功能的路線圖,社區的參與大大豐富和完善了Harbor的功能。
在Harbor項目取得成功的基礎上,VMware中國聯手各行業龍頭企業的創新部門、初創公司及大學與研究機構等,發起VMware創新網絡(VMware Innovation Network),共同打造開放、多元、共生的生態系統,涵蓋云原生、邊緣計算、機器學習、云網絡、云數據分析等技術領域。
2020年6月,Harbor成為中國第1個、全球第11個畢業的CNCF項目,其他已畢業的項目包括Kubernetes、Prometheus和Helm等。本書是中國重量級的云原生技術著作之一,它的發布恰逢其時。本書作者都是Harbor項目的原創開發者和“骨灰”級的社區維護者,包括張海寧、鄒佳、任茂盛、姜坦、尹文開、王巖、裴明明等。讀者通過本書可全面了解云原生技術,特別是容器鏡像等云原生制品的原理、特點和實踐方法。
長風破浪會有時,直掛云帆濟滄海!相信本書能為讀者帶來新的起點和收獲,也希望更多的用戶和開發者加入云原生社區,共同創新!

任道遠
VMware中國研發中心總經理
VMware創新網絡聯合發起人、Harbor項目聯合發起人




推薦序3


從云計算到云原生,這一以云為起點的浪潮已持續10年之久,我所在的團隊也有幸在這一方向實踐了近8年,我能深刻感受到其中有一些邏輯在驅使云計算技術棧的發展,使陸續出現的許多技術演進似乎成為一種必然,也使從云計算到云原生能產生被廣泛認同的標準,形成許多行業的共識,進而形成一個廣闊的相對標準的產品、服務市場。
在從事云計算、云原生相關工作的這些年里,我經常要面對的問題是“為什么做”,經常要面對的情況則是“不得不做”。云計算技術的應用與算法、前端等有很大不同,我們很難以技術進步帶來的直接價值驅動業務進行技術升級,因此很多時候都是已經感受到明顯的瓶頸或對未來發展過程中的技術瓶頸有了明確的預期,才能推動技術的升級。
以互聯網業務服務端的演進來看,這是一個應對業務發展所產生的復雜性的過程,自Web 1.0到Web 2.0再到移動應用,互聯網業務越來越復雜,一個應用聚集了足夠流量之后總會向平臺化發展,以尋求商業模式的突破,而平臺由于多元、共生的特性,復雜性遠遠大于單一應用。以網易為例,我們遭遇了資源生命周期管理類運維操作大增、服務器型號碎片化等問題,使建設云計算平臺從2010年的“為什么做”變成了2012年的“不得不做”。而OpenStack亦誕生于2010年,并在2012年達到一定的成熟度。這完全不是巧合,而是因為有眾多企業正在面對同樣的問題,是市場的需求使然。
隨著移動應用浪潮的到來及流量紅利的激增,平臺的價值被進一步放大,電商、社交等平臺的復雜性達到了前所未有的高度,此時原有的服務拆分粒度已經過于粗放,單個服務內的業務邏輯修改牽一發而動全身的情況屢見不鮮,所以把服務進一步進行細粒度拆分成為必然的選擇。同樣以網易為例,2015年用戶量過億的網易云音樂、2015年誕生的考拉海購,在經歷迭代的困境后均逐步發展為微服務架構,這是“不得不做”的選擇。另外,對服務的細粒度拆分不斷給運維帶來挑戰,中心化的運維角色不能滿足海量服務的維護需求,開發人員也需要參與到運維協作中來,尤其需要分擔更為高頻的發布工作。我們在實踐中也遇到了一些挑戰,例如為解決運行環境問題產生了大量的環境初始化模板,模板與制品的分離管理造成了諸多的混亂,在服務節點的生命周期管理和應用編排方面則涉及IaaS層接口和編排服務接口如何設計等問題。我們在不斷踩坑過程中意識到在缺乏社區標準支持的情況下自行解決這些問題的代價是巨大的,此時逐漸成熟的容器、Kubernetes讓我們看到了解決問題的希望。2016年左右,我們幾乎毫不猶豫地轉向了容器和Kubernetes技術棧,至此從微服務到容器、Kubernetes,云原生便成為了我們延續至今且尚在不斷探索的技術路線。
技術架構和技術棧的更新不僅解決了我們在發展過程中面對的問題,更讓我們看到了后續發展的可能性,在軟件架構不斷拆分且轉向服務化的過程中,傳統的基于代碼的重用由于直接共享數據模型與數據層,難以支持快速迭代,給人以包含業務邏輯的軟件重用不靠譜的印象。而在服務化架構下,服務方保障了接口的穩定兼容,服務抽象了業務的能力,新業務的構建得以大量依賴已存在的服務,形成了中臺這樣高級的業務能力重用的形態。在服務化重用的浪潮背后有一項基礎軟件服務是不可或缺的,參考代碼級重用時代的制品管理機制,一個可運行的服務、應用也需要有自己的倉庫以支持服務化形態交付。同時,由于代表企業業務能力的軟件服務在數字化時代已成為企業的核心資產,因此需要的企業級管控能力遠高于制品管理要求。Harbor從2016年開源至今,功能逐步完善,無論是企業級鏡像管理,還是鏡像復制、漏洞掃描等功能都切實解決了企業的難題,Harbor自2.0版本開始更是兼容OCI標準,成為較早遵循云原生標準的倉庫項目,可以說,Harbor已經成為承載服務、應用鏡像管理的標準。對于這樣一個重要的基礎軟件,網易的云原生團隊也積極加入其社區代碼的維護工作中,推動Harbor在越來越多的企業中應用。
另一方面,很多“不得不做”云原生的Harbor新用戶,對這個軟件的能力、架構設計及優秀實踐并不熟悉,往往會走一些彎路。這部由Harbor社區核心維護者和貢獻者傾力編撰的《Harbor權威指南》適時完成,從組件介紹、源碼解析到生態融合,結構清晰,案例詳盡,具有很強的實操性,能幫助我們少走彎路。面對云原生的浪潮,我們很有必要深入理解Harbor這樣的云原生基礎軟件。相信閱讀本書會有助于我們快速入門、進階乃至精通Harbor。

陳諤
網易云計算中心總經理

前 言
本書寫作初衷

2013年,Docker在發布之后取得空前的成功,成為史上非常受歡迎的開發工具之一。除了簡便、易用,鏡像技術也是Docker的核心所在,包括鏡像格式的創新和用于鏡像分發的Registry服務。Docker公司的著名口號“Build, Ship and Run”(構建、傳送和運行),概括了應用開發的精髓,其中隱藏的含義是“構建鏡像、傳送鏡像和運行鏡像,一切皆以鏡像為中心”。OCI組織的三個規范與該口號分別對應:鏡像規范(構建)、運行時規范(運行)和正在制定的分發規范(傳送)。盡管目前這些規范有一些不同的實現,但鏡像規范的實現基本上以Docker的鏡像格式為主。由此可見,鏡像是容器應用的關鍵技術,圍繞鏡像的一系列管理工作將是實際運維工作的重中之重。
在Docker出現之前,我在Sun公司任職時已經接觸和使用過容器技術(Solaris Containers)。從2012年開始,我在VMware公司負責Cloud Foundry開源PaaS項目的技術推廣工作。Cloud Foundry項目使用了被稱為Warden的容器引擎來運行應用。Warden與Docker類似,都是PaaS項目中的容器執行引擎,只是被“埋藏”在Cloud Foundry項目中,沒有像Docker那樣獨立發布出來。
我初次接觸Docker后,被其流暢的使用體驗和優秀的容器方案所震撼,深感這將是應用開發的一個大趨勢。對Docker進行研究后,我發現容器鏡像是Docker軟件的命脈所在,而當時并沒有很好的鏡像管理工具。在同期的一些技術大會上,也有不少用戶抱怨在鏡像管理方面遇到各種難題。
于是,針對鏡像管理的諸多痛點,我帶領團隊開發了一個容器鏡像管理軟件,在公司內部試用后取得一定的成效。這個軟件就是Harbor的原型。Harbor在開源后受歡迎的程度遠超我們所料。Harbor圖形化的鏡像管理功能獨樹一幟,切中了容器應用開發和運維的要點,在國內獲得大量用戶的青睞,參與Harbor開源項目的開發者也在與日俱增。
在加入CNCF后,Harbor和全球云原生社區的合作更加緊密,并加強了對Kubernetes和Helm的支持。在Harbor 2.0中還支持OCI的鏡像規范和分發規范,可管理各類云原生領域的制品。
目前已經有很多用戶在生產系統中部署了Harbor,國內很大一部分用戶都將Harbor作為鏡像和Helm Chart的制品倉庫。Harbor的維護者們通過微信群、GitHub及郵件組等的問題反饋了解到不少用戶遇到的問題,這些問題產生的主要原因有二:其一,用戶對Harbor的安裝、配置等理解不徹底;其二,文檔資料不完整或者缺失。由此可見,Harbor用戶亟需一本參考書作為Harbor系統的使用指引,然而市面上并沒有這樣的書籍。正逢電子工業出版社的張國霞編輯邀請我編寫一本關于Harbor的技術書,我便與Harbor項目的維護者們進行了溝通,溝通的結果是大家一致希望編寫本書來完整介紹Harbor項目的方方面面,讓Harbor帶來更大的價值。本書的編撰工作便開始了。
撰寫書稿是相當艱辛的,大多數作者需要在繁忙的工作之余擠出時間查資料和編寫書稿,并且互相審閱和修訂,有的章節甚至修改了不下十遍。但作者們都有一個共同的心愿:希望通過本書把Harbor的各個功能準確、詳盡地傳遞給讀者,幫助讀者理解和使用好Harbor的功能。
本書特色

這是一本全面介紹Harbor云原生制品倉庫的書籍,涵蓋Harbor架構、原理、配置、定制化開發、項目治理和成功案例等內容,由Harbor開源項目維護者和貢獻者傾力撰寫,其中不乏Harbor項目的早期開發人員,甚至Harbor原型代碼的編制者。
需要特別說明的是,很多未公開發表的內容在本書中都有詳盡講解,如:Harbor的架構原理;OCI制品的支持方式;高可用制品倉庫系統的設計要點;鏡像等制品的掃描、權限和安全策略;備份與恢復策略;API使用指南等。對Harbor用戶和開發者來說,本書是非常理想的參考資料。
本書讀者對象

云原生軟件開發工程師、測試工程師和運維工程師
IT架構師和技術經理
Harbor開源項目的用戶、開發者和貢獻者
計算機相關學科的高校學生
本書架構及使用方法

本書共有13章,部分章節由多位作者合力完成,以更準確地闡釋相應的內容。下面列出每章的主要內容和作者。
第1章介紹云原生應用的產生背景、以鏡像為主的制品管理原理和規范,以及制品倉庫的作用,由張海寧負責撰寫,任茂盛、裴明明參與撰寫。
第2章概述Harbor功能和架構,為讀者理解后續的章節做鋪墊,由姜坦負責撰寫。
第3章詳細講解Harbor的安裝、部署,包括高可用部署的方案要點,還包括對Harbor的入門性介紹,由王巖負責撰寫,孔礬建、任茂盛參與撰寫。
第4章介紹Harbor支持和管理OCI制品原理、常見OCI制品的使用方法,由任茂盛負責撰寫,尹文開、張海寧、鄒佳參與撰寫。
第5章闡釋Harbor的權限管理和訪問控制的原理,以及相關配置方法,由何威威負責撰寫,張海寧參與撰寫。
第6章解析Harbor中可使用的安全策略,包括可信的內容分發和漏洞掃描機制,由鄒佳負責撰寫。
第7章講解鏡像、Helm Chart等制品在Harbor中的遠程復制原理,以及與其他倉庫服務的集成原理,由尹文開負責撰寫。
第8章詳述Harbor的高級管理功能,包括資源配額、垃圾回收、不可變Artifact、保留策略、Webhook等,由王巖負責撰寫,裴明明、張子明、鄧謙參與撰寫。
第9章解釋Harbor生命周期的管理過程,包括備份、恢復、升級的步驟和方法,由鄧謙負責撰寫。
第10章梳理Harbor的API的使用方法并給出編程示例,由尹文開負責撰寫,張海寧參與撰寫。
第11章描述Harbor后臺異步任務系統的機理,并分析其主要源代碼的工作原理,由鄒佳負責撰寫。
第12章匯集和整理Harbor與其他系統的整合方法及社區用戶的成功案例,由張海寧負責撰寫,裴明明、任茂盛、孔礬建、陳家豪參與撰寫。
第13章介紹Harbor開源社區的管理原則、告警機制和開源項目的參與方式,并展望項目的發展方向,由張海寧負責撰寫,鄒佳、王巖、孔礬建、張道軍、尹文開、陳德參與撰寫。
我們建議讀者這樣使用本書:
對云原生領域特別是容器技術不太了解的讀者,可以先閱讀第1章的基礎知識;
初次接觸Harbor的讀者,可以直接閱讀第2章以快速了解Harbor的功能和架構;
希望快速上手Harbor的讀者,可以按照第3章的講解,從部署Harbor倉庫軟件著手;
對Harbor有一定使用經驗的讀者,可以按需閱讀第3∼13章的內容;
有意向參與Harbor開源項目貢獻的開發者,可以重點閱讀第13章。
加入本書讀者交流群

本書已建立讀者交流群,既可以參見封底提示加入,也可以在“亨利筆記”公眾號后臺回復“讀者”二字獲邀加入,入群后可以進行技術討論和意見反饋。希望加入Harbor用戶群的讀者,可以關注“Harbor社區”公眾號(微信號為HarborChina),在后臺回復“入群”二字,即可收到入群邀請。
致謝

本書的主要編寫時間在2020年4月之后,因為正處特殊時期,所以本書的寫作交流幾乎只能線上進行,但作者們都擁有共同的信念且相互信任,克服了重重困難,使本書順利出版。在此感謝各位作者為本書出版付出的巨大努力,他們是VMware中國研發中心Harbor開發組的成員:主任工程師鄒佳、高級研發工程師王巖、高級研發工程師尹文開、高級研發經理任茂盛、主任工程師姜坦、研發工程師鄧謙、高級研發工程師何威威、高級研發工程師張子明、主任工程師張道軍,以及網易杭州研究院輕舟云原生架構師裴明明、騰訊高級工程師孔礬建、VMware中國研發中心研發工程師陳家豪、騰訊專有云平臺研發工程師陳德。其中,特別感謝鄒佳,他不僅編寫了翔實的內容,還協助我進行了統稿和協調工作。感謝任茂盛組織和協調寫作資源,也感謝王巖、尹文開、裴明明撰寫了大量內容。同時感謝電子工業出版社的張國霞編輯,她不辭勞苦地為本書進行策劃、審稿、校正等工作,并鼓勵作者們完成艱巨的寫作任務。
由衷感謝為本書作序的各位大師和領導。其中,我的恩師、微眾銀行首席人工智能官楊強教授給予我很多鼓勵和支持,推動了聯邦學習與Harbor等云原生技術的融合,并撥冗寫序和提出寶貴意見。VMware中國研發中心總經理、Harbor項目聯合發起人任道遠先生是我多年的領導,也是中國云原生社區不遺余力的布道者和倡導者,他從Harbor的原型階段開始一直支持和推動著項目的發展,對Harbor項目取得的成績功不可沒。網易云計算中心總經理陳諤先生是云計算和云原生探索和實踐的先鋒,他帶領的網易輕舟團隊在微服務平臺中使用了Harbor,還給Harbor開源項目貢獻代碼,為本書提供了實踐案例等內容,在推薦序中分享的服務架構演進的經驗更值得我們研讀和學習。
感謝同事Harbor項目經理徐天行先生、王曉璇女士、宋春雪女士對Harbor中國社區長期以來的管理和運營,以及對出版本書的協助。感謝我多年的摯友李天逸先生對本書內容的幫助。感謝為本書提供Harbor案例的社區用戶和合作伙伴:廣州市品高軟件股份有限公司聯合創始人劉忻先生、品高云產品總監邱洋先生、上海騫云科技創始人和CEO方禮先生、前才云科技CEO張鑫先生、CNCF官方大使和京東技術架構部產品經理張麗穎女士、360搜索事業群高級總監張華先生。也感謝廣大Harbor用戶對本書內容所提出的建議。
最后,感謝我的愛人和孩子,因為寫作本書,我犧牲了很多陪伴他們的時間,他們的鼓勵也使我能堅持把書寫完。同時,感謝我的父母和兄長,他們在我童年時代學習計算機知識時給予我的支持和指導,使我在信息技術領域一直走到現在。

張海寧
2020年9月
內容簡介:

在云原生生態中,容器鏡像和其他云原生制品的管理與分發是至關重要的一環。本書對開源云原生制品倉庫Harbor展開全面講解,由Harbor開源項目維護者和貢獻者傾力撰寫,內容涵蓋Harbor的架構、原理、功能、部署與配置、運維、定制化開發、API、項目治理和成功案例等,很多未公開發表的內容在本書中都有詳盡講解,如:Harbor的架構原理;OCI制品的支持方式;高可用制品倉庫的設計要點;鏡像等制品的掃描;權限和安全策略;備份與恢復策略;API使用指南等。
目錄:

第1章 云原生環境下的制品管理 1
1.1 云原生應用概述 2
1.2 容器技術簡介 5
1.2.1 容器技術的發展背景 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 容器鏡像的結構 17
1.4.1 鏡像的發展 17
1.4.2 Docker鏡像的結構 18
1.4.3 Docker鏡像的倉庫存儲結構 20
1.4.4 Docker鏡像的本地存儲結構 24
1.4.5 OCI鏡像規范 25
1.5 鏡像管理和分發 34
1.5.1 Docker鏡像管理和分發 34
1.5.2 OCI分發規范 35
1.5.3 OCI Artifact 37
1.6 鏡像倉庫Registry 40
1.6.1 Registry的作用 41
1.6.2 公有Registry服務 43
1.6.3 私有Registry服務 43
1.6.4 Harbor Registry 44

第2章 功能和架構概述 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 整體架構 58
2.2.2 核心組件 59
2.2.3 可選組件 63

第3章 安裝Harbor 65
3.1 在單機環境下安裝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 存儲系統配置 105
3.4.1 AWS的Amazon S3 106
3.4.2 網絡文件系統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功能的實現 125
4.1.1 數據模型 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 云原生應用程序包CNAB 142
4.5 OPA Bundle 145
4.6 其他Artifact 147

第5章 訪問控制 149
5.1 概述 149
5.1.1 認證與授權 149
5.1.2 資源隔離 150
5.1.3 客戶端認證 152
5.2 用戶認證 153
5.2.1 本地數據庫認證 153
5.2.2 LDAP認證 154
5.2.3 OIDC認證 159
5.3 訪問控制與授權 169
5.3.1 基于角色的訪問策略 169
5.3.2 用戶與分組 170
5.4 機器人賬戶 173
5.5 常見問題 175

第6章 安全策略 177
6.1 可信內容分發 177
6.1.1 TUF與Notary 178
6.1.2 內容信任 182
6.1.3 Helm 2 Chart簽名 186
6.2 插件化的漏洞掃描 188
6.2.1 整體設計 190
6.2.2 掃描器管理 192
6.2.3 掃描API規范 193
6.2.4 掃描管理 197
6.2.5 異步掃描任務 201
6.2.6 與掃描相關的API 202
6.3 使用漏洞掃描功能 207
6.3.1 系統掃描器 207
6.3.2 項目掃描器 209
6.3.3 項目漏洞掃描 210
6.3.4 全局漏洞掃描 213
6.3.5 自動掃描 214
6.3.6 與漏洞關聯的部署安全策略 214
6.3.7 已支持的插件化掃描器 216
6.4 常見問題 218

第7章 內容的遠程復制 220
7.1 基本原理 220
7.2 設置Artifact倉庫服務 223
7.3 復制策略 225
7.3.1 復制模式 225
7.3.2 過濾器 225
7.3.3 觸發方式 226
7.3.4 創建復制策略 228
7.3.5 執行復制策略 229
7.4 Harbor實例之間的內容復制 231
7.5 與第三方倉庫服務之間的內容復制 232
7.5.1 與Docker Hub之間的內容復制 233
7.5.2 與Docker Registry之間的內容復制 234
7.5.3 與阿里云鏡像倉庫之間的內容復制 235
7.5.4 與AWS ECR之間的內容復制 236
7.5.5 與GCR之間的內容復制 236
7.5.6 與Helm Hub之間的內容復制 237
7.6 典型使用場景 238
7.6.1 Artifact的分發 238
7.6.2 雙向同步 239
7.6.3 DevOps鏡像流轉 240
7.6.4 其他場景 241

第8章 高級管理功能 242
8.1 資源配額管理 242
8.1.1 基本原理 242
8.1.2 設置項目配額 247
8.1.3 設置系統配額 247
8.1.4 配額的使用 249
8.1.5 配額超限的提示 252
8.2 垃圾回收 253
8.2.1 基本原理 253
8.2.2 觸發方式 256
8.2.3 垃圾回收的執行 257
8.3 不可變Artifact 258
8.3.1 基本原理 259
8.3.2 設置不可變Artifact的規則 260
8.3.3 使用不可變Artifact的規則 262
8.4 Artifact保留策略 263
8.4.1 基本原理 263
8.4.2 設置保留策略 265
8.4.3 模擬運行保留策略 269
8.4.4 觸發保留策略 271
8.5 Webhook 272
8.5.1 基本原理 273
8.5.2 設置Webhook 276
8.5.3 與其他系統的交互 280
8.6 多語言支持 284
8.7 常見問題 286

第9章 生命周期管理 288
9.1 備份與恢復 288
9.1.1 數據備份 288
9.1.2 Harbor的恢復 290
9.1.3 基于Helm的備份與恢復 291
9.1.4 基于鏡像復制的備份和恢復 292
9.2 版本升級 295
9.2.1 數據遷移 296
9.2.2 升級Harbor 299
9.3 系統排錯方法 300
9.4 常見問題 305
9.4.1 配置文件不生效 305
9.4.2 Docker重啟后Harbor無法啟動 305
9.4.3 在丟失secret key的情況下刪除已簽名的鏡像 306
9.4.4 丟失了系統管理員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 遠程復制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 系統服務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 小結 340

第11章 異步任務系統 341
11.1 系統設計 341
11.1.1 基本架構 342
11.1.2 任務編程模型 350
11.1.3 任務執行模型 353
11.1.4 任務執行流程解析 354
11.1.5 系統日志 357
11.1.6 系統配置 358
11.1.7 REST API 360
11.2 核心代碼解讀 364
11.2.1 代碼目錄結構 365
11.2.2 主函數入口 366
11.2.3 系統的啟動過程 367
11.2.4 API服務器的啟動過程 371
11.2.5 任務運行器的執行過程 375
11.2.6 系統中的關鍵子模塊 379
11.3 常見問題 400
11.3.1 如何排除故障 401
11.3.2 狀態不一致 402

第12章 應用案例 404
12.1 Harbor功能的集成 404
12.1.1 vSphere 7.0 404
12.1.2 Tanzu Kubernetes Grid 412
12.1.3 P2P鏡像分發 414
12.1.4 云原生的聯邦學習平臺 420
12.2 成功案例 423
12.2.1 網易輕舟微服務平臺 423
12.2.2 京東零售鏡像服務 428
12.2.3 品高云企業級DevOps實戰 431
12.2.4 騫云SmartCMP容器即服務 434
12.2.5 前才云容器云平臺 435
12.2.6 360容器云平臺的Harbor高可用方案 440

第13章 社區治理和發展 443
13.1 Harbor社區治理 443
13.1.1 治理模式 443
13.1.2 安全響應機制 446
13.1.3 社區參與方式 449
13.1.4 參與項目貢獻 451
13.2 項目展望 463
13.2.1 鏡像代理 463
13.2.2 P2P鏡像預熱 464
13.2.3 Harbor Operator 466
13.2.4 非阻塞垃圾回收 467

附錄A 詞匯表 471
序: