Kubernetes生產(chǎn)化實(shí)踐之路
定 價(jià):138 元
- 作者:孟凡杰 等
- 出版時(shí)間:2020/12/1
- ISBN:9787121399176
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP316.85
- 頁(yè)碼:552
- 紙張:
- 版次:01
- 開本:16開
本書與kubernetes架構(gòu)細(xì)節(jié)為引子,深入挖掘kubernetes生產(chǎn)化時(shí)間過程中所遇到的挑戰(zhàn)和方案細(xì)節(jié),重點(diǎn)包括:1. 規(guī)劃和構(gòu)建企業(yè)級(jí)的kubernetes高可用集群2. 如何解決kubernetes落地過程中與企業(yè)生態(tài)系統(tǒng)的整合,構(gòu)建多租戶解決方案3. 基于kubernetes的邊緣計(jì)算4. 全方位的性能調(diào)優(yōu),節(jié)點(diǎn),網(wǎng)絡(luò),kubernetes組件5. 如何保證用戶應(yīng)用的高可用,如何通過監(jiān)控,告警,自動(dòng)策略等保證高可用。在這些話題的基礎(chǔ)上,本書的核心目的是,通過以上角度,全方位分享eBay在4年多kubernetes生產(chǎn)化時(shí)間之路中的經(jīng)驗(yàn),目標(biāo)是使本書稱為kubernetes生產(chǎn)化的案例參考手冊(cè)。
孟凡杰,eBay資深架構(gòu)師。Kubernets社區(qū)貢獻(xiàn)者。CNUTCon全球運(yùn)維大會(huì)明星講師。完成了Kubernets社區(qū)集群聯(lián)邦的開發(fā)和重構(gòu)等。先后就職于IBM、惠普EMC、eBay等公司,專注于系統(tǒng)設(shè)計(jì)和軟件開發(fā)。目前在eBay負(fù)責(zé)網(wǎng)絡(luò)和多集群的架構(gòu)和開發(fā),推動(dòng)kubernetes在互聯(lián)網(wǎng)企業(yè)的落地和生產(chǎn)化,主導(dǎo)集群聯(lián)邦的落地,并在無(wú)業(yè)務(wù)中斷的前提下,正在主導(dǎo)ebay十多萬(wàn)虛擬機(jī)轉(zhuǎn)向容器技術(shù)棧。對(duì)微服務(wù)和服務(wù)治理有深入理解,積極推動(dòng)Istio在eBay的落地,實(shí)現(xiàn)全平臺(tái)Service mesh。
目 錄
第1章 架構(gòu)基礎(chǔ) 1
1.1 云計(jì)算的變革 3
1.1.1 物理機(jī)時(shí)代 3
1.1.2 虛擬化時(shí)代 4
1.1.3 容器化時(shí)代 6
1.2 Kubernetes模型設(shè)計(jì) 11
1.2.1 對(duì)象的通用設(shè)計(jì)原則 11
1.2.2 模型設(shè)計(jì) 12
1.2.3 核心對(duì)象概覽 16
1.2.4 控制器模式 20
1.2.5 控制器的協(xié)同工作原理 23
1.3 Kubernetes核心架構(gòu) 25
1.3.1 核心控制平面組件 26
1.3.2 工作節(jié)點(diǎn)控制平面組件 33
1.3.3 Pod詳解 43
第2章 計(jì)算節(jié)點(diǎn)管理 52
2.1 操作系統(tǒng) 55
2.2 文件系統(tǒng)規(guī)劃 57
2.3 容器核心技術(shù) 58
2.3.1 Namespace 59
2.3.2 Cgroups 64
2.3.3 容器運(yùn)行時(shí) 71
2.3.4 容器存儲(chǔ)驅(qū)動(dòng) 77
2.4 節(jié)點(diǎn)資源管理 82
2.4.1 狀態(tài)上報(bào) 82
2.4.2 資源預(yù)留 83
2.4.3 驅(qū)逐管理 84
2.4.4 容器和系統(tǒng)資源配置 87
2.5 存儲(chǔ)方案 99
2.5.1 存儲(chǔ)卷插件管理 99
2.5.2 存儲(chǔ)的分類 102
2.6 節(jié)點(diǎn)調(diào)優(yōu) 114
2.6.1 NUMA架構(gòu) 114
2.6.2 CPU性能 115
2.6.3 內(nèi)存 117
2.6.4 磁盤 120
2.6.5 網(wǎng)絡(luò)性能 121
第3章 構(gòu)建高可用集群 138
3.1 高可用的常用手段 141
3.2 Kubernetes高可用層級(jí) 144
3.3 控制平面的高可用保證 148
3.3.1 etcd高可用保證 149
3.3.2 API Server高可用保證 156
3.3.3 控制器高可用保證 164
3.3.4 集群的安全性保證 165
3.4 面向應(yīng)用的高可用特性 173
3.5 模型驅(qū)動(dòng)的集群搭建與管理 176
第4章 構(gòu)建企業(yè)級(jí)鏡像倉(cāng)庫(kù) 184
4.1 鏡像倉(cāng)庫(kù)綜述 185
4.1.1 鏡像倉(cāng)庫(kù) 185
4.1.2 鏡像管理 187
4.2 企業(yè)級(jí)鏡像倉(cāng)庫(kù) 189
4.2.1 架構(gòu)總覽 191
4.2.2 數(shù)據(jù)庫(kù) 193
4.2.3 塊存儲(chǔ) 194
4.2.4 鏡像倉(cāng)庫(kù)實(shí)例部署 195
4.3 鏡像倉(cāng)庫(kù)緩存 196
4.3.1 鏡像分發(fā)的挑戰(zhàn) 196
4.3.2 鏡像緩存服務(wù)拓?fù)?198
4.3.3 鏡像緩存流量管理 199
4.3.4 高可用鏡像緩存服務(wù) 199
4.4 鏡像安全 200
4.4.1 鏡像掃描 201
4.4.2 鏡像策略準(zhǔn)入控制 206
4.4.3 鏡像安全監(jiān)控 210
第5章 多租戶生產(chǎn)集群 213
5.1 租戶 214
5.1.1 多租戶支持 214
5.1.2 Kubernetes多租戶有限支持 216
5.1.3 Kubernetes租戶擴(kuò)展 218
5.2 認(rèn)證 222
5.2.1 Kubernetes認(rèn)證 222
5.2.2 用戶認(rèn)證 225
5.2.3 高負(fù)載認(rèn)證實(shí)踐 227
5.3 授權(quán) 229
5.3.1 Kubernetes授權(quán) 230
5.3.2 租戶授權(quán) 235
5.3.3 特殊權(quán)限管理 236
5.3.4 特殊權(quán)限應(yīng)用 238
5.4 隔離 243
5.4.1 節(jié)點(diǎn)隔離 244
5.4.2 容器隔離 247
5.4.3 網(wǎng)絡(luò)策略隔離 249
5.5 配額 252
5.5.1 Kubernetes配額 252
5.5.2 高階配額 255
5.5.3 租戶配額 262
5.5.4 租戶配額實(shí)踐 265
第6章 網(wǎng)絡(luò)接入方案 267
6.1 數(shù)據(jù)中心基礎(chǔ)架構(gòu) 268
6.2 域名服務(wù) 270
6.3 Linux網(wǎng)絡(luò)基礎(chǔ) 273
6.3.1 理解Linux網(wǎng)絡(luò)協(xié)議棧工作機(jī)制 273
6.3.2 iptables 275
6.3.3 ipset 277
6.3.4 IPVS 278
6.4 負(fù)載均衡 280
6.4.1 負(fù)載均衡的實(shí)現(xiàn)機(jī)制 281
6.4.2 負(fù)載均衡的技術(shù)實(shí)現(xiàn) 283
6.4.3 負(fù)載均衡的部署模式 288
6.4.4 負(fù)載均衡策略 289
6.4.5 健康檢查 291
6.5 Kubernetes中的服務(wù)發(fā)布 291
6.5.1 創(chuàng)建服務(wù) 293
6.5.2 服務(wù)的類型 296
6.5.3 基于kube-proxy實(shí)現(xiàn)的流量轉(zhuǎn)發(fā) 300
6.5.4 Service高級(jí)特性 308
6.6 DNS 312
第7章 API網(wǎng)關(guān)和服務(wù)網(wǎng)格 315
7.1 API網(wǎng)關(guān) 316
7.2 服務(wù)網(wǎng)格 320
7.3 深入了解Envoy 322
7.3.1 Envoy發(fā)現(xiàn)機(jī)制 325
7.3.2 Envoy架構(gòu) 330
7.4 Ingress 334
7.4.1 功能概述 334
7.4.2 Ingress的挑戰(zhàn) 336
7.5 Contour 337
7.5.1 架構(gòu) 338
7.5.2 高級(jí)功能 341
7.6 Istio 350
7.6.1 架構(gòu) 350
7.6.2 Sidecar 353
7.6.3 Ingress網(wǎng)關(guān) 360
7.6.4 金絲雀發(fā)布和流量灰度 363
7.6.5 安全保證 365
7.6.6 策略管理和遙測(cè) 368
7.6.7 數(shù)據(jù)平面加速 371
7.6.8 優(yōu)勢(shì)和挑戰(zhàn) 372
第8章 集群聯(lián)邦 374
8.1 集群聯(lián)邦概覽 377
8.1.1 集群聯(lián)邦設(shè)計(jì) 377
8.1.2 集群注冊(cè)中心 379
8.1.3 聯(lián)邦共享邏輯 380
8.1.4 聯(lián)邦類型配置 384
8.1.5 同步控制器 385
8.1.6 副本調(diào)度控制器 386
8.1.7 全局DNS服務(wù) 388
8.2 定義聯(lián)邦資源 390
8.2.1 集群資源 390
8.2.2 聯(lián)邦資源 391
8.2.3 定義聯(lián)邦資源 393
8.2.4 聯(lián)邦資源管理 397
8.3 聯(lián)邦應(yīng)用 398
8.3.1 聯(lián)邦應(yīng)用 400
8.3.2 聯(lián)邦應(yīng)用部署 401
8.3.3 聯(lián)邦應(yīng)用運(yùn)維 402
8.3.4 集群聯(lián)邦的局限性與解決方案 409
第9章 邊緣計(jì)算 416
9.1 邊緣數(shù)據(jù)中心 417
9.1.1 智能域名服務(wù)(GSLB) 418
9.1.2 邊緣網(wǎng)絡(luò)接入 420
9.1.3 規(guī)劃邊緣計(jì)算應(yīng)用 428
9.2 KubeEdge 430
9.2.1 通信協(xié)議 432
9.2.2 CloudCore 440
9.2.3 EdgeCore 446
9.2.4 設(shè)備映射器 450
9.2.5 未來(lái)展望 455
第10章 應(yīng)用落地 456
10.1 應(yīng)用容器化 459
10.1.1 Dockerfile 459
10.1.2 容器化帶來(lái)的影響 463
10.2 應(yīng)用接入的最佳實(shí)踐 466
10.2.1 資源定義 466
10.2.2 靈活定義Pod 468
10.2.3 應(yīng)用配置 473
10.3 應(yīng)用管理 477
10.3.1 無(wú)狀態(tài)應(yīng)用 477
10.3.2 有狀態(tài)應(yīng)用 480
10.3.3 Operator 483
10.4 集群應(yīng)用運(yùn)維 485
第11章 監(jiān)控和自動(dòng)修復(fù) 488
11.1 指標(biāo)監(jiān)控系統(tǒng) 490
11.1.1 監(jiān)控系統(tǒng)的構(gòu)建 491
11.1.2 Prometheus Operator 499
11.2 日志管理系統(tǒng) 501
11.3 關(guān)鍵指標(biāo)定義 503
11.4 自動(dòng)修復(fù)系統(tǒng) 505
11.4.1 Node Problem Detector 505
11.4.2 自動(dòng)修復(fù)控制器 508
11.5 事件監(jiān)控系統(tǒng) 509
11.6 狀態(tài)監(jiān)控系統(tǒng) 511
第12章 DEVOPS 513
12.1 擁抱DevOps 515
12.2 自治跨職能團(tuán)隊(duì) 520
12.3 敏捷開發(fā) 523
12.4 GitOps 529
12.5 質(zhì)量保證 533