內容簡介

Kubernetes是由谷歌開源的Docker容器集群管理系統,為容器化的應用提供了資源調度、部署運行、服務發現、擴容及縮容等一整套功能。

本書從 一個開發者的角度去理解、分析和解決問題,囊括了Kubernetes入門、核心原理、實踐指南、開發指導、高級案例、運維指南及源碼分析等方面的內容, 圖文並茂、內容豐富、由淺入深、講解全面;並圍繞着生產環境中可能出現的問題,給出了大量的典型案例,比如安全問題、網絡方案的選擇、高可用性方案及 Trouble Shooting技巧等,有很強的可借鑒性。無論是對於軟件工程師、測試工程師、運維工程師、軟件架構師、技術經理,還是對於資深IT人士來說,本書都極具參考價值。

龔正 / 惠普公司高級顧問
擁有十多年的IT從業經驗,具備豐富的雲計算、大數據分析和大型企業級應用的架構設計和實施經驗,是電信、金融、互聯網等領域的資深專家。

吳治輝 / 惠普公司資深架構師
擁有超過15年的軟件研發經驗,專注於電信軟件和雲計算方面的軟件研發,擁有豐富的大型項目架構設計經驗,是業界少有的具備很強Coding能力的S級資深架構師,也是《ZeroC Ice權威指南》的作者。

王偉 / 惠普公司資深系統架構師、大數據和雲計算技術專家
擁有多年IT行業從業經驗,參與過多個大型應用的架構設計、系統開發和實施落地,精通大數據、雲計算及大型系統架構和開發的相關技術,對互聯網和電信行業的熱點技術有着深刻的理解,是雲計算和大數據方面的技術專家。

崔秀龍 / 惠普公司資深架構師
開源軟件、自動化愛好者,擁有十多年從業經驗,對軟件生命周期的各個環節均有深刻的理解。
閆健勇 / 惠普公司高級項目經理、總構架師
擁有超過15年的電信行業系統建設經驗,主導了多項電信大型系統的架構設計和管理,對於雲計算和大數據在電信行業中的應用擁有豐富的經驗。

崔曉寧 / 惠普公司高級顧問
擁有超過7年的測試咨詢和質量管理經驗,在雲計算、大數據和分布式運算架構下的業務質量控制方面有非常豐富的項目實踐和心得,並對推動組織架構優化有豐富的經驗。幫助多個超過百人的大型項目建立軟件產品管理規范和體系,並對其運營提供指導。

劉曉紅 / 惠普公司高級咨詢顧問
擁有超過10年的電信行業從業經驗,親歷中國移動BSS/OSS領域核心系統的建設發展歷程,具備豐富的咨詢規划、需求分析、產品設計、項目管理、測試管理經驗,專注於雲計算、大數據等前沿技術的研究。
 

目錄

第1章Kubernetes入門1
1.1Kubernetes是什麼1
1.2為什麼要用Kubernetes4
1.3從一個簡單的例子開始5
1.3.1環境准備6
1.3.2啟動MySQL服務7
1.3.3啟動Tomcat應用9
1.3.4通過瀏覽器訪問網頁11
1.4Kubernetes基本概念和術語12
1.4.1Master12
1.4.2Node13
1.4.3Pod15
1.4.4Label(標簽)19
1.4.5Replication Controller(RC)22
1.4.6Deployment25
1.4.7Horizontal Pod Autoscaler(HPA)27
1.4.8Service(服務)29
1.4.9Volume(存儲卷)35
1.4.10Persistent Volume39
1.4.11Namespace(命名空間)40
1.4.12Annotation(注解)42
1.4.13小結42
第2章Kubernetes實踐指南43
2.1Kubernetes安裝與配置43
2.1.1安裝Kubernetes43
2.1.2配置和啟動Kubernetes服務45
2.1.3Kubernetes集群的安全設置51
2.1.4Kubernetes的版本升級57
2.1.5內網中的Kubernetes相關配置57
2.1.6Kubernetes核心服務配置詳解58
2.1.7Kubernetes集群網絡配置方案72
2.2kubectl命令行工具用法詳解80
2.2.1kubectl用法概述80
2.2.2kubectl子命令詳解82
2.2.3kubectl參數列表84
2.2.4kubectl輸出格式84
2.2.5kubectl操作示例86
2.3Guestbook示例:Hello World87
2.3.1創建redis—master RC和Service89
2.3.2創建redis—slave RC和Service91
2.3.3創建frontend RC和Service93
2.3.4通過瀏覽器訪問frontend頁面96
2.4深入掌握Pod97
2.4.1Pod定義詳解97
2.4.2Pod的基本用法102
2.4.3靜態Pod107
2.4.4Pod容器共享Volume108
2.4.5Pod的配置管理110
2.4.6Pod生命周期和重啟策略123
2.4.7Pod健康檢查124
2.4.8玩轉Pod調度126
2.4.9Pod的擴容和縮容135
2.4.10Pod的滾動升級139
2.5深入掌握Service143
2.5.1Service定義詳解143
2.5.2Service基本用法145
2.5.3集群外部訪問Pod或Service150
2.5.4DNS服務搭建指南153
2.5.5Ingress:HTTP7層路由機制161
第3章Kubernetes核心原理165
3.1Kubernetes API Server原理分析165
3.1.1Kubernetes API Server概述165
3.1.2獨特的Kubernetes Proxy API接口168
3.1.3集群功能模塊之間的通信169
3.2Controller Manager原理分析170
3.2.1Replication Controller171
3.2.2Node Controller173
3.2.3ResourceQuota Controller174
3.2.4Namespace Controller176
3.2.5Service Controller與Endpoint Controller176
3.3Scheduler原理分析177
3.4kubelet運行機制分析181
3.4.1節點管理181
3.4.2Pod管理182
3.4.3容器健康檢查183
3.4.4cAdvisor資源監控184
3.5kube—proxy運行機制分析186
3.6深入分析集群安全機制190
3.6.1API Server認證190
3.6.2API Server授權192
3.6.3Admission Control准入控制194
3.6.4Service Account195
3.6.5Secret私密憑據200
3.7網絡原理203
3.7.1Kubernetes網絡模型203
3.7.2Docker的網絡基礎205
3.7.3Docker的網絡實現217
3.7.4Kubernetes的網絡實現225
3.7.5開源的網絡組件229
3.7.6網絡實戰234
第4章Kubernetes開發指南247
4.1REST簡述247
4.2KubernetesAPI詳解249
4.2.1KubernetesAPI概述249
4.2.2API版本254
4.2.3API詳細說明254
4.2.4API響應說明256
4.3使用Java程序訪問Kubernetes API258
4.3.1Jersey258
4.3.2Fabric8270
4.3.3使用說明271
第5章Kubernetes運維指南292
5.1Kubernetes集群管理指南292
5.1.1Node的管理292
5.1.2更新資源對象的Label294
5.1.3Namespace:集群環境共享與隔離295
5.1.4Kubernetes資源管理299
5.1.5Kubernetes集群高可用部署方案333
5.1.6Kubernetes集群監控343
5.1.7kubelet的垃圾回收(GC)機制361
5.2Kubernetes高級案例362
5.2.1ElasticSearch日志搜集查詢和展現案例362
5.2.2Cassandra集群部署案例371
5.3Trouble Shooting指導376
5.3.1查看系統Event事件377
5.3.2查看容器日志379
5.3.3查看Kubernetes服務日志379
5.3.4常見問題381
5.3.5尋求幫助384
5.4Kubernetesv1.3開發中的新功能385
5.4.1Pet Set(有狀態的容器)385
5.4.2Init Container(初始化容器)388
5.4.3Cluster Federation(集群聯邦)391
第6章Kubernetes源碼導讀396
6.1Kubernetes源碼結構和編譯步驟396
6.2kube—apiserver進程源碼分析400
6.2.1進程啟動過程400
6.2.2關鍵代碼分析402
6.2.3設計總結417
6.3kube—controller—manager進程源碼分析420
6.3.1進程啟動過程420
6.3.2關鍵代碼分析423
6.3.3設計總結431
6.4kube—scheduler進程源碼分析433
6.4.1進程啟動過程434
6.4.2關鍵代碼分析438
6.4.3設計總結445
6.5kubelet進程源碼分析447
6.5.1進程啟動過程447
6.5.2關鍵代碼分析452
6.5.3設計總結475
6.6kube—proxy進程源碼分析476
6.6.1進程啟動過程476
6.6.2關鍵代碼分析478
6.6.3設計總結493
6.7kubectl進程源碼分析494
6.7.1kubectl create命令495
6.7.2rolling—update命令499
后記505
 

經過作者們多年的實踐經驗積累及近一年的精心准備,本書終於與我們大家見面了。我有幸作為首批讀者,提前見證和學習了在雲時代引領業界技術方向的Kubernetes和Docker的最新動態。

從內容上講,本書從一個開發者的角度去理解、分析和解決問題:從基礎入門到架構原理,從運行機制到開發源碼,再從系統運維到應用實踐,講解全面。本書圖文並茂,內容豐富,由淺入深,對基本原理闡述清晰,對程序源碼分析透徹,對實踐經驗體會深刻。

我認為本書值得推薦的原因有以下幾點。

首先,作者的所有觀點和經驗,均是在多年建設、維護大型應用系統的過程中積累形成的。例如,讀者通過學習書中的Kubernetes運維指南和高級應用實踐案例章節的內容,不僅可以直接提高開發技能,還可以解決在實踐過程中經常遇到的各種關鍵問題。書中的這些內容具有很高的借鑒和推廣意義。

其次,通過大量的實例操作和詳盡的源碼解析,本書可以幫助讀者進一步深刻理解Kubernetes的各種概念。例如書中「Java訪問KubernetesAPI」的幾種方法,讀者參照其中的案例,只要稍做修改,再結合實際的應用需求,就可以用於正在開發的項目中,達到事半功倍的效果,有利於有一定Java基礎的專業人士快速學習Kubernetes的各種細節和實踐操作。

再次,為了讓初學者快速入門,本書配備了即時在線交流工具和專業后台技術支持團隊。如果你在開發和應用的過程中遇到各類相關問題,均可直接聯系該團隊的開發支持專家。

最后,我們可以看到,容器化技術已經成為計算模型演化的一個開端,Kubernetes作為谷歌開源的Docker容器集群管理技術,在這場新的技術革命中扮演着重要的角色。Kubernetes正在被眾多知名企業所采用,例如RedHat、VMware、CoreOS及騰訊等,因此,Kubernetes站在了容器新技術變革的浪潮之巔,將具有不可預估的發展前景和商業價值。

如果你是初級程序員,那麼你有必要好好學習本書;如果你正在IT領域進行高級進階修煉,那你也有必要閱讀本書。無論是架構師、開發者、運維人員,還是對容器技術比較好奇的讀者,本書都是一本不可多得的帶你從入門向高級進階的精品書,值得大家選擇!

初瑞
中國移動業務支撐中心高級經理
網路書店 類別 折扣 價格
  1. 新書
    $594