本書第一主題為解析 Kubernetes API Server 源代碼;第二主題是結(jié)合源碼知識(shí)進(jìn)行擴(kuò)展開發(fā)。全書分為3篇12章。第一篇為基礎(chǔ)篇(第1章和第2章)。第1章簡介Kubernetes及其組件,并迅速切入API Server,統(tǒng)一全書使用的概念名詞,介紹其主要設(shè)計(jì)模式。第2章介紹Kubernetes項(xiàng)目組織和社區(qū)治理。組織結(jié)構(gòu)對(duì)系統(tǒng)的設(shè)計(jì)有著直接影響,這部分幫助讀者理解代碼背后的人和組。在第2章讀者也會(huì)看到如何參與Kubernetes項(xiàng)目,特別是貢獻(xiàn)代碼的過程。第二篇為源碼篇(第3~8章)是本書的核心篇章。第3章宏觀展示API Server源代碼的組織,總體架構(gòu)設(shè)計(jì)等,其中關(guān)于啟動(dòng)流程的源碼部分與本篇后續(xù)章節(jié)銜接緊密;第4章聚焦整個(gè)系統(tǒng)核心對(duì)象——Kubernetes API,本章將API分為幾大類并講解為API進(jìn)行的代碼生成;第5章到第8章分別解析API Server 的各個(gè)子 Server 源碼,它們是GenericServer、主Server、擴(kuò)展Server、聚合器與聚合Server。第三篇為實(shí)戰(zhàn)篇(第9~12章)講解三種主流API Server擴(kuò)展方式。作為輔助理解源碼的手段之一,第9章不借助腳手架開發(fā)一個(gè)聚合Server;第10章為后兩章基礎(chǔ),聚焦API Server Builder和Kubebuilder兩款官方開發(fā)腳手架;第11章用 API Server Builder重寫第9章的聚合Server;第12章用Kubebuilder開發(fā)一個(gè)操作器(Operator)。本書適合Kubernetes系統(tǒng)運(yùn)維人員、擴(kuò)展開發(fā)人員、使用Go的開發(fā)者及希望提升設(shè)計(jì)水平的軟件從業(yè)人員閱讀,需具備Go語言和Kubernetes基礎(chǔ)知識(shí)。