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

Kubernetes權威指南——從Docker到Kubernetes實踐全接觸

( 簡體 字)
作者:龔正 等類別:1. -> 作業系統 -> Docker
譯者:
出版社:電子工業出版社Kubernetes權威指南——從Docker到Kubernetes實踐全接觸 3dWoo書號: 42996
詢問書籍請說出此書號!

缺書
NT售價: 445

出版日:12/1/2015
頁數:412
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121276392
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

推薦序
經過作者們多年的實踐經驗積累及近一年的精心準備,《Kubernetes權威指南——從Docker到Kubernetes實踐全接觸》終于與我們大家見面了。我有幸做為首批讀者,提前見證和學習了在云時代引領業界技術方向的Kubernetes和Docker的最新動態。
從內容上講,本書從一個開發者的角度去理解、分析和解決問題:從基礎入門到架構原理,從運行機制到開發源碼,再從系統運維到應用實踐,講解全面。本書圖文并茂,內容豐富,由淺入深,對基本原理闡述清晰,對程序源碼分析透徹,對實踐經驗體會深刻。
我認為本書值得推薦的原因有以下幾點。
首先,作者的所有觀點和經驗,均是在多年建設、維護大型應用系統的過程中積累形成的。例如,讀者通過學習書中的Kubernetes運維指南和高級應用實踐案例章節的內容,不僅可以直接提高開發技能,還可以解決在實踐過程中經常遇到的各種關鍵問題。書中的這些內容具有很高的借鑒和推廣意義。
其次,通過大量的實例操作和詳盡的源碼解析,本書可以幫助讀者進一步深刻理解Kubernetes的各種概念。例如書中“JAVA訪問Kubernetes API”的幾種方法,讀者參照其中的案例,只要稍做修改,再結合實際的應用需求,就可以用于正在開發的項目中,達到事半功倍的效果,有利于有一定JAVA基礎的專業人士快速學習Kubernetes的各種細節和實踐操作。
再次,為了讓初學者快速入門,本書配備了即時在線交流工具和專業后臺技術支持團隊。如果你在開發和應用的過程中遇到各類相關問題,均可直接聯系該團隊的開發支持專家。
最后,我們可以看到,容器化技術已經成為計算模型演化的一個開端,Kubernetes作為谷歌開源的Docker容器集群管理技術,在這場新的技術革命中扮演著重要的角色。Kubernetes正在被眾多知名企業所采用,例如RedHat、VMware、CoreOS及騰訊等,因此,Kubernetes站在了容器新技術變革的浪潮之巔,將具有不可預估的發展前景和商業價值。
如果你是初級程序員,那么你有必要好好學習本書;如果你正在IT領域進行高級進階修煉,那你也有必要閱讀本書。無論是架構師、開發者、運維人員,還是對容器技術比較好奇的讀者,本書都是一本不可多得的帶你從入門向高級進階的精品書,值得大家選擇!

初瑞
中國移動業務支撐中心高級經理

自 序
我不知道你是如何獲得這本書的,可能是在百度頭條、網絡廣告、朋友圈中聽說本書后購買的,也可能是某一天逛書店時,這本書恰好神奇地翻落書架,出現在你面前,讓你想起一千多年前那個意外得到《太公兵法》的傳奇少年,你覺得這是冥冥之中上天的恩賜,于是果斷帶走。不管怎樣,我相信多年以后,這本書仍然值得你回憶。
Kubernetes這個名字起源于古希臘,是舵手的意思,所以它的Logo既像一張漁網,又像一個羅盤。谷歌采用這個名字的一層深意就是:既然Docker把自己定位為馱著集裝箱在大海上自在遨游的鯨魚,那么谷歌就要以Kubernetes掌舵大航海時代的話語權,“捕獲”和“指引”這條鯨魚按照“主人”設定的路線巡游,確保谷歌傾力打造的新一代容器世界的宏偉藍圖順利實現。
雖然Kubernetes自誕生至今才1年多,其第一個正式版本Kubernetes 1.0于2015年7月才發布,完全是個新生事物,但其影響力巨大,已經吸引了包括IBM、惠普、微軟、紅帽、Intel、VMware、CoreOS、Docker、Mesosphere、Mirantis等在內的眾多業界巨頭紛紛加入。紅帽這個軟件虛擬化領域的領導者之一,在容器技術方面已經完全“跟從”谷歌了,不僅把自家的第三代OpenShift產品的架構底層換成了Docker+Kubernetes,還直接在其新一代容器操作系統Atomic內原生集成了Kubernetes。
Kubernetes是第一個將“一切以服務(Service)為中心,一切圍繞服務運轉”作為指導思想的創新型產品,它的功能和架構設計自始至終都遵循了這一指導思想,構建在Kubernetes上的系統不僅可以獨立運行在物理機、虛擬機集群或者企業私有云上,也可以被托管在公有云中。Kubernetes方案的另一個亮點是自動化,在Kubernetes的解決方案中,一個服務可以自我擴展、自我診斷,并且容易升級,在收到服務擴容的請求后,Kubernetes會觸發調度流程,最終在選定的目標節點上啟動相應數量的服務實例副本,這些副本在啟動成功后會自動加入負載均衡器中并生效,整個過程無須額外的人工操作。另外,Kubernetes會定時巡查每個服務的所有實例的可用性,確保服務實例的數量始終保持為預期的數量,當它發現某個實例不可用時,會自動重啟該實例或者在其他節點重新調度、運行一個新實例,這樣,一個復雜的過程無須人工干預即可全部自動化完成。試想一下,如果一個包括幾十個節點且運行著幾萬個容器的復雜系統,其負載均衡、故障檢測和故障修復等都需要人工介入進行處理,那將是多么難以想象。
通常我們會把Kubernetes看作Docker的上層架構,就好像Java與J2EE的關系一樣:J2EE是以Java為基礎的企業級軟件架構,而Kubernetes則以Docker為基礎打造了一個云計算時代的全新分布式系統架構。但Kubernetes與Docker之間還存在著更為復雜的關系,從表面上看,似乎Kubernetes離不開Docker,但實際上在Kubernetes的架構里,Docker只是其目前支持的兩種底層容器技術之一,另一個容器技術則是Rocket,后者來源于CoreOS這個Docker昔日的“戀人”所推出的競爭產品。
Kubernetes同時支持這兩種互相競爭的容器技術,這是有深刻的歷史原因的。Docker的快速發展打敗了谷歌曾經名噪一時的開源容器技術lmctfy,并迅速風靡世界。但是,作為一個已經對全球IT公司產生重要影響的技術,Docker背后的容器標準的制定注定不可能被任何一個公司私有控制,于是就有了后來引發危機的CoreOS與Docker分手事件,其導火索是CoreOS撇開了Docker,推出了與Docker相對抗的開源容器項目——Rocket,并動員一些知名IT公司成立委員會來試圖主導容器技術的標準化,該分手事件愈演愈烈,最終導致CoreOS“傍上”谷歌一起宣布“叛逃”Docker陣營,共同發起了基于CoreOS+Rocket+Kubernetes的新項目Tectonic。這讓當時的Docker陣營和Docker粉絲們無比擔心Docker的命運,不管最終鹿死誰手,容器技術分裂態勢的加劇對所有牽涉其中的人來說都沒有好處,于是Linux基金會出面調和矛盾,雙方都退讓一步,最終的結果是Linux基金會于2015年6月宣布成立開放容器技術項目(Open Container Project),谷歌、CoreOS及Docker都加入了OCP項目。但通過查看OCP項目的成員名單,你會發現Docker在這個名單中只能算一個小角色了。OCP的成立最終結束了這場讓無數人揪心的“戰爭”,Docker公司被迫放棄了自己的獨家控制權。作為回報,Docker的容器格式被OCP采納為新標準的基礎,并且由Docker負責起草OCP草案規范的初稿文檔,當然這個“標準起草者”的角色也不是那么容易擔當的,Docker要提交自己的容器執行引擎的源碼作為OCP項目的啟動資源。
事到如今,我們再來回顧當初CoreOS與谷歌的叛逃事件,從表面上看,谷歌貌似是被誘拐“出柜”的,但局里人都明白,谷歌才是這一系列事件背后的主謀,不僅為當年失敗的lmctfy報了一箭之仇,還重新掌控了容器技術的未來。容器標準之戰大捷之后,谷歌進一步擴大了聯盟并提高了自身影響力。2015年7月,谷歌正式宣布加入OpenStack陣營,其目標是確保 Linux 容器及關聯的容器管理技術_Kubernetes能夠被OpenStack生態圈所容納,并且成為OpenStack平臺上與KVM虛機一樣的一等公民。谷歌加入OpenStack意味著對數據中心控制平面的爭奪已經結束,以容器為代表的應用形態與以虛擬化為代表的系統形態將會完美融合于OpenStack之上,并與軟件定義網絡和軟件定義存儲一起統治下一代數據中心。
谷歌憑借著幾十年大規模容器使用的豐富經驗,步步為營,先是祭出Kubernetes這個神器,然后又掌控了容器技術的制定標準,最后又入駐OpenStack陣營全力將Kubernetes扶上位,谷歌這個IT界的領導者和創新者再次王者歸來。我們都明白,在IT世界里只有那些被大公司掌控和推廣的,同時被業界眾多巨頭都認可和支持的新技術才能生存和壯大下去。Kubernetes就是當今IT界里符合要求且為數不多的熱門技術之一,它的影響力可能長達十年,所以,我們每個IT人都有理由重視這門新技術。
誰能比別人領先一步掌握新技術,誰就在競爭中贏得了先機。惠普中國電信解決方案領域的資深專家團一起分工協作,并行研究,廢寢忘食地合力撰寫,在短短的5個月內完成了這部厚達四百多頁的Kubernetes權威指南。本書遵循從入門到精通的學習路線,全書共分為六大章節,涵蓋了入門、高級案例、架構、原理、開發指南、運維及源碼分析等內容,內容詳實、圖文并茂,幾乎囊括了Kubernetes 1.0的方方面面,無論對于軟件工程師、測試工程師、運維工程師、軟件架構師、技術經理還是資深IT人士來說,本書都極具參考價值。
吳治輝
惠普公司系統架構師
內容簡介:

Kubernetes是由谷歌開源的Docker容器集群管理系統,為容器化的應用提供了資源調度、部署運行、服務發現、擴容、縮容等一整套功能。本書從一個開發者的角度去理解、分析和解決問題,囊括了Kubernetes入門、核心原理、實戰開發、運維、高級案例及源碼分析等方面的內容,圖文并茂、內容豐富、由淺入深、講解全面;并圍繞著生產環境中可能出現的問題,給出了大量的典型案例,比如安全問題、網絡方案的選擇、高可用性方案及Trouble Shooting技巧等,有很好的可借鑒性。 無論對于軟件工程師、測試工程師、運維工程師、軟件架構師、技術經理還是資深IT人士來說,本書都極具參考價值。

目錄:

第1章 Kubernetes入門 1
1.1 Kubernetes是什么 1
1.2 為什么要用Kubernetes 4
1.3 從一個不簡單的Hello World例子說起 5
1.3.1 創建redis-master Pod和服務 7
1.3.2 創建redis-slave Pod和服務 10
1.3.3 創建frontend Pod和服務 12
1.3.4 通過瀏覽器訪問網頁 15
1.4 Kubernetes基本概念和術語 16
1.4.1 Node(節點) 16
1.4.2 Pod 18
1.4.3 Label(標簽) 20
1.4.4 Replication Controller(RC) 24
1.4.5 Service(服務) 26
1.4.6 Volume(存儲卷) 30
1.4.7 Namespace(命名空間) 34
1.4.8 Annotation(注解) 35
1.4.9 小結 36
1.5 Kubernetes總體架構 36
1.6 Kubernetes安裝與配置 38
1.6.1 安裝Kubernetes 38
1.6.2 配置和啟動Kubernetes服務 39
1.6.3 Kubernetes的版本升級 46
1.6.4 內網中的Kubernetes相關配置 46
1.6.5 Kubernetes對Docker鏡像的要求——啟動命令前臺執行 48
第2章 Kubernetes核心原理 49
2.1 Kubernetes API Server 分析 49
2.1.1 如何訪問Kubernetes API 49
2.1.2 通過API Server 訪問Node、Pod和Service 52
2.1.3 集群功能模塊之間的通信 55
2.2 調度控制原理 56
2.2.1 Replication Controller 57
2.2.2 Node Controller 60
2.2.3 ResourceQuota Controller 62
2.2.4 Namespace Controller 64
2.2.5 ServiceAccount Controller與Token Controller 64
2.2.6 Service Controller與Endpoint Controller 65
2.2.7 Kubernetes Scheduler 71
2.3 Kubelet運行機制分析 75
2.3.1 節點管理 75
2.3.2 Pod管理 76
2.3.3 容器健康檢查 77
2.3.4 cAdvisor資源監控 78
2.4 安全機制的原理 80
2.4.1 Authentication認證 80
2.4.2 Authorization授權 83
2.4.3 Admission Control準入控制 84
2.4.4 Secret私密憑據 88
2.4.5 Service Account 92
2.5 網絡原理 95
2.5.1 Kubernetes網絡模型 95
2.5.2 Docker的網絡基礎 97
2.5.3 Docker的網絡實現 109
2.5.4 Kubernetes的網絡實現 117
2.5.5 開源的網絡組件 127
2.5.6 Kubernetes網絡試驗 131
第3章 Kubernetes開發指南 145
3.1 REST簡述 145
3.2 Kubernetes API詳解 147
3.2.1 Kubernetes API概述 147
3.2.2 API版本 152
3.2.3 API詳細說明 152
3.2.4 API響應說明 154
3.3 使用Java程序訪問Kubernetes API 156
3.3.1 Jersey 156
3.3.2 Fabric8 168
3.3.3 使用說明 169
第4章 Kubernetes運維指南 191
4.1 Kubernetes核心服務配置詳解 191
4.1.1 基礎公共配置參數 191
4.1.2 kube-apiserver 192
4.1.3 kube-controller-manager 195
4.1.4 kube-scheduler 196
4.1.5 Kubelet 197
4.1.6 kube-proxy 199
4.2 關鍵對象定義文件詳解 200
4.2.1 Pod定義文件詳解 200
4.2.2 RC定義文件詳解 203
4.2.3 Service定義文件詳解 204
4.3 常用運維技巧集錦 206
4.3.1 Node的隔離和恢復 206
4.3.2 Node的擴容 207
4.3.3 Pod動態擴容和縮放 208
4.3.4 更新資源對象的Label 208
4.3.5 將Pod調度到指定的Node 209
4.3.6 應用的滾動升級 210
4.3.7 Kubernetes集群高可用方案 213
4.4 資源配額管理 217
4.4.1 指定容器配額 217
4.4.2 全局默認配額 218
4.4.3 多租戶配額管理 221
4.5 Kubernetes網絡配置方案詳解 223
4.5.1 直接路由方案 224
4.5.2 使用flannel疊加網絡 226
4.5.3 使用Open vSwitch 228
4.6 Kubernetes集群監控 232
4.6.1 使用kube-ui查看集群運行狀態 232
4.6.2 使用cAdvisor查看容器運行狀態 236
4.7 Trouble Shooting指導 241
4.7.1 對象的Event事件 242
4.7.2 容器日志 243
4.7.3 Kubernetes系統日志 244
4.7.4 常見問題 246
4.7.5 尋求幫助 249
第5章 Kubernetes高級案例進階 250
5.1 Kubernetes DNS服務配置案例 250
5.1.1 skydns配置文件 251
5.1.2 修改每個Node上的Kubelet啟動參數 254
5.1.3 創建skydns Pod和服務 254
5.1.4 通過DNS查找Service 255
5.1.5 DNS服務的工作原理解析 256
5.2 Kubernetes集群性能監控案例 257
5.2.1 配置Kubernetes集群的ServiceAccount和Secret 258
5.2.2 部署Heapster、InfluxDB、Grafana 261
5.2.3 查詢InfluxDB數據庫中的數據 265
5.2.4 Grafana頁面查看和操作 268
5.3 Cassandra集群部署案例 269
5.3.1 自定義SeedProvider 270
5.3.2 通過Service動態查找Pod 271
5.3.3 Cassandra集群新節點的自動添加 274
5.4 集群安全配置案例 275
5.4.1 雙向認證配置 275
5.4.2 簡單認證配置 279
5.5 不同工作組共享Kubernetes集群的案例 280
5.5.1 創建namespace 281
5.5.2 定義Context(運行環境) 281
5.5.3 設置工作組在特定Context環境中工作 282
第6章 Kubernetes源碼導讀 285
6.1 Kubernetes源碼結構和編譯步驟 285
6.2 kube-apiserver進程源碼分析 289
6.2.1 進程啟動過程 289
6.2.2 關鍵代碼分析 291
6.2.3 設計總結 306
6.3 kube-controller-manager進程源碼分析 310
6.3.1 進程啟動過程 310
6.3.2 關鍵代碼分析 313
6.3.3 設計總結 321
6.4 kube-scheduler進程源碼分析 323
6.4.1 進程啟動過程 323
6.4.2 關鍵代碼分析 328
6.4.3 設計總結 335
6.5 Kubelet進程源碼分析 337
6.5.1 進程啟動過程 337
6.5.2 關鍵代碼分析 342
6.5.3 設計總結 365
6.6 kube-proxy進程源碼分析 366
6.6.1 進程啟動過程 367
6.6.2 關鍵代碼分析 368
6.6.3 設計總結 383
6.7 Kubectl進程源碼分析 384
6.7.1 kubectl create命令 385
6.7.2 rolling-upate命令 389
后記 396
序: