-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
10/8 新書到! 10/1 新書到! 9/24 新書到! 9/18 新書到!
購書流程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書號: 47433
詢問書籍請說出此書號!

缺書
NT售價: 595

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

譯者序:

前言:

推薦序

經過作者們多年的實踐經驗積累及近一年的精心準備,本書終于與我們大家見面了。我有幸作為首批讀者,提前見證和學習了在云時代引領業界技術方向的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人都有理由重視這門新技術。
誰能比別人領先一步掌握新技術,誰就在競爭中贏得了先機。惠普中國電信解決方案領域的資深專家團一起分工協作,并行研究,廢寢忘食地合力撰寫,完成了這部近700頁的Kubernetes權威指南。經過兩年的高速發展,Kubernetes先后發布了v1.0∼v1.6這6個大版本,每個版本都帶來了大量的新特性,能夠處理的應用場景也越來越豐富。本書遵循從入門到精通的學習路線,全書共分為六大章節,涵蓋了入門、實踐指南、架構原理、開發指南、高級案例、運維指南和源碼分析等內容,內容詳實、圖文并茂,幾乎囊括了Kubernetes到v1.6版本的方方面面,無論是對于軟件工程師、測試工程師、運維工程師、軟件架構師、技術經理,還是對于資深IT人士來說,本書都極具參考價值。

吳治輝
惠普公司系統架構師
內容簡介:

Kubernetes是由谷歌開源的Docker容器集群管理系統,為容器化的應用提供了資源調度、部署運行、服務發現、擴容及縮容等一整套功能。《Kubernetes權威指南:從Docker到Kubernetes實踐全接觸(紀念版)》從架構師、開發人員和運維人員的角度,闡述了Kubernetes的基本概念、實踐指南、核心原理、開發指導、運維指南及源碼分析等內容,圖文并茂、內容豐富、由淺入深、講解全面;圍繞著生產環境中可能出現的問題,給出了大量的典型案例,比如安全配置、網絡方案、共享存儲方案、高可用性方案及Trouble Shooting技巧等,有很強的實戰指導意義。本書隨著Kubernetes版本更新不斷完善,目前涵蓋了Kubernetes從v1.0到v1.6版本的全部特性,盡力為Kubernetes用戶提供全方位的指南。無論是對于軟件工程師、測試工程師、運維工程師、軟件架構師、技術經理,還是對于資深IT人士來說,本書都極具參考價值。

目錄:

第1章 Kubernetes入門 1
1.1 Kubernetes是什么 1
1.2 為什么要用Kubernetes 4
1.3 從一個簡單的例子開始 5
1.3.1 環境準備 6
1.3.2 啟動MySQL服務 6
1.3.3 啟動Tomcat應用 9
1.3.4 通過瀏覽器訪問網頁 10
1.4 Kubernetes基本概念和術語 12
1.4.1 Master 12
1.4.2 Node 12
1.4.3 Pod 15
1.4.4 Label(標簽) 18
1.4.5 Replication Controller 22
1.4.6 Deployment 26
1.4.7 Horizontal Pod Autoscaler 28
1.4.8 StatefulSet 29
1.4.9 Service(服務) 30
1.4.10 Volume(存儲卷) 37
1.4.11 Persistent Volume 41
1.4.12 Namespace(命名空間) 42
1.4.13 Annotation(注解) 43
1.4.14 小結 44
第2章 Kubernetes實踐指南 45
2.1 Kubernetes安裝與配置 45
2.1.1 系統要求 45
2.1.2 使用kubeadm工具快速安裝Kubernetes集群 46
2.1.3 以二進制文件方式安裝Kubernetes集群 51
2.1.4 Kubernetes集群的安全設置 59
2.1.5 Kubernetes集群的網絡配置 64
2.1.6 內網中的Kubernetes相關配置 64
2.1.7 Kubernetes的版本升級 65
2.1.8 Kubernetes核心服務配置詳解 66
2.2 kubectl命令行工具用法詳解 86
2.2.1 kubectl用法概述 86
2.2.2 kubectl子命令詳解 88
2.2.3 kubectl參數列表 90
2.2.4 kubectl輸出格式 90
2.2.5 kubectl操作示例 92
2.3 深入掌握Pod 93
2.3.1 Pod定義詳解 93
2.3.2 Pod的基本用法 98
2.3.3 靜態Pod 103
2.3.4 Pod容器共享Volume 104
2.3.5 Pod的配置管理 106
2.3.6 在容器內獲取Pod信息(Downward API) 119
2.3.7 Pod生命周期和重啟策略 124
2.3.8 Pod健康檢查 125
2.3.9 玩轉Pod調度 127
2.3.10 Init Container(初始化容器) 149
2.3.11 Pod的升級和回滾 152
2.3.12 Pod的擴容和縮容 166
2.3.13 使用StatefulSet搭建MongoDB集群 171
2.4 深入掌握Service 180
2.4.1 Service定義詳解 181
2.4.2 Service基本用法 182
2.4.3 Headless Service 187
2.4.4 集群外部訪問Pod或Service 192
2.4.5 DNS服務搭建指南 196
2.4.6 自定義DNS和上游DNS服務器 204
2.4.7 Ingress:HTTP 7層路由機制 208
第3章 Kubernetes核心原理 226
3.1 Kubernetes API Server 原理分析 226
3.1.1 Kubernetes API Server概述 226
3.1.2 獨特的Kubernetes Proxy API接口 229
3.1.3 集群功能模塊之間的通信 230
3.2 Controller Manager 原理分析 231
3.2.1 Replication Controller 232
3.2.2 Node Controller 234
3.2.3 ResourceQuota Controller 235
3.2.4 Namespace Controller 237
3.2.5 Service Controller與Endpoint Controller 237
3.3 Scheduler原理分析 238
3.4 kubelet運行機制分析 242
3.4.1 節點管理 242
3.4.2 Pod管理 243
3.4.3 容器健康檢查 244
3.4.4 cAdvisor資源監控 245
3.5 kube-proxy 運行機制分析 247
3.6 深入分析集群安全機制 251
3.6.1 API Server認證管理(Authentication) 251
3.6.2 API Server授權管理(Authorization) 253
3.6.3 Admission Control(準入控制) 272
3.6.4 Service Account 274
3.6.5 Secret私密憑據 279
3.7 網絡原理 282
3.7.1 Kubernetes網絡模型 282
3.7.2 Docker的網絡基礎 284
3.7.3 Docker的網絡實現 296
3.7.4 Kubernetes的網絡實現 304
3.7.5 Pod和Service網絡實戰 308
3.7.6 CNI網絡模型 321
3.7.7 Kubernetes網絡策略 331
3.7.8 開源的網絡組件 333

3.8 共享存儲原理 363
3.8.1 共享存儲機制概述 363
3.8.2 PV詳解 364
3.8.3 PVC詳解 368
3.8.4 PV和PVC的生命周期 370
3.8.5 StorageClass詳解 373
3.8.6 動態存儲管理實戰:GlusterFS 376
第4章 Kubernetes開發指南 388
4.1 REST簡述 388
4.2 Kubernetes API詳解 390
4.2.1 Kubernetes API概述 390
4.2.2 API版本 395
4.2.3 API Groups(API組) 395
4.2.4 API方法說明 397
4.2.5 API響應說明 398
4.3 使用Java程序訪問Kubernetes API 400
4.3.1 Jersey 401
4.3.2 Fabric8 412
4.3.3 使用說明 413
第5章 Kubernetes運維指南 434
5.1 Kubernetes集群管理指南 434
5.1.1 Node的管理 434
5.1.2 更新資源對象的Label 436
5.1.3 Namespace:集群環境共享與隔離 437
5.1.4 Kubernetes資源管理 441
5.1.5 資源緊缺時的Pod驅逐機制 475
5.1.6 Pod Disruption Budget(主動驅逐保護) 483
5.1.7 Kubernetes集群的高可用部署方案 485
5.1.8 Kubernetes集群監控 496
5.1.9 集群統一日志管理 513
5.1.10 Kubernetes審計日志(Audit Log) 522
5.1.11 使用Web UI(Dashboard)管理集群 523
5.1.12 Helm:Kubernetes應用包管理工具 527
5.2 Trouble Shooting指導 538
5.2.1 查看系統Event事件 538
5.2.2 查看容器日志 540
5.2.3 查看Kubernetes服務日志 541
5.2.4 常見問題 542
5.2.5 尋求幫助 546
5.3 Kubernetes開發中的新功能 546
5.3.1 Pod Preset(運行時參數注入策略) 546
5.3.2 Cluster Federation(集群聯邦) 553
5.3.3 容器運行時接口(Container Runtime Interface-CRI) 557
5.3.4 對GPU的支持 561
5.3.5 Kubernetes的演進路線(Roadmap)和開發模式 565
第6章 Kubernetes源碼導讀 568
6.1 Kubernetes源碼結構和編譯步驟 568
6.2 kube-apiserver進程源碼分析 572
6.2.1 進程啟動過程 572
6.2.2 關鍵代碼分析 574
6.2.3 設計總結 589
6.3 kube-controller-manager進程源碼分析 592
6.3.1 進程啟動過程 592
6.3.2 關鍵代碼分析 595
6.3.3 設計總結 603
6.4 kube-scheduler進程源碼分析 605
6.4.1 進程啟動過程 605
6.4.2 關鍵代碼分析 610
6.4.3 設計總結 617
6.5 kubelet進程源碼分析 619
6.5.1 進程啟動過程 619
6.5.2 關鍵代碼分析 624
6.5.3 設計總結 647
6.6 kube-proxy進程源碼分析 648
6.6.1 進程啟動過程 648
6.6.2 關鍵代碼分析 650
6.6.3 設計總結 665
6.7 kubectl進程源碼分析 666
6.7.1 kubectl create命令 667
6.7.2 rolling-update命令 671
序: