TOP
0
0
魅麗。花火原創小說66折起
Kubernetes權威指南:從Docker到Kubernetes實踐全接觸(第4版)(簡體書)
滿額折

Kubernetes權威指南:從Docker到Kubernetes實踐全接觸(第4版)(簡體書)

人民幣定價:168 元
定  價:NT$ 1008 元
優惠價:87877
領券後再享88折
無庫存,下單後進貨(採購期約45個工作天)
可得紅利積點:26 點
相關商品
商品簡介
作者簡介
目次

商品簡介

Kubernetes是由穀歌開源的Docker容器集群管理系統,為容器化的應用提供了資源調度、部署運行、服務發現、擴容及縮容等一整套功能。本書從架構師、開發人員和運維人員的角度,闡述了Kubernetes的基本概念、實踐指南、核心原理、開發指導、運維指南、新特性演進等內容,圖文並茂、內容豐富、由淺入深、講解全面;並圍繞在生產環境中可能出現的問題,給出了大量的典型案例,比如安全配置方案、網絡方案、共享存儲方案、高可用方案及Trouble Shooting技巧等,有很強的實戰指導意義。本書內容隨著Kubernetes的版本更新不斷完善,目前涵蓋了Kubernetes從1.0到1.14版本的主要特性,努力為Kubernetes用戶提供全方位的Kubernetes技術指南。本書源碼已上傳至GitHub的kubeguide/K8sDefinitiveGuide-V4-Sourcecode目錄,可自行下載本書源碼進行練習。無論是對於軟件工程師、測試工程師、運維工程師、軟件架構師、技術經理,還是對於資深IT人士,本書都極具參考價值。

作者簡介

龔正 /
HPE高級顧問,擁有近20年IT從業經歷,在雲計算、大數據、大型企業級應用等領域擁有豐富的諮詢規劃、架構設計和實施經驗,負責過多個大型雲平臺的規劃和建設,是電信、金融、互聯網等領域的資深專家,也是《Kubernetes權威指南:企業級容器雲實戰》等書作者。

吳治輝 /
HPE資深架構師,擁有近20年軟件研發經驗,專注於電信軟件和雲計算方面的軟件研發,擁有豐富的大型項目架構設計經驗,是業界少有的具備很強Coding能力的資深架構師,也是《ZeroC Ice權威指南》《架構解密:從分布式到微服務》《Kubernetes權威指南:企業級容器雲實戰》《區塊鏈輕鬆上手》等書作者。

崔秀龍 /
Istio、Kubernetes項目成員;Istio.io主要貢獻者之一;《Kubernetes權威指南:企業級容器雲實戰》《深入淺出Istio:Service Mesh快速入門與實踐》等書作者;自動化、馬拉松愛好者。

閆健勇 /
HPE高級項目經理、總架構師,擁有近20年電信行業系統建設經驗,主導了多項電信大型系統的架構設計和管理,對於雲計算和大數據在電信行業中的應用擁有豐富的經驗,也是《Kubernetes權威指南:企業級容器雲實戰》等書作者。

自 序


本書第1版出版於2016年,幾年過去,Kubernetes已從一個新生事物發展為一個影響全球IT技術的基礎設施平臺,也推動了雲原生應用、微服務架構、Service Mesh等熱門技術的普及和落地。現在,Kubernetes已經成為明星項目,其開源項目擁有超過兩萬名貢獻者,成為開源歷史上發展速度超快的項目之一。
在這幾年裡:
Kubernetes背後的重要開源公司RedHat被IBM大手筆收購,使RedHat基於Kubernetes架構的先進PaaS平臺――OpenShift成為IBM在雲計算基礎設施中的重要籌碼;
Kubernetes的兩位核心創始人Joe Beda 和Craig McLuckie所創立的提供Kubernetes諮詢和技術支持的初創公司Heptio也被虛擬化領域的巨頭VMware收購;
Oracle收購了丹麥的一家初創公司Wercker,然後開發了Click2Kube,這是面向Oracle裸機雲(Oracle Bare Metal Cloud)的一鍵式Kubernetes集群安裝工具;
世界500強中的一些大型企業也決定以Kubernetes為基礎重構內部IT平臺架構,大數據系統的一些用戶也在努力將其生產系統從龐大的大數據專有技術棧中剝離出來靠攏Kubernetes。
Kubernetes是將“一切以服務(Service)為中心,一切圍繞服務運轉”作為指導思想的創新型產品,這是它的一個亮點。它的功能和架構設計自始至終地遵循了這一指導思想,構建在Kubernetes上的系統不僅可以獨立運行在物理機、虛擬機集群或者企業私有雲上,也可以被託管在公有雲上。
Kubernetes的另一個亮點是自動化。在Kubernetes的解決方案中,一個服務可以自我擴展、自我診斷,並且容易升級,在收到服務擴容的請求後,Kubernetes會觸發調度流程,最終在選定的目標節點上啟動相應數量的服務實例副本,這些服務實例副本在啟動成功後會自動加入負載均衡器中並生效,整個過程無須額外的人工操作。另外,Kubernetes會定時巡查每個服務的所有實例的可用性,確保服務實例的數量始終保持為預期的數量,當它發現某個實例不可用時,會自動重啟該實例或者在其他節點上重新調度、運行一個新實例,這樣,一個複雜的過程無須人工干預即可全部自動完成。試想一下,如果一個包括幾十個節點且運行著幾萬個容器的複雜系統,其負載均衡、故障檢測和故障修複等都需要人工介入進行處理,其工作量將多大。
通常,我們會把Kubernetes看作Docker的上層架構,就好像Java與J2EE的關係一樣:J2EE是以Java為基礎的企業級軟件架構,Kubernetes則以Docker為基礎打造了一個雲計算時代的全新分布式系統架構。但Kubernetes與Docker之間還存在著更為複雜的關係,從表面上看,似乎Kubernetes離不開Docker,但實際上在Kubernetes的架構裡,Docker只是其目前支持的兩種底層容器技術之一,另一種容器技術則是Rocket,Rocket為CoreOS推出的競爭產品。
Kubernetes之所以同時支持Docker和Rocket這兩種互相競爭的容器技術,是有深刻的歷史原因的。快速發展的Docker打敗了穀歌名噪一時的開源容器技術lmctfy,並迅速風靡世界。但是,作為一個已經對全球IT公司產生重要影響的技術,Docker容器標準的制定不可能被任何一個公司主導。於是,CoreOS推出了與Docker抗衡的開源容器項目Rocket,動員一些知名IT公司一起主導容器技術的標準化,並與穀歌共同發起基於CoreOS+ Rocket+Kubernetes的新項目 Tectonic,使容器技術分裂態勢加劇。最後,Linux基金會於2015年6月宣佈成立開放容器技術項目(Open Container Project),穀歌、CoreOS及Docker都加入了該項目。OCP項目成立後,Docker公司放棄了自己的獨家控制權,Docker容器格式也被OCP採納為新標準的基礎,Docker負責起草OCP草案規範的初稿文檔,並提交自己的容器執行引擎的源碼作為OCP項目的啟動資源。
2015年7月,穀歌正式宣佈加入OpenStack陣營,其目標是確保Linux容器及其關聯的容器管理技術Kubernetes能夠被OpenStack生態圈所接納,這也意味著對數據中心控制平面的爭奪已經結束,以容器為代表的應用形態與以虛擬化為代表的系統形態將會完美融合於OpenStack之上,並與軟件定義網絡和軟件定義存儲一起主導下一代數據中心。
穀歌憑藉著幾十年大規模容器使用的豐富經驗,步步為營,先是祭出Kubernetes這個神器,然後掌控了容器技術的制定標準,最後入駐OpenStack陣營全力支持Kubernetes的發展。可以預測,Kubernetes的影響力可能超過十年,所以,我們每個IT人都有理由重視這門新技術。
誰能比別人領先一步掌握新技術,誰就能在競爭中贏得先機。慧與中國通信和媒體解決方案領域的資深專家團一起分工協作、並行研究,並廢寢忘食地合力撰寫,才促成了這部巨著的出版。經過這些年的高速發展,Kubernetes先後發佈了十幾個大版本,每個版本都帶來了大量的新特性,能夠處理的應用場景也越來越豐富。本書遵循從入門到精通的學習路線,涵蓋了入門、安裝指南、實踐指南、核心原理、開發指南、運維指南、新特性演進等內容,內容翔實、圖文並茂,幾乎囊括了Kubernetes當前主流版本的方方面面,無論是對於軟件工程師、測試工程師、運維工程師、軟件架構師、技術經理,還是對於資深IT人士,本書都極具參考價值。

吳治輝
HPE資深架構師





推 薦 序

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

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

目次

第1章 Kubernetes入門 1
1.1 Kubernetes是什麼 2
1.2 為什麼要用Kubernetes 5
1.3 從一個簡單的例子開始 6
1.3.1 環境準備 7
1.3.2 啟動MySQL服務 7
1.3.3 啟動Tomcat應用 10
1.3.4 通過瀏覽器訪問網頁 12
1.4 Kubernetes的基本概念和術語 13
1.4.1 Master 16
1.4.2 Node 16
1.4.3 Pod 19
1.4.4 Label 24
1.4.5 Replication Controller 28
1.4.6 Deployment 31
1.4.7 Horizontal Pod Autoscaler 34
1.4.8 StatefulSet 36
1.4.9 Service 37
1.4.10 Job 45
1.4.11 Volume 45
1.4.12 Persistent Volume 49
1.4.13 Namespace 51
1.4.14 Annotation 52
1.4.15 ConfigMap 53
1.4.16 小結 54
第2章 Kubernetes安裝配置指南 55
2.1 系統要求 56
2.2 使用kubeadm工具快速安裝Kubernetes集群 57
2.2.1 安裝kubeadm和相關工具 57
2.2.2 kubeadm config 58
2.2.3 下載Kubernetes的相關鏡像 59
2.2.4 運行kubeadm init命令安裝Master 59
2.2.5 安裝Node,加入集群 61
2.2.6 安裝網絡插件 62
2.2.7 驗證Kubernetes集群是否安裝完成 63
2.3 以二進制文件方式安裝Kubernetes集群 64
2.3.1 Master上的etcd、kube-apiserver、kube-controller-manager、kube-scheduler服務 66
2.3.2 Node上的kubelet、kube-proxy服務 71
2.4 Kubernetes集群的安全設置 73
2.4.1 基於CA簽名的雙向數字證書認證方式 73
2.4.2 基於HTTP Base或Token的簡單認證方式 78
2.5 Kubernetes集群的網絡配置 80
2.6 內網中的Kubernetes相關配置 80
2.6.1 Docker Private Registry(私有Docker鏡像庫) 80
2.6.2 kubelet配置 81
2.7 Kubernetes的版本升級 81
2.7.1 二進制升級 81
2.7.2 使用kubeadm進行集群升級 82
2.8 Kubernetes核心服務配置詳解 84
2.8.1 公共配置參數 84
2.8.2 kube-apiserver啟動參數 85
2.8.3 kube-controller-manager啟動參數 97
2.8.4 kube-scheduler啟動參數 107
2.8.5 kubelet啟動參數 113
2.8.6 kube-proxy啟動參數 128
2.9 CRI(容器運行時接口)詳解 132
2.9.1 CRI概述 132
2.9.2 CRI的主要組件 133
2.9.3 Pod和容器的生命週期管理 133
2.9.4 面向容器級別的設計思路 135
2.9.5 嘗試使用新的Docker-CRI來創建容器 136
2.9.6 CRI的進展 137
2.10 kubectl命令行工具用法詳解 137
2.10.1 kubectl用法概述 137
2.10.2 kubectl子命令詳解 139
2.10.3 kubectl參數列表 142
2.10.4 kubectl輸出格式 143
2.10.5 kubectl操作示例 145
第3章 深入掌握Pod 149
3.1 Pod定義詳解 150
3.2 Pod的基本用法 156
3.3 靜態Pod 161
3.4 Pod容器共享Volume 162
3.5 Pod的配置管理 165
3.5.1 ConfigMap概述 165
3.5.2 創建ConfigMap資源對象 165
3.5.3 在Pod中使用ConfigMap 173
3.5.4 使用ConfigMap的限制條件 179
3.6 在容器內獲取Pod信息(Downward API) 180
3.6.1 環境變量方式:將Pod信息注入為環境變量 180
3.6.2 環境變量方式:將容器資源信息注入為環境變量 182
3.6.3 Volume掛載方式 184
3.7 Pod生命週期和重啟策略 186
3.8 Pod健康檢查和服務可用性檢查 187
3.9 玩轉Pod調度 190
3.9.1 Deployment或RC:全自動調度 193
3.9.2 NodeSelector:定向調度 194
3.9.3 NodeAffinity:Node親和性調度 197
3.9.4 PodAffinity:Pod親和與互斥調度策略 198
3.9.5 Taints和Tolerations(污點和容忍) 202
3.9.6 Pod Priority Preemption:Pod優先級調度 206
3.9.7 DaemonSet:在每個Node上都調度一個Pod 209
3.9.8 Job:批處理調度 211
3.9.9 Cronjob:定時任務 215
3.9.10 自定義調度器 219
3.10 Init Container(初始化容器) 220
3.11 Pod的升級和回滾 224
3.11.1 Deployment的升級 225
3.11.2 Deployment的回滾 231
3.11.3 暫停和恢復Deployment的部署操作,以完成複雜的修改 234
3.11.4 使用kubectl rolling-update命令完成RC的滾動升級 236
3.11.5 其他管理對象的更新策略 239
3.12 Pod的擴縮容 240
3.12.1 手動擴縮容機制 240
3.12.2 自動擴縮容機制 241
3.13 使用StatefulSet搭建MongoDB集群 264
3.13.1 前提條件 264
3.13.2 創建StatefulSet 265
3.13.3 查看MongoDB集群的狀態 269
3.13.4 StatefulSet的常見應用場景 271
第4章 深入掌握Service 276
4.1 Service定義詳解 277
4.2 Service的基本用法 279
4.2.1 多端口Service 282
4.2.2 外部服務Service 283
4.3 Headless Service 284
4.3.1 自定義SeedProvider 285
4.3.2 通過Service動態查找Pod 286
4.3.3 Cassandra集群中新節點的自動添加 289
4.4 從集群外部訪問Pod或Service 291
4.4.1 將容器應用的端口號映射到物理機 291
4.4.2 將Service的端口號映射到物理機 292
4.5 DNS服務搭建和配置指南 294
4.5.1 在創建DNS服務之前修改每個Node上kubelet的啟動參數 296
4.5.2 創建CoreDNS應用 297
4.5.3 服務名的DNS解析 301
4.5.4 CoreDNS的配置說明 302
4.5.5 Pod級別的DNS配置說明 304
4.6 Ingress:HTTP 7層路由機制 306
4.6.1 創建Ingress Controller和默認的backend服務 307
4.6.2 定義Ingress策略 311
4.6.3 客戶端訪問http://mywebsite.com/demo 313
4.6.4 Ingress的策略配置技巧 316
4.6.5 Ingress的TLS安全設置 320
第5章 核心組件運行機制 326
5.1 Kubernetes API Server原理解析 327
5.1.1 Kubernetes API Server概述 327
5.1.2 API Server架構解析 330
5.1.3 獨特的Kubernetes Proxy API接口 334
5.1.4 集群功能模塊之間的通信 336
5.2 Controller Manager原理解析 337
5.2.1 Replication Controller 338
5.2.2 Node Controller 339
5.2.3 ResourceQuota Controller 341
5.2.4 Namespace Controller 343
5.2.5 Service Controller與Endpoints Controller 343
5.3 Scheduler原理解析 344
5.4 kubelet運行機制解析 348
5.4.1 節點管理 349
5.4.2 Pod管理 349
5.4.3 容器健康檢查 351
5.4.4 cAdvisor資源監控 352
5.5 kube-proxy運行機制解析 354
第6章 深入分析集群安全機制 358
6.1 API Server認證管理 359
6.2 API Server授權管理 361
6.2.1 ABAC授權模式詳解 362

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 877
無庫存,下單後進貨
(採購期約45個工作天)

暢銷榜

客服中心

收藏

會員專區