基于Kubernetes的容器云平臺(tái)實(shí)戰(zhàn)
定 價(jià):69 元
叢書(shū)名:華章IT
- 作者:陸平 左奇 付光 張晗
- 出版時(shí)間:2018/9/1
- ISBN:9787111608141
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP393.027
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
從PaaS平臺(tái)建設(shè)和運(yùn)維的角度去理解、分析和解決問(wèn)題,囊括了Docker入門(mén)、Kubernetes技術(shù)架構(gòu)及核心原理、網(wǎng)絡(luò)及存儲(chǔ)方案、行業(yè)實(shí)踐指南、PaaS生態(tài)鏈以及發(fā)展趨勢(shì)等方面的內(nèi)容,圖文并茂、內(nèi)容豐富、由淺入深、講解全面,具有很強(qiáng)的可借鑒性。
隨著基礎(chǔ)設(shè)施即服務(wù)(IaaS)的技術(shù)普及和廣泛使用,人們逐漸認(rèn)識(shí)到IaaS技術(shù)所帶來(lái)的顯著優(yōu)勢(shì),如資源按需靈活定制、低成本、彈性伸縮、統(tǒng)一管控等,但這僅解決了應(yīng)用系統(tǒng)對(duì)IT資源需求的按需交付問(wèn)題,應(yīng)用系統(tǒng)本身的DevOps、CI/CD、編排、自動(dòng)化部署、配置管理、服務(wù)發(fā)現(xiàn)與路由、彈性伸縮、自動(dòng)化監(jiān)控與日志采集等工作只能由應(yīng)用自身完成或依賴于第三方工具,這將大大增加應(yīng)用系統(tǒng)研發(fā)、運(yùn)維和集成難度。
另一方面,隨著企業(yè)數(shù)字化變革的深入發(fā)展,企業(yè)對(duì)微服務(wù)、分布式架構(gòu)、Spring Cloud、大數(shù)據(jù)、人工智能、Serverless等新技術(shù)的使用也日益廣泛,迫切需要一個(gè)滿足上述需求的支撐平臺(tái)。
PaaS平臺(tái)的出現(xiàn)正是上述問(wèn)題的最佳解決方案,也因此成為全球各大IT巨頭和初創(chuàng)公司的研發(fā)重點(diǎn),如IBM、VMware等,各種PaaS平臺(tái)粉墨登場(chǎng),競(jìng)爭(zhēng)異常激烈,如Ansible、Puppet、Cloudify、CloudFoundry、Mesos、Swarm、Kubernetes等,最終一個(gè)以“Docker+Kubernetes”為核心的容器云平臺(tái)讓人們看到了希望,它可以滿足大多數(shù)應(yīng)用對(duì)PaaS平臺(tái)的期望。
作者在容器云平臺(tái)領(lǐng)域有多年的技術(shù)積累。本書(shū)結(jié)合容器云最新技術(shù)趨勢(shì)和作者的長(zhǎng)期實(shí)踐,對(duì)容器云平臺(tái)提出系統(tǒng)的見(jiàn)解,并對(duì)容器云平臺(tái)實(shí)踐提供了思路和建議。本書(shū)在組織結(jié)構(gòu)上分成三大部分:基礎(chǔ)篇、中級(jí)篇和高級(jí)篇。
基礎(chǔ)篇(第1~5章)重點(diǎn)幫助初級(jí)人群快速掌握Docker基礎(chǔ)知識(shí),囊括了Docker容器的技術(shù)架構(gòu)、Docker引擎原理、鏡像制作與優(yōu)化、鏡像倉(cāng)庫(kù)管理等容器基礎(chǔ)知識(shí),文字淺顯易懂。
中級(jí)篇(第6~16章)是針對(duì)初中級(jí)讀者,使其具備全景PaaS技術(shù)棧理論和設(shè)計(jì)技能,包括Kubernetes架構(gòu)及核心理念和技術(shù)原理、服務(wù)發(fā)現(xiàn)、容器網(wǎng)絡(luò)及存儲(chǔ)解決方案、運(yùn)維監(jiān)控等。同時(shí)還提供很多高級(jí)案例,如跨區(qū)域的服務(wù)部署、TensorFlow容器化部署、金融PaaS云平臺(tái)等,有助于加深讀者對(duì)Kubernetes各種技術(shù)的理解,并能夠融會(huì)貫通。
高級(jí)篇(第17~21章)是針對(duì)中級(jí)讀者的進(jìn)階篇,通過(guò)本篇可了解業(yè)界最新的微服務(wù)基礎(chǔ)知識(shí)和各種微服務(wù)框架(或解決方案),如Spring Cloud、Serverless、Service Mesh等,還將這幾種微服務(wù)框架與容器云平臺(tái)進(jìn)行融合,以提供功能更完整、更健壯的容器云解決方案。
序
前言
第1章 Docker簡(jiǎn)介 1
1.1 什么是Docker 1
1.2 為什么要用Docker 3
1.3 Docker基本概念 4
1.3.1 鏡像 4
1.3.2 容器 6
1.3.3 鏡像倉(cāng)庫(kù) 8
1.4 Docker架構(gòu)及原理 8
1.4.1 Docker架構(gòu) 8
1.4.2 Docker原理 11
1.4.3 容器網(wǎng)絡(luò) 15
1.4.4 容器存儲(chǔ) 16
1.5 Docker安裝 16
1.5.1 手動(dòng)安裝模式 17
1.5.2 Ubuntu中自動(dòng)化安裝Docker 18
1.5.3 CentOS中自動(dòng)化安裝Docker 19
第2章 容器引擎 21
2.1 容器引擎實(shí)現(xiàn)原理 22
2.2 容器生命周期管理 29
2.3 容器狀態(tài)管理 33
2.4 訪問(wèn)運(yùn)行狀態(tài)容器 35
2.5 訪問(wèn)容器內(nèi)容 36
第3章 鏡像管理 37
3.1 Dockerfile及鏡像制作 37
3.1.1 Dockerfile的作用 37
3.1.2 Dockerfile文件構(gòu)成 37
3.1.3 常用命令集 38
3.1.4 構(gòu)建鏡像 38
3.2 鏡像基本操作 38
3.2.1 從鏡像倉(cāng)庫(kù)下載鏡像 38
3.2.2 將本地鏡像上傳到鏡像倉(cāng)庫(kù) 39
3.2.3 查看本地鏡像 39
3.2.4 導(dǎo)出和導(dǎo)入本地鏡像 40
3.2.5 構(gòu)建鏡像 41
3.2.6 修改本地鏡像標(biāo)識(shí) 42
3.2.7 刪除本地鏡像 42
3.3 Dockerfile優(yōu)化 42
3.3.1 Dockerfile檢查項(xiàng) 42
3.3.2 Dockerfile優(yōu)化實(shí)例 43
3.3.3 檢查及優(yōu)化工具 44
3.4 操作系統(tǒng)基礎(chǔ)鏡像制作 44
3.4.1 操作系統(tǒng)版本選擇 45
3.4.2 操作系統(tǒng)參數(shù)調(diào)整 45
3.4.3 確定基礎(chǔ)rpm包范圍 45
3.4.4 確定常用命令范圍 46
3.4.5 操作系統(tǒng)鏡像制作過(guò)程 48
3.4.6 系統(tǒng)資源限制配置說(shuō)明 49
3.5 容器鏡像安全加固 49
3.5.1 容器安全加固規(guī)范 49
3.5.2 安全檢查工具 51
第4章 鏡像倉(cāng)庫(kù)管理 52
4.1 Docker Registry 52
4.1.1 Docker Hub 52
4.1.2 第三方公共倉(cāng)庫(kù) 53
4.1.3 建立私有鏡像倉(cāng)庫(kù) 53
4.2 Harbor 54
4.2.1 Harbor架構(gòu) 55
4.2.2 Harbor的鏡像同步機(jī)制 56
4.2.3 Harbor用戶認(rèn)證 56
4.2.4 Harbor容器鏡像安全掃描 57
4.2.5 Harbor部署實(shí)戰(zhàn) 57
第5章 Docker相關(guān)部署實(shí)踐 59
5.1 MySQL Docker部署實(shí)踐 59
5.1.1 MySQL簡(jiǎn)介 59
5.1.2 MySQL為什么要容器化部署 60
5.1.3 MySQL容器化操作實(shí)踐 60
5.2 Docker支持GPU實(shí)踐 62
5.2.1 GPU簡(jiǎn)介 62
5.2.2 CPU與GPU的對(duì)比 63
5.2.3 通過(guò)nvidia-docker使用GPU 63
第6章 Kubernetes簡(jiǎn)介 65
6.1 PaaS簡(jiǎn)介 65
6.1.1 傳統(tǒng)PaaS系統(tǒng) 65
6.1.2 基于Docker的新型PaaS平臺(tái) 67
6.2 為什么需要Kubernetes 69
6.3 Kubernetes的由來(lái) 69
6.3.1 Kubernetes的特點(diǎn) 69
6.3.2 Kubernetes的歷史 70
6.4 Kubernetes核心概念 71
第7章 Kubernetes架構(gòu)和部署 73
7.1 Kubernetes架構(gòu)及組件 73
7.1.1 Master節(jié)點(diǎn) 73
7.1.2 Node節(jié)點(diǎn) 75
7.1.3 調(diào)度控制原理 76
7.1.4 集群功能模塊間的通信 76
7.1.5 Kubernetes高可用方案 77
7.2 Kubernetes部署方案總結(jié) 77
第8章 Pod相關(guān)核心技術(shù) 81
8.1 Pod 81
8.1.1 Pod定義文件詳解 81
8.1.2 基本操作 83
8.1.3 Pod與容器 85
8.1.4 鏡像 86
8.1.5 其他設(shè)置 86
8.1.6 Pod調(diào)度 89
8.1.7 Pod生命周期 90
8.2 Label 92
8.3 Replication Controller和Replica Set 93
8.3.1 RC定義文件詳解 93
8.3.2 RC與Pod的關(guān)聯(lián)——Label 95
8.3.3 彈性伸縮 97
8.3.4 滾動(dòng)升級(jí) 98
8.3.5 新一代副本控制器Replica Set 100
8.4 Horizontal Pod Autoscaler 101
8.5 Deployment 102
8.6 Job 105
8.7 StatefulSet 106
8.7.1 使用StatefulSet 106
8.7.2 擴(kuò)容/縮容StatefulSet 108
8.8 ConfigMap 110
8.9 健康檢查 112
8.9.1 流程健康檢查 112
8.9.2 應(yīng)用健康檢查 112
第9章 Kubernetes Service 114
9.1 容器及Pod間通信 115
9.2 kube-proxy 117
9.3 DNS服務(wù)發(fā)現(xiàn)機(jī)制 118
9.4 Headless服務(wù) 119
9.5 Kubernetes服務(wù) 120
9.5.1 ClusterIP 122
9.5.2 NodePort 123
9.5.3 LoadBalancer 125
9.5.4 Ingress 125
9.6 網(wǎng)絡(luò)策略 127
9.7 完整的Kubernetes服務(wù)發(fā)布實(shí)踐 128
9.7.1 各Kubernetes集群
LoadBalancer服務(wù)發(fā)布 130
9.7.2 Ingress服務(wù)發(fā)布 132
9.7.3 服務(wù)發(fā)現(xiàn) 133
第10章 Kubernetes網(wǎng)絡(luò) 134
10.1 單主機(jī)Docker網(wǎng)絡(luò)通信 134
10.1.1 Host模式 135
10.1.2 Container模式 135
10.1.3 None模式 136
10.1.4 Bridge模式 136
10.1.5 基礎(chǔ)網(wǎng)絡(luò)模型的優(yōu)缺點(diǎn)分析 137
10.2 跨主機(jī)Docker網(wǎng)絡(luò)通信 137
10.2.1 Flannel網(wǎng)絡(luò)方案 139
10.2.2 Calico網(wǎng)絡(luò)方案 140
10.2.3 利用Kuryr整合OpenStack與Kubernetes網(wǎng)絡(luò) 143
10.2.4 網(wǎng)絡(luò)方案對(duì)比分析 144
第11章 Kubernetes存儲(chǔ) 145
11.1 存儲(chǔ)使用場(chǎng)景 145
11.2 文件存儲(chǔ)的幾種形式 146
11.3 Flex Volume存儲(chǔ)管理方案 148
11.3.1 為什么需要靈活存儲(chǔ)組件 148
11.3.2 如何實(shí)現(xiàn)靈活存儲(chǔ)組件 148
11.4 標(biāo)準(zhǔn)化容器存儲(chǔ)接口CSI 149
第12章 安全及多租戶配額管理 150
12.1 API服務(wù)器認(rèn)證 151