-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應(yīng)用
-
>
決戰(zhàn)行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調(diào)優(yōu)實踐之路
-
>
第一行代碼Android
-
>
JAVA持續(xù)交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
Kubernetes生產(chǎn)化實踐之路 版權(quán)信息
- ISBN:9787121399176
- 條形碼:9787121399176 ; 978-7-121-39917-6
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>
Kubernetes生產(chǎn)化實踐之路 本書特色
適讀人群 :系統(tǒng)架構(gòu)師、開發(fā)和測試人員、運維人員,還是對于企業(yè)IT主管、系統(tǒng)管理員、平臺管理員、SRE人員,以及所有對kubernetes有基礎(chǔ)了解,但苦于生產(chǎn)化經(jīng)驗不足的讀者。基于K8s 1.18,囊括所有K8s新特性和應(yīng)用。 *權(quán)威: 由Kubernetes不同領(lǐng)域的專家共同執(zhí)筆,全方位深入解讀技術(shù)細節(jié)。 *實用: 五年多互聯(lián)網(wǎng)行業(yè)Kubernetes生產(chǎn)化實踐經(jīng)驗分享,助你不再踩坑。 *全視角: 深入剖析Kubernetes架構(gòu)決策及設(shè)計原理。 從長期運維的角度,解析如何構(gòu)建和運維生產(chǎn)化集群并持續(xù)優(yōu)化。 分享大規(guī)模集群、多集群的運維挑戰(zhàn)。 基于多租戶Kubernetes的應(yīng)用容器化、高可用部署和多活數(shù)據(jù)中心流量管理進行案例分享。
Kubernetes生產(chǎn)化實踐之路 內(nèi)容簡介
本書與kubernetes架構(gòu)細節(jié)為引子,深入挖掘kubernetes生產(chǎn)化時間過程中所遇到的挑戰(zhàn)和方案細節(jié),重點包括:1. 規(guī)劃和構(gòu)建企業(yè)級的kubernetes高可用集群2. 如何解決kubernetes落地過程中與企業(yè)生態(tài)系統(tǒng)的整合,構(gòu)建多租戶解決方案3. 基于kubernetes的邊緣計算4. 多方面的性能調(diào)優(yōu),節(jié)點,網(wǎng)絡(luò),kubernetes組件5. 如何保證用戶應(yīng)用的高可用,如何通過監(jiān)控,告警,自動策略等保證高可用。在這些話題的基礎(chǔ)上,本書的核心目的是,通過以上角度,多方面分享eBay在4年多kubernetes生產(chǎn)化時間之路中的經(jīng)驗,目標是使本書稱為kubernetes生產(chǎn)化的案例參考手冊。
Kubernetes生產(chǎn)化實踐之路 目錄
目 錄
第1章 架構(gòu)基礎(chǔ) 1
1.1 云計算的變革 3
1.1.1 物理機時代 3
1.1.2 虛擬化時代 4
1.1.3 容器化時代 6
1.2 Kubernetes模型設(shè)計 11
1.2.1 對象的通用設(shè)計原則 11
1.2.2 模型設(shè)計 12
1.2.3 核心對象概覽 16
1.2.4 控制器模式 20
1.2.5 控制器的協(xié)同工作原理 23
1.3 Kubernetes核心架構(gòu) 25
1.3.1 核心控制平面組件 26
1.3.2 工作節(jié)點控制平面組件 33
1.3.3 Pod詳解 43
第2章 計算節(jié)點管理 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 容器運行時 71
2.3.4 容器存儲驅(qū)動 77
2.4 節(jié)點資源管理 82
2.4.1 狀態(tài)上報 82
2.4.2 資源預(yù)留 83
2.4.3 驅(qū)逐管理 84
2.4.4 容器和系統(tǒng)資源配置 87
2.5 存儲方案 99
2.5.1 存儲卷插件管理 99
2.5.2 存儲的分類 102
2.6 節(jié)點調(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高可用層級 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ū)動的集群搭建與管理 176
第4章 構(gòu)建企業(yè)級鏡像倉庫 184
4.1 鏡像倉庫綜述 185
4.1.1 鏡像倉庫 185
4.1.2 鏡像管理 187
4.2 企業(yè)級鏡像倉庫 189
4.2.1 架構(gòu)總覽 191
4.2.2 數(shù)據(jù)庫 193
4.2.3 塊存儲 194
4.2.4 鏡像倉庫實例部署 195
4.3 鏡像倉庫緩存 196
4.3.1 鏡像分發(fā)的挑戰(zhàn) 196
4.3.2 鏡像緩存服務(wù)拓撲 198
4.3.3 鏡像緩存流量管理 199
4.3.4 高可用鏡像緩存服務(wù) 199
4.4 鏡像安全 200
4.4.1 鏡像掃描 201
4.4.2 鏡像策略準入控制 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租戶擴展 218
5.2 認證 222
5.2.1 Kubernetes認證 222
5.2.2 用戶認證 225
5.2.3 高負載認證實踐 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é)點隔離 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 租戶配額實踐 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é)議棧工作機制 273
6.3.2 iptables 275
6.3.3 ipset 277
6.3.4 IPVS 278
6.4 負載均衡 280
6.4.1 負載均衡的實現(xiàn)機制 281
6.4.2 負載均衡的技術(shù)實現(xiàn) 283
6.4.3 負載均衡的部署模式 288
6.4.4 負載均衡策略 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實現(xiàn)的流量轉(zhuǎn)發(fā) 300
6.5.4 Service高級特性 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)機制 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 高級功能 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 策略管理和遙測 368
7.6.7 數(shù)據(jù)平面加速 371
7.6.8 優(yōu)勢和挑戰(zhàn) 372
第8章 集群聯(lián)邦 374
8.1 集群聯(lián)邦概覽 377
8.1.1 集群聯(lián)邦設(shè)計 377
8.1.2 集群注冊中心 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)用運維 402
8.3.4 集群聯(lián)邦的局限性與解決方案 409
第9章 邊緣計算 416
9.1 邊緣數(shù)據(jù)中心 417
9.1.1 智能域名服務(wù)(GSLB) 418
9.1.2 邊緣網(wǎng)絡(luò)接入 420
9.1.3 規(guī)劃邊緣計算應(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 未來展望 455
第10章 應(yīng)用落地 456
10.1 應(yīng)用容器化 459
10.1.1 Dockerfile 459
10.1.2 容器化帶來的影響 463
10.2 應(yīng)用接入的*佳實踐 466
10.2.1 資源定義 466
10.2.2 靈活定義Pod 468
10.2.3 應(yīng)用配置 473
10.3 應(yīng)用管理 477
10.3.1 無狀態(tài)應(yīng)用 477
10.3.2 有狀態(tài)應(yīng)用 480
10.3.3 Operator 483
10.4 集群應(yīng)用運維 485
第11章 監(jiān)控和自動修復(fù) 488
11.1 指標監(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)鍵指標定義 503
11.4 自動修復(fù)系統(tǒng) 505
11.4.1 Node Problem Detector 505
11.4.2 自動修復(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 自治跨職能團隊 520
12.3 敏捷開發(fā) 523
12.4 GitOps 529
12.5 質(zhì)量保證 533
Kubernetes生產(chǎn)化實踐之路 節(jié)選
1.2.4 控制器模式 聲明式系統(tǒng)的工作原理是什么?當用戶定義對象的期望狀態(tài)時,Kubernetes通過何種機制確保實際狀態(tài)與期望狀態(tài)*終保持一致?在定義了如此多的對象后,這些對象又是如何聯(lián)動起來,完成一個個業(yè)務(wù)流的呢?秘密就是控制器模式,Kubernetes定義了一系列的控制器,事實上幾乎所有的Kubernetes對象都被一個或數(shù)個控制器所監(jiān)聽,當對象發(fā)生變化時,控制器會捕獲對象變化并完成配置操作。 Kubernetes的功能組件會在后面章節(jié)中展開,但本節(jié)深入理解控制器模式有助于理解Kubernetes的運作機制。API Server是Kubernetes的大腦,保存了所有對象及其狀態(tài)。開源項目client-go對控制器的編寫提供了完備的自動化支持,任何Kubernetes對象都可以由client-go創(chuàng)建供控制器使用的Informer()和Lister()接口。如圖1-6所示,控制器的工作流程就是圍繞著Informer()和Lister()的。 Informer()用于接收資源對象的變化的Event,針對Add、Update和Delete的事件,可以注冊相應(yīng)的EventHandler。在EventHandler內(nèi),根據(jù)傳入的object調(diào)用controller.KeyFunc計算出字符串key,并把它加入控制器的隊列中。 圖1-6 控制器的工作流程 Lister()是給控制器提供主動查詢資源對象的接口,我們根據(jù)labels.Selector來指定篩選條件。 控制器模式是一個標準的生產(chǎn)者-消費者模式。一方面,控制器在啟動后,Informer會監(jiān)聽其所關(guān)注的對象變化。一旦對象發(fā)生了創(chuàng)建、更新和刪除等事件,這些事件會由核心組件API Server推送給控制器。控制器會將對象保存在本地緩存中,并將對象的主鍵推送至消息隊列,此為生產(chǎn)者。 另一方面,控制器會啟動多個工作子線程(Worker),從隊列中依次獲取對象主鍵,并從緩存中讀取完整狀態(tài),按照期望狀態(tài)完成配置更改,并將*終狀態(tài)回寫至API Server,此為消費者。 Kubernetes就是基于此模式保證了整個系統(tǒng)的*終一致性。 Kubernetes運行一組控制器,以使資源的當前狀態(tài)與所需狀態(tài)保持匹配。對于基于事件的體系結(jié)構(gòu),控制器利用事件去觸發(fā)相應(yīng)的自定義代碼,這部分都是由SharedInformer完成的。例如,創(chuàng)建Deployment的控制器的核心代碼如下: kubeInformerFactory := kubeinformers.NewSharedInformerFactory(kubeClient, resyncPeriod) deploymentInformer := kubeInformerFactory.Apps().V1().Deployments() deploymentInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ AddFunc: controller.handleObject, UpdateFunc: func(old, new interface{}) { newDepl := new.(*appsv1.Deployment) oldDepl := old.(*appsv1.Deployment) if newDepl.ResourceVersion == oldDepl.ResourceVersion { return } controller.handleObject(new) }, DeleteFunc: controller.handleObject, }) kubeInformerFactory.Start(stopCh) 具體地,如圖1-7所示,SharedInformer有Reflector、Informer、Indexer和Thread Safe Store四個組件。 Reflector用于監(jiān)聽特定的Kubernetes API資源對象,可以是Kubernetes內(nèi)建的或者是自定義的資源。其具體實現(xiàn)是通過ListAndWatch的方法進行的。首先,Reflector將資源版本號設(shè)置為0,使用List操作獲得指定資源對象,這可能會導(dǎo)致本地的緩存相對于etcd里面的內(nèi)容存在延遲。然后,Reflector通過Watch操作監(jiān)聽到API Server處資源對象的版本號變化,并將*新的數(shù)據(jù)放入Delta FIFO隊列中,使得本地的緩存數(shù)據(jù)與etcd的數(shù)據(jù)保持一致。如果resyncPeriod不為零,那么Reflector會以resyncPeriod為周期定期執(zhí)行Delta FIFO的Resync函數(shù),這樣就可以使Informer定期處理所有的對象。 Informer的內(nèi)部機制是從Delta FIFO隊列中彈出對象,一方面將對象存入本地存儲以供檢索,另一方面觸發(fā)事件以調(diào)用資源事件回調(diào)函數(shù)。控制器后續(xù)的典型模式是獲取資源對象的key,并將該key排入工作隊列以進一步處理。Indexer提供對象的索引功能。 Indexer可以根據(jù)多個索引函數(shù)維護索引。Indexer使用線程安全的數(shù)據(jù)存儲來存儲對象及其鍵。在Store中定義了一個名為MetaNamespaceKeyFunc的默認函數(shù),該函數(shù)生成對象的鍵的格式是/的組合。
Kubernetes生產(chǎn)化實踐之路 作者簡介
孟凡杰 eBay資深架構(gòu)師,負責Kubernetes在企業(yè)落地過程中的架構(gòu)和開發(fā)工作,專注于網(wǎng)絡(luò)、多集群、服務(wù)治理和服務(wù)網(wǎng)格等方向。Kubernetes社區(qū)貢獻者,曾參與社區(qū)集群聯(lián)邦的開發(fā)和服務(wù)控制器重構(gòu)等工作。CNUTCon全球運維大會、GIAC國際互聯(lián)網(wǎng)架構(gòu)大會明星講師。 蘇菲 高級軟件工程師,Kubernetes專家。負責管理eBay Kubernetes云平臺容器運行時及其周邊模塊,熟悉kubelet、CGroup、CNI等模塊。主導(dǎo)eBay持續(xù)集成Pipeline的構(gòu)建、容器運行時從Docker到Containerd的遷移、Minimal OS的管理等。 謝文利 eBay資深軟件工程師,Kubernetes社區(qū)貢獻者,經(jīng)歷了從k8s 1.2開始的眾多版本在大規(guī)模云環(huán)境下的升級和落地,輔助多個大型應(yīng)用往Kubernetes上遷移,深度定制存儲插件調(diào)度等Kubernetes模塊,熱衷于解決容器化過程中碰到的各種問題,專注于Linux內(nèi)核、性能優(yōu)化、存儲、網(wǎng)絡(luò)等方向。 李建強 eBay資深軟件工程師,負責Kubernetes生產(chǎn)化過程中的架構(gòu)和研發(fā)工作。先后負責構(gòu)建企業(yè)級高可用集群、鏡像安全保證(包括鏡像掃描及Kubernetes集成方案)、集群聯(lián)邦的構(gòu)建與管理、云原生多租戶的架構(gòu)設(shè)計與落地等工作。
- >
羅曼·羅蘭讀書隨筆-精裝
- >
朝聞道
- >
大紅狗在馬戲團-大紅狗克里弗-助人
- >
我與地壇
- >
二體千字文
- >
巴金-再思錄
- >
姑媽的寶刀
- >
推拿