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