基于Kubernetes的容器云平臺實戰(zhàn)
定 價:69 元
叢書名:華章IT
- 作者:陸平 左奇 付光 張晗
- 出版時間:2018/9/1
- ISBN:9787111608141
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP393.027
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
從PaaS平臺建設(shè)和運維的角度去理解、分析和解決問題,囊括了Docker入門、Kubernetes技術(shù)架構(gòu)及核心原理、網(wǎng)絡(luò)及存儲方案、行業(yè)實踐指南、PaaS生態(tài)鏈以及發(fā)展趨勢等方面的內(nèi)容,圖文并茂、內(nèi)容豐富、由淺入深、講解全面,具有很強的可借鑒性。
隨著基礎(chǔ)設(shè)施即服務(wù)(IaaS)的技術(shù)普及和廣泛使用,人們逐漸認識到IaaS技術(shù)所帶來的顯著優(yōu)勢,如資源按需靈活定制、低成本、彈性伸縮、統(tǒng)一管控等,但這僅解決了應(yīng)用系統(tǒng)對IT資源需求的按需交付問題,應(yīng)用系統(tǒng)本身的DevOps、CI/CD、編排、自動化部署、配置管理、服務(wù)發(fā)現(xiàn)與路由、彈性伸縮、自動化監(jiān)控與日志采集等工作只能由應(yīng)用自身完成或依賴于第三方工具,這將大大增加應(yīng)用系統(tǒng)研發(fā)、運維和集成難度。
另一方面,隨著企業(yè)數(shù)字化變革的深入發(fā)展,企業(yè)對微服務(wù)、分布式架構(gòu)、Spring Cloud、大數(shù)據(jù)、人工智能、Serverless等新技術(shù)的使用也日益廣泛,迫切需要一個滿足上述需求的支撐平臺。
PaaS平臺的出現(xiàn)正是上述問題的最佳解決方案,也因此成為全球各大IT巨頭和初創(chuàng)公司的研發(fā)重點,如IBM、VMware等,各種PaaS平臺粉墨登場,競爭異常激烈,如Ansible、Puppet、Cloudify、CloudFoundry、Mesos、Swarm、Kubernetes等,最終一個以“Docker+Kubernetes”為核心的容器云平臺讓人們看到了希望,它可以滿足大多數(shù)應(yīng)用對PaaS平臺的期望。
作者在容器云平臺領(lǐng)域有多年的技術(shù)積累。本書結(jié)合容器云最新技術(shù)趨勢和作者的長期實踐,對容器云平臺提出系統(tǒng)的見解,并對容器云平臺實踐提供了思路和建議。本書在組織結(jié)構(gòu)上分成三大部分:基礎(chǔ)篇、中級篇和高級篇。
基礎(chǔ)篇(第1~5章)重點幫助初級人群快速掌握Docker基礎(chǔ)知識,囊括了Docker容器的技術(shù)架構(gòu)、Docker引擎原理、鏡像制作與優(yōu)化、鏡像倉庫管理等容器基礎(chǔ)知識,文字淺顯易懂。
中級篇(第6~16章)是針對初中級讀者,使其具備全景PaaS技術(shù)棧理論和設(shè)計技能,包括Kubernetes架構(gòu)及核心理念和技術(shù)原理、服務(wù)發(fā)現(xiàn)、容器網(wǎng)絡(luò)及存儲解決方案、運維監(jiān)控等。同時還提供很多高級案例,如跨區(qū)域的服務(wù)部署、TensorFlow容器化部署、金融PaaS云平臺等,有助于加深讀者對Kubernetes各種技術(shù)的理解,并能夠融會貫通。
高級篇(第17~21章)是針對中級讀者的進階篇,通過本篇可了解業(yè)界最新的微服務(wù)基礎(chǔ)知識和各種微服務(wù)框架(或解決方案),如Spring Cloud、Serverless、Service Mesh等,還將這幾種微服務(wù)框架與容器云平臺進行融合,以提供功能更完整、更健壯的容器云解決方案。
序
前言
第1章 Docker簡介 1
1.1 什么是Docker 1
1.2 為什么要用Docker 3
1.3 Docker基本概念 4
1.3.1 鏡像 4
1.3.2 容器 6
1.3.3 鏡像倉庫 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 容器存儲 16
1.5 Docker安裝 16
1.5.1 手動安裝模式 17
1.5.2 Ubuntu中自動化安裝Docker 18
1.5.3 CentOS中自動化安裝Docker 19
第2章 容器引擎 21
2.1 容器引擎實現(xiàn)原理 22
2.2 容器生命周期管理 29
2.3 容器狀態(tài)管理 33
2.4 訪問運行狀態(tài)容器 35
2.5 訪問容器內(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 從鏡像倉庫下載鏡像 38
3.2.2 將本地鏡像上傳到鏡像倉庫 39
3.2.3 查看本地鏡像 39
3.2.4 導(dǎo)出和導(dǎo)入本地鏡像 40
3.2.5 構(gòu)建鏡像 41
3.2.6 修改本地鏡像標識 42
3.2.7 刪除本地鏡像 42
3.3 Dockerfile優(yōu)化 42
3.3.1 Dockerfile檢查項 42
3.3.2 Dockerfile優(yōu)化實例 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)鏡像制作過程 48
3.4.6 系統(tǒng)資源限制配置說明 49
3.5 容器鏡像安全加固 49
3.5.1 容器安全加固規(guī)范 49
3.5.2 安全檢查工具 51
第4章 鏡像倉庫管理 52
4.1 Docker Registry 52
4.1.1 Docker Hub 52
4.1.2 第三方公共倉庫 53
4.1.3 建立私有鏡像倉庫 53
4.2 Harbor 54
4.2.1 Harbor架構(gòu) 55
4.2.2 Harbor的鏡像同步機制 56
4.2.3 Harbor用戶認證 56
4.2.4 Harbor容器鏡像安全掃描 57
4.2.5 Harbor部署實戰(zhàn) 57
第5章 Docker相關(guān)部署實踐 59
5.1 MySQL Docker部署實踐 59
5.1.1 MySQL簡介 59
5.1.2 MySQL為什么要容器化部署 60
5.1.3 MySQL容器化操作實踐 60
5.2 Docker支持GPU實踐 62
5.2.1 GPU簡介 62
5.2.2 CPU與GPU的對比 63
5.2.3 通過nvidia-docker使用GPU 63
第6章 Kubernetes簡介 65
6.1 PaaS簡介 65
6.1.1 傳統(tǒng)PaaS系統(tǒng) 65
6.1.2 基于Docker的新型PaaS平臺 67
6.2 為什么需要Kubernetes 69
6.3 Kubernetes的由來 69
6.3.1 Kubernetes的特點 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é)點 73
7.1.2 Node節(jié)點 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 滾動升級 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 擴容/縮容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)機制 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ā)布實踐 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 單主機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)缺點分析 137
10.2 跨主機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ò)方案對比分析 144
第11章 Kubernetes存儲 145
11.1 存儲使用場景 145
11.2 文件存儲的幾種形式 146
11.3 Flex Volume存儲管理方案 148
11.3.1 為什么需要靈活存儲組件 148
11.3.2 如何實現(xiàn)靈活存儲組件 148
11.4 標準化容器存儲接口CSI 149
第12章 安全及多租戶配額管理 150
12.1 API服務(wù)器認證 151