Kubernetes從入門到實踐
內容描述
本書共11章,由淺入深地介紹了Kubernetes的相關技術。
主要內容包括容器的發展史,Kubernetes的核心概念,
Kubernetes的安裝與部署,Kubernetes的基本單位Pod,
Kubernetes中的各種控制器,Kubernetes發布服務的方式,
Kubernetes中的存儲捲與用法,Kubernetes中的幾種實用擴展,
Kubernetes管理資源的方式與Pod的調度原理,
API Server的基本使用方式及身份認證與授權方式等。
本書適合開發人員、運維人員、測試人員閱讀,
同時也適合對Kubernetes或容器技術感興趣的讀者閱讀。
目錄大綱
目錄
第一部分基礎知識
第1章容器的發展史3
1.1開發過程的發展3
1.1.1瀑布式開發3
1.1.2敏捷式開發4
1.1.3 DevOps 5
1.2應用架構的發展6
1.2.1單體架構與多層架構6
1.2.2微服務架構7
1.3部署/打包的發展9
1.3.1物理機和虛擬機9
1.3.2容器10
1.3.3容器的舵手—Kubernetes 11
第2章Kubernetes的核心概念12
2.1 Kubernetes的設計架構12
2.1.1 Master 13
2.1.2 Node 15
2.1.3組件間的基本交互流程16
2.2 Kubernetes的核心對象17
2.2.1 Pod 17
2.2.2控制器18
2.2.3服務與存儲20
2.2.4資源劃分22
2.3本章小結23
*二部分應用
第3章Kubernetes的安裝與部署27
3.1 Master與Node都要安裝的基礎組件28
3.1.1在Debian、Ubuntu系統上安裝基礎組件28
3.1.2在CentOS以及RHEL和Fedora系統上安裝基礎組件28
3.2 Master的安裝與配置29
3.2.1如何解決CPU數量
不夠的問題29
3.2.2如何解決不支持交換內存的問題29
3.2. 3如何解決網絡連接錯誤的問題30
3.3 Node的安裝與配置32
3.4本章小結36
第4章Pod—Kubernetes的基本單位37
4.1 Pod的基本操作37
4.1.1創建Pod 37
4.1.2查詢Pod 38
4.1. 3修改Pod 40
4.1.4刪除Pod 41
4.2 Pod模板詳解41
4.3 Pod與容器45
4.3.1 Pod創建容器的方式45
4.3.2 Pod組織容器的方式50
4.4 Pod的生命週期55
4.4.1 Pod的相位55
4.4.2 Pod的重啟策略56
4.4.3 Pod的創建與銷毀過程57
4.4.4 Pod的生命週期事件58
4.5 Pod的健康檢查63
4.6本章小結68
第5章控制器—Pod的管理70
5.1 Deployment控制器70
5.1.1 Deployment控制器的基本操作71
5.1.2 Deployment控制器的模板75
5.1.3 Deployment控制器的伸縮76
5.1.4 Deployment控制器的更新77
5.1.5 Deployment控制器的回滾84
5.2 DaemonSet控制器85
5.2.1 DaemonSet控制器的基本操作86
5.2.2 DaemonSet控制器的更新88
5.3 Job與CronJob控制器90
5.3.1 Job控制器的基本操作90
5.3.2 Job的異常處理95
5.3.3 CronJob控制器的基本操作98
5.4其他控制器101
5.5本章小結102
第6章Service和Ingress—發布Pod提供的服務103
6.1 Service 103
6.1.1向外發布—通過ClusterIP發布107
6.1.2向外發布—通過NodePort發布110
6.1.3向外發布—通過LoadBalancer發布112
6.1.4向內發布—通過無頭Service 115
6.1.5向內發布—通過ExternalName 117
6.1.6服務發現119
6.1.7其他配置方式121
6.2 Ingress 124
6.2.1 Ingress控制器的安裝126
6.2.2 Ingress的基本操作127
6.3本章小結137
第7章存儲與配置138
7.1本地存儲卷138
7.1.1 emptyDir 139
7.1.2 hostPath 140
7.2網絡存儲卷142
7.2.1安裝NFS 142
7.2.2使用NFS 144
7.3持久存儲卷146
7.3.1 PV與PVC 147
7.3.2 StorageClass 154
7.4 StatefulSet控制器159
7.4.1 StatefulSet控制器的基本操作161
7.4.2 PVC及PV的使用163
7.4.3無頭Service的訪問165
7.4.4 Pod的重建167
7.4.5 StatefulSet控制器的伸縮與更新168
7.5配置存儲卷168
7.5.1 ConfigMap 169
7.5.2 Secret 174
7.5.3 Downward API 181
7.6本章小結184
第8章Kubernetes資源的管理及調度186
8.1資源調度—為Pod設置計算資源186
8.2資源管理—命名空間190
8.2. 1命名空間的基本操作190
8.2.2命名空間的資源配額193
8.2.3命名空間中單個資源的限額範圍197
8.3資源管理—標籤、選擇器及註解202
8.3.1標籤202
8.3.2選擇器204
8.3.3註解207
8.4資源調度—Pod調度策略詳解208
8.4.1調度過程208
8.4.2節點選擇調度211
8.4.3節點親和性調度212
8.4.4 Pod親和性與反親和性調度215
8.4.5污點與容忍度219
8.4.6優先級與搶占式調度222
8.5本章小結224
第三部分進階
第9章API Server 227
9.1 API Server的基本操作227
9.1.1寫操作228
9.1.2讀操作234
9.1.3獨有操作237
9.1. 4狀態操作241
9.2 API Server的身份認證、授權、准入控制245
9.2.1身份認證246
9.2.2 RBAC授權253
9.3本章小結260
第10章Kubernetes的擴展261
10.1可視化管理—
Kubernetes Dashboard 261
10.1.1安裝Kubernetes Dashboard 261
10.1.2使用Kubernetes Dashboard 264
10.2資源監控—Prometheus與Grafana 269
10.2.1安裝與配置Prometheus 269
10.2.2安裝與配置Grafana 270
10.3日誌管理—ElasticSearch、Fluentd、Kibana 275
10.4本章小結277
第四部分實踐
第11章項目部署案例281
11.1無狀態項目的部署案例281
11.2有狀態項目的部署案例287
11.3使用Helm部署項目292
11.3.1 Helm簡介293
11.3.2 Helm的安裝294
11.3.3 Helm Chart的基本操作296
11.3.4將Chart打包到Chart倉庫中306
11.3.5發布版本的更新、回滾和刪除308
11.3.6使用Helm部署的項目案例310
11.4本章小結313
作者介紹
趙卓
新蛋科技有限公司電子商務研發團隊項目經理,
從事過多年測試工作和開發工作,精通各類開發和測試技術。
編寫過的圖書有《Selenium自動化測試指南》,
翻譯過的圖書有《精通Selenium WebDriver 3.0 (*2版)》
《Visual Studio 2010軟件測試指南》和《快速編碼:高效使用Microsoft Visual Studio》。