Kubernetes進階實戰(zhàn)(第2版)
定 價:149 元
叢書名:云計算與虛擬化技術叢書
當前圖書已被 25 所學校薦購過!
查看明細
- 作者:馬永亮
- 出版時間:2021/3/1
- ISBN:9787111671862
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP316.85
- 頁碼:664
- 紙張:
- 版次:
- 開本:16開
全書分為5個部分。第壹部分介紹Kubernetes系統(tǒng)基礎架構及核心概述,并提供一個Kubernetes快速部署和應用的入門指南。第二部分剖析分Kubernetes系統(tǒng)的應用編排核心組件,對Pod、Controller、Service和Ingress、存儲卷和應用配置等進行深入介紹。第三部分介紹安全相關的話題,主要涉及認證、授權、準入控制、網(wǎng)絡模型和網(wǎng)絡策略等話題。第四部分介紹Kubernetes系統(tǒng)高級話題及系統(tǒng)擴展,包括調度策略、CRD和Operator、資源指標與系統(tǒng)監(jiān)控及應用管理器等。第五部分介紹基于Kubernetes的服務治理與服務網(wǎng)絡,涉及數(shù)據(jù)平面組件Envoy、Istio架構、部署和應用案例等話題。
前言
第一部分 系統(tǒng)基礎
第1章 Kubernetes系統(tǒng)基礎2
1.1 容器與容器編排系統(tǒng)3
1.1.1 Docker容器技術3
1.1.2 OCI與容器運行時5
1.1.3 為什么需要容器編排系統(tǒng)7
1.2 Kubernetes基礎8
1.2.1 Kubernetes集群概述9
1.2.2 Kubernetes集群架構11
1.3 應用的運行與互聯(lián)互通14
1.3.1 Pod與Service15
1.3.2 Pod控制器16
1.3.3 Kubernetes網(wǎng)絡基礎18
1.3.4 部署并訪問應用20
1.4 簡析Kubernetes生態(tài)系統(tǒng)21
1.5 本章小結23
第2章 Kubernetes快速入門24
2.1 利用kubeadm部署Kubernetes集群24
2.1.1 kubeadm部署工具25
2.1.2 集群組件運行模式26
2.1.3 kubeadm init工作流程28
2.1.4 kubeadm join工作流程31
2.1.5 kubeadm配置文件33
2.2 部署分布式Kubernetes集群34
2.2.1 準備基礎環(huán)境34
2.2.2 單控制平面集群38
2.3 kubectl命令與資源管理43
2.3.1 資源管理的操作44
2.3.2 kubectl的命令格式45
2.3.3 kubectl命令常用操作示例47
2.3.4 kubectl插件50
2.4 命令式應用編排52
2.4.1 應用編排53
2.4.2 部署Service對象56
2.4.3 擴容與縮容58
2.4.4 修改與刪除對象60
2.5 本章小結61
第二部分 核心資源
第3章 Kubernetes資源管理64
3.1 資源對象與API群組64
3.1.1 Kubernetes的資源對象65
3.1.2 資源及其在API中的組織形式68
3.1.3 訪問Kubernetes RESTful API70
3.2 對象類資源配置規(guī)范72
3.2.1 定義資源對象73
3.2.2 對象元數(shù)據(jù)74
3.2.3 資源的期望狀態(tài)75
3.2.4 獲取資源配置清單格式文檔75
3.2.5 資源對象管理方式77
3.3 名稱空間79
3.3.1 名稱空間的作用80
3.3.2 管理Namespace資源81
3.4 節(jié)點資源86
3.4.1 節(jié)點心跳與節(jié)點租約86
3.4.2 節(jié)點狀態(tài)87
3.4.3 手動管理Node資源與節(jié)點89
3.5 標簽與標簽選擇器91
3.5.1 資源標簽91
3.5.2 標簽選擇器93
3.6 資源注解94
3.7 本章小結96
第4章 應用部署、運行與管理97
4.1 應用容器與Pod資源97
4.1.1 Pod資源基礎97
4.1.2 容器設計模式99
4.1.3 Pod的生命周期104
4.2 在Pod中運行應用105
4.2.1 使用單容器Pod資源106
4.2.2 獲取Pod與容器狀態(tài)詳情107
4.2.3 自定義容器應用與參數(shù)110
4.2.4 容器環(huán)境變量111
4.2.5 Pod的創(chuàng)建與刪除過程112
4.3 暴露容器服務115
4.3.1 其他容器端口映射115
4.3.2 配置Pod使用節(jié)點網(wǎng)絡117
4.4 容器安全上下文118
4.4.1 配置格式速覽119
4.4.2 管理容器進程的運行身份120
4.4.3 管理容器的內核功能121
4.4.4 特權模式容器123
4.4.5 在Pod上使用sysctl124
4.5 容器應用的管理接口125
4.5.1 健康狀態(tài)監(jiān)測接口126
4.5.2 容器存活狀態(tài)檢測127
4.5.3 Pod的重啟策略133
4.5.4 容器就緒狀態(tài)檢測133
4.5.5 容器生命周期135
4.6 多容器Pod138
4.6.1 初始化容器138
4.6.2 Sidecar容器140
4.7 資源需求與資源限制142
4.7.1 資源需求與限制142
4.7.2 容器資源需求143
4.7.3 容器資源限制145
4.7.4 容器可見資源146
4.7.5 Pod服務質量類別147
4.8 綜合應用案例149
4.9 本章小結150
第5章 存儲卷與數(shù)據(jù)持久化152
5.1 存儲卷基礎152
5.1.1 存儲卷概述152
5.1.2 配置Pod存儲卷154
5.2 臨時存儲卷156
5.2.1 emptyDir存儲卷156
5.2.2 gitRepo存儲卷158
5.3 hostPath存儲卷159
5.4 網(wǎng)絡存儲卷161
5.4.1 NFS存儲卷162
5.4.2 RBD存儲卷164
5.4.3 CephFS存儲卷167
5.4.4 GlusterFS存儲卷169
5.5 持久存儲卷171
5.5.1 PV與PVC基礎172
5.5.2 PV的生命周期173
5.5.3 靜態(tài)PV資源175
5.5.4 PVC資源178
5.5.5 在Pod中使用PVC181
5.5.6 存儲類181
5.6 容器存儲接口CSI187
5.6.1 CSI基礎187
5.6.2 Longhorn存儲系統(tǒng)189
5.7 本章小結194
第6章 應用配置195
6.1 容器化應用配置195
6.1.1 容器化應用配置的常見方式195
6.1.2 容器環(huán)境變量197
6.2 應用程序配置管理與ConfigMap資源199
6.2.1 創(chuàng)建ConfigMap對象200
6.2.2 通過環(huán)境變量引用ConfigMap鍵值203
6.2.3 ConfigMap存儲卷206
6.2.4 容器應用重載新配置211
6.3 Secret資源:向容器注入配置信息213
6.3.1 創(chuàng)建Secret資源213
6.3.2 使用Secret資源219
6.4 應用Downward API存儲卷配置信息223
6.4.1 環(huán)境變量式元數(shù)據(jù)注入223
6.4.2 存儲卷式元數(shù)據(jù)注入226
6.5 本章小結228
第7章 Service與服務發(fā)現(xiàn)229
7.1 Service資源及其實現(xiàn)模型229
7.1.1 Service資源概述229
7.1.2 kube-proxy代理模型230
7.1.3 Service資源類型233
7.2 應用Service資源235
7.2.1 應用ClusterIP Service資源236
7.2.2 應用NodePort Service資源238
7.2.3 應用LoadBalancer Service資源240
7.2.4 外部IP241
7.3 Service與Endpoint資源242
7.3.1 Endpoint與容器探針243
7.3.2 自定義Endpoint資源245
7.4 深入理解Service資源247
7.4.1 iptables代理模型247
7.4.2 ipvs代理模型255
7.5 Kubernetes服務發(fā)現(xiàn)258
7.5.1 服務發(fā)現(xiàn)概述258
7.5.2 基于環(huán)境變量的服務發(fā)現(xiàn)259
7.5.3 基于DNS的服務發(fā)現(xiàn)260
7.5.4 Pod的DNS解析策略與配置263
7.5.5 配置CoreDNS264
7.6 Headless Service資源解析266
7.6.1 ExternalName Service266
7.6.2 Headless Service267
7.7 本章小結270
第8章 應用編排與管理271
8.1 Kubernetes控制器基礎271
8.1.1 控制器與Pod資源272
8.1.2 Pod模板資源275
8.2 ReplicaSet控制器276
8.2.1 功能分析276
8.2.2 ReplicaSet基礎應用277
8.2.3 應用更新與回滾280
8.2.4 應用擴容與縮容285
8.2.5 高級更新策略286
8.3 Deployment控制器291
8.3.1 Deployment基礎應用291
8.3.2 Deployment更新策略294
8.3.3 應用更新與回滾296
8.3.4 金絲雀發(fā)布298
8.4 StatefulSet控制器300
8.4.1 功能分析300
8.4.2 StatefulSet基礎應用302
8.4.3 擴縮容與滾動更新306
8.4.4 StatefulSet的局限性309
8.5 DaemonSet控制器310
8.5.1 DaemonSet資源基礎應用311
8.5.2 DaemonSet更新策略313
8.6 Job控制器314
8.6.1 Job資源基礎應用315
8.6.2 并行式Job與擴容機制318
8.7 CronJob控制器319
8.8 Pod中斷預算321
8.9 本章小結324
第三部分 安全
第9章 認證、授權與準入控制326
9.1 Kubernetes訪問控制326
9.1.1 用戶賬戶與用戶組327
9.1.2 認證、授權與準入控制基礎328
9.1.3 測試使用API Server的訪問控制機制332
9.2 ServiceAccount及認證336
9.2.1 ServiceAccount自動化336
9.2.2 ServiceAccount基礎應用338
9.2.3 Pod資源上的服務賬戶340
9.3 X509數(shù)字證書認證342
9.3.1 Kubernetes的X509數(shù)字證書認證體系343
9.3.2 TLS Bootstrapping機制347
9.4 kubeconfig配置文件348
9.4.1 kubeconfig文件格式348
9.4.2 自定義kubeconfig文件350
9.4.3 X509數(shù)字證書身份憑據(jù)353
9.4.4 多kubeconfig文件與合并354
9.5 基于角色的訪問控制:RBAC355
9.5.1 RBAC授權模型356
9.5.2 Role與ClusterRole358
9.5.3 RoleBinding與ClusterRole-Binding361
9.5.4 聚合型ClusterRole364
9.5.5 面向用戶的內置ClusterRole366
9.6 認證與權限應用案例:Dashboard368
9.6.1 部署Dashboard368
9.6.2 認證與授權370
9.7 準入控制器372
9.7.1 準入控制器概述372
9.7.2 LimitRange373
9.7.3 ResourceQuota377
9.7.4 PodSecurityPolicy379
9.8 本章小結386
第10章 網(wǎng)絡模型與網(wǎng)絡策略387
10.1 容器網(wǎng)絡模型387
10.1.1 容器網(wǎng)絡通信模式387
10.1.2 CNI網(wǎng)絡插件基礎391
10.1.3 Overlay網(wǎng)絡模型394
10.1.4 Underlay網(wǎng)絡模型396
10.1.5 配置CNI插件400
10.1.6 CNI插件與選型404
10.2 Flannel網(wǎng)絡插件406
10.2.1 Flannel配置基礎406
10.2.2 VXLAN后端408
10.2.3 直接路由412
10.2.4 host-gw后端414
10.3 Calico網(wǎng)絡插件416
10.3.1 Calico架構417
10.3.2 Calico配置基礎419
10.3.3 IPIP隧道網(wǎng)絡421
10.3.4 客戶端工具calicoctl424
10.3.5 BGP網(wǎng)絡與BGP Reflector426
10.4 網(wǎng)絡策略430
10.4.1 網(wǎng)絡策略與配置基礎431
10.4.2 管控入站流量433
10.4.3 管控出站流量436
10.4.4 隔離名稱空間438
10.4.5 Calico的網(wǎng)絡策略439
10.5 本章小結441
第四部分 進階
第11章 Pod資源調度444
11.1 Kubernetes調度器444
11.1.1 調度器基礎445
11.1.2 經(jīng)典調度策略449
11.1.3 調度器插件454
11.1.4 配置調度器456
11.2 節(jié)點親和調度461
11.2.1 Pod節(jié)點選擇器462
11.2.2 強制節(jié)點親和463
11.2.3 首選節(jié)點親和465
11.3 Pod親和調度467
11.3.1 位置拓撲468
11.3.2 Pod間的強制親和469
11.3.3 Pod間的首選親和471
11.3.4 Pod間的反親和關系473
11.4 節(jié)點污點與Pod容忍度475
11.4.1 污點與容忍度基礎概念475
11.4.2 定義污點477
11.4.3 定義容忍度478
11.4.4 問題節(jié)點標識479
11.5 拓撲分布式調度480
11.6 Pod優(yōu)先級與搶占481
11.7 本章小結483
第12章 Kubernetes系統(tǒng)擴展484
12.1 CRD484
12.1.1 CRD 基礎應用485
12.1.2 打印字段與資源類別488
12.1.3 CRD子資源489
12.1.4 CRD v1beta1版本491
12.2 自定義API Server492
12.2.1 自定義API Server運行機制493
12.2.2 APIService資源與應用494
12.3 控制器與Operator496
12.3.1 自定義控制器的工作機制496
12.3.2 Operator與簡單應用示例500
12.4 Kubernetes集群高可用503
12.4.1 etcd高可用與控制平面拓撲503
12.4.2 Controller Manager與Scheduler高可用505
12.4.3 部署高可用控制平面506
12.5 本章小結508
第13章 Ingress與服務發(fā)布509
13.1 Ingress資源509
13.1.1 Ingress與Ingress控制器流量轉發(fā)509
13.1.2 Ingress資源規(guī)范511
13.1.3 Ingress資源類型515
13.2 Ingress控制器部署與應用517
13.2.1 Ingress Nginx部署與測試518
13.2.2 配置Ingress Nginx522
13.2.3 Ingress資源案例:發(fā)布Dashboard524
13.3 Contour控制器525
13.3.1 Envoy數(shù)據(jù)平面525
13.3.2 部署Contour529
13.3.3 HTTPProxy基礎532
13.3.4 HTTPProxy高級路由533
13.3.5 HTTPProxy服務韌性539
13.3.6 TCP代理542
13.4 本章小結544
第五部分 必備生態(tài)組件
第14章 應用管理546
14.1 Kustomize聲明式應用管理546
14.1.1 聲明式應用管理基本用法547
14.1.2 應用配置分解549
14.1.3 配置生成器551
14.1.4 資源補丁553
14.2 Helm基礎應用556
14.2.1 Helm基礎556
14.2.2 Helm 3 快速入門558
14.3 Helm Chart562
14.3.1 Chart包結構與描述文件562
14.3.2 Chart中的依賴關系564
14.3.3 模板與值565
14.3.4 其他需要說明的話題567
14.3.5 自定義Chart簡單示例568
14.4 Helm實踐:部署Harbor注冊中心575
14.4.1 部署方案與配置方式577
14.4.2 Harbor部署與測試582
14.5 本章小結585
第15章 資源指標與集群監(jiān)控586
15.1 資源監(jiān)控與資源指標586
15.1.1 資源監(jiān)控與Heapster587
15.1.2 新一代監(jiān)控體系與指標系統(tǒng)589
15.2 資源指標與應用591
15.2.1 部署Metrics Server591
15.2.2 顯示資源使用信息595
15.3 自定義指標與Prometheus596
15.3.1 Prometheus基礎597
15.3.2 Prometheus核心概念601
15.3.3 Prometheus查詢語言604
15.3.4 監(jiān)控Kubernetes606
15.3.5 自定義指標適配器616
15.4 自動彈性縮放621
15.4.1 HPA控制器概述622
15.4.2 HPA v1控制器622
15.4.3 HPA v2控制器624
15.5 本章小結629
第16章 集群日志系統(tǒng)630
16.1 集群日志系統(tǒng)基礎630
16.1.1 日志系統(tǒng)概述631
16.1.2 Elasticsearch基礎633
16.2 EFK日志管理系統(tǒng)636
16.2.1 Elasticsearch集群637
16.2.2 日志采集器Fluent Bit642
16.2.3 可視化組件Kibana647
16.3 本章小結650