深入理解Kubernetes網(wǎng)絡(luò)系統(tǒng)原理 版權(quán)信息
- ISBN:9787111768579
- 條形碼:9787111768579 ; 978-7-111-76857-9
- 裝幀:平裝-膠訂
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
深入理解Kubernetes網(wǎng)絡(luò)系統(tǒng)原理 本書特色
(1)權(quán)威作者,專業(yè)保障:中興資深架構(gòu)師16年經(jīng)驗(yàn)力作,全面解讀虛擬化網(wǎng)絡(luò)系統(tǒng)精髓。(2)理論全面,兼?zhèn)鋵?shí)戰(zhàn):全面剖析網(wǎng)絡(luò)核心技術(shù)包括通用的虛擬化網(wǎng)絡(luò)技術(shù)、的Linux內(nèi)核原理、基于Docker的跨網(wǎng)絡(luò)命名空間通信解決方案、Kubernetes網(wǎng)絡(luò)通信原理、Kubernetes CNI及glue插件原理等內(nèi)容,理論結(jié)合實(shí)例。(3)輕松入門,全面進(jìn)階:為初中級的網(wǎng)絡(luò)應(yīng)用開發(fā)人員、軟件架構(gòu)師、網(wǎng)絡(luò)管理和運(yùn)維人員量身打造,快速掌握虛擬化網(wǎng)絡(luò)核心技能,實(shí)現(xiàn)技術(shù)進(jìn)階。
深入理解Kubernetes網(wǎng)絡(luò)系統(tǒng)原理 內(nèi)容簡介
這是一本虛擬化網(wǎng)絡(luò)技術(shù)學(xué)習(xí)指南,融合中興架構(gòu)師16年網(wǎng)絡(luò)產(chǎn)品研發(fā)經(jīng)驗(yàn)。從Linux內(nèi)核實(shí)現(xiàn)的視角出發(fā),結(jié)合內(nèi)核源碼,以實(shí)例化的方式講解虛擬化網(wǎng)絡(luò)技術(shù)(包括容器網(wǎng)絡(luò)和Kubernetes網(wǎng)絡(luò)),覆蓋原理及應(yīng)用。
本書適合從事網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)開發(fā)、網(wǎng)絡(luò)運(yùn)維和有一定基礎(chǔ)的技術(shù)愛好者閱讀。使其在理解虛擬化網(wǎng)絡(luò)技術(shù)應(yīng)用的同時,對網(wǎng)絡(luò)背后的工作原理也有充分了解。
本書一共分為三篇。(1)通用網(wǎng)絡(luò)技術(shù),首先介紹虛擬化網(wǎng)絡(luò)中使用到的各種概念和基本技術(shù),接著結(jié)合Linux內(nèi)核源碼講述Linux內(nèi)核是如何實(shí)現(xiàn)這些網(wǎng)絡(luò)技術(shù)的,包括Linux內(nèi)核的收發(fā)報文流程、路由選路原理和虛擬化網(wǎng)絡(luò)設(shè)備的工作原理。(2)容器網(wǎng)絡(luò)技術(shù),首先介紹Linux的網(wǎng)絡(luò)命名空間,接著分別介紹docker和Kubernetes兩種模式下容器網(wǎng)絡(luò)的工作原理。(3)Kubernetes網(wǎng)絡(luò)插件原理,介紹Kubernetes網(wǎng)絡(luò)插件的工作原理,之后綜合全書講述的技術(shù),實(shí)現(xiàn)Kubernetes網(wǎng)絡(luò)插件,達(dá)成優(yōu)化Kubernetes網(wǎng)絡(luò)的目的。
深入理解Kubernetes網(wǎng)絡(luò)系統(tǒng)原理深入理解Kubernetes網(wǎng)絡(luò)系統(tǒng)原理 前言
前 言
為什么寫本書
隨著虛擬化技術(shù)的快速發(fā)展,越來越多的公司選擇將產(chǎn)品從本地機(jī)房遷移到云端運(yùn)行,而這些產(chǎn)品無一例外都是通過網(wǎng)絡(luò)對外提供服務(wù)的。為了能更好地應(yīng)用網(wǎng)絡(luò)通信技術(shù),我們有必要了解虛擬化網(wǎng)絡(luò)背后的運(yùn)作機(jī)制,理解各網(wǎng)絡(luò)組件的工作原理及特性,并將理論知識應(yīng)用到產(chǎn)品開發(fā)中,提升產(chǎn)品質(zhì)量。
目前市面上既有很多講述網(wǎng)絡(luò)技術(shù)理論的著作,也有很多講述虛擬化網(wǎng)絡(luò)應(yīng)用的書籍。前者更多專注于網(wǎng)絡(luò)協(xié)議、組網(wǎng)等技術(shù)細(xì)節(jié),偏重于理論;后者則從使用者的角度出發(fā)講述如何使用虛擬化網(wǎng)絡(luò)。這兩類書籍對于運(yùn)維和一般的技術(shù)人員來說基本夠用,但是對于專門從事虛擬化網(wǎng)絡(luò)技術(shù)開發(fā)、設(shè)計(jì)的人員來說,這些書的深度遠(yuǎn)遠(yuǎn)不夠。本書期望在這兩類書籍之間取得平衡:結(jié)合實(shí)際應(yīng)用講述虛擬化網(wǎng)絡(luò)技術(shù)背后的工作原理,讓讀者不僅知道該如何使用虛擬化網(wǎng)絡(luò),還知道為什么要這樣用。
本書從內(nèi)核實(shí)現(xiàn)的角度出發(fā)分析虛擬化網(wǎng)絡(luò)的工作原理,重點(diǎn)描述其功能的實(shí)現(xiàn),使讀者從根本上理解虛擬化網(wǎng)絡(luò)原理,對于希望深入研究虛擬化網(wǎng)絡(luò)技術(shù)的讀者來說有較高的閱讀價值。軟件技術(shù)屬于系統(tǒng)性的工程,一個人如果既了解內(nèi)核網(wǎng)絡(luò)的實(shí)現(xiàn)原理,又熟悉應(yīng)用軟件的業(yè)務(wù)場景,無疑就可以從全局的角度思考產(chǎn)品的解決方案,做出*合理的選擇。
深入理解Kubernetes網(wǎng)絡(luò)系統(tǒng)原理 目錄
目 錄
前 言
**篇 通用網(wǎng)絡(luò)技術(shù)
第1章 網(wǎng)絡(luò)通信基礎(chǔ) 3
1.1 網(wǎng)絡(luò)設(shè)備與接口 3
1.1.1 設(shè)備地址 4
1.1.2 接口別名 6
1.1.3 子接口 7
1.2 路由 8
1.2.1 路由條目 9
1.2.2 路由表 10
1.2.3 路由配置:通用路由管理 13
1.2.4 路由配置:策略路由管理 23
1.3 網(wǎng)絡(luò)地址轉(zhuǎn)換 27
1.4 Netf?ilter/iptables 29
1.4.1 iptables掛載點(diǎn)和鏈 31
1.4.2 iptables表 32
1.4.3 iptables命令 39
1.4.4 iptables應(yīng)用 41
1.5 總結(jié) 44
第2章 Linux內(nèi)核網(wǎng)絡(luò) 45
2.1 Linux網(wǎng)絡(luò)協(xié)議棧 45
2.2 從socket編程開始 48
2.2.1 UDP服務(wù)端源碼 48
2.2.2 UDP服務(wù)端源碼分析 50
2.3 內(nèi)核接收報文流程 56
2.3.1 硬件設(shè)備接收報文 56
2.3.2 中斷處理下半部 66
2.3.3 IP協(xié)議層處理 72
2.3.4 UDP協(xié)議層處理 78
2.3.5 用戶進(jìn)程接收報文 80
2.3.6 接收報文中斷的親和性設(shè)置 82
2.3.7 報文接收流程總結(jié) 83
2.4 內(nèi)核發(fā)送報文流程 83
2.4.1 用戶進(jìn)程發(fā)送報文 83
2.4.2 系統(tǒng)調(diào)用 84
2.4.3 UDP協(xié)議層處理 85
2.4.4 IP協(xié)議層處理 88
2.4.5 鄰居子系統(tǒng) 92
2.4.6 設(shè)備子系統(tǒng) 97
2.4.7 硬件設(shè)備發(fā)送報文 100
2.4.8 發(fā)送完成中斷 104
2.4.9 報文發(fā)送流程總結(jié) 105
2.5 總結(jié) 105
第3章 Linux內(nèi)核路由系統(tǒng) 107
3.1 路由表組織 107
3.2 關(guān)鍵數(shù)據(jù)結(jié)構(gòu) 111
3.3 路由查找算法 116
3.3.1 正向匹配過程 116
3.3.2 路由回溯過程 119
3.4 路由管理 123
3.5 總結(jié) 124
第4章 Linux虛擬網(wǎng)絡(luò)設(shè)備 125
4.1 網(wǎng)絡(luò)命名空間原理 125
4.1.1 命名空間概述 126
4.1.2 網(wǎng)絡(luò)命名空間 127
4.1.3 網(wǎng)絡(luò)命名空間管理 140
4.2 基本網(wǎng)絡(luò)設(shè)備 148
4.2.1 網(wǎng)橋 148
4.2.2 虛擬網(wǎng)卡對 158
4.2.3 macvlan設(shè)備 165
4.2.4 ipvlan設(shè)備 180
4.3 總結(jié) 194
第二篇 容器網(wǎng)絡(luò)技術(shù)原理
第5章 網(wǎng)絡(luò)命名空間通信 197
5.1 “網(wǎng)橋 虛擬網(wǎng)卡對”方案 197
5.1.1 主機(jī)內(nèi)跨網(wǎng)絡(luò)命名空間通信 199
5.1.2 跨主機(jī)網(wǎng)絡(luò)通信 203
5.2 macvlan方案 205
5.2.1 主機(jī)內(nèi)跨網(wǎng)絡(luò)命名空間通信 207
5.2.2 跨主機(jī)網(wǎng)絡(luò)通信 209
5.3 ipvlan方案 209
5.3.1 ipvlan L2工作模式 210
5.3.2 ipvlan L3工作模式 212
5.4 總結(jié) 214
第6章 容器網(wǎng)絡(luò) 215
6.1 Docker網(wǎng)絡(luò)模型 216
6.2 Docker網(wǎng)絡(luò)配置 219
6.3 bridge方案網(wǎng)絡(luò)通信原理 222
6.3.1 同主機(jī)的容器間通信 222
6.3.2 容器內(nèi)訪問主機(jī)外部網(wǎng)絡(luò) 225
6.3.3 容器對外部網(wǎng)絡(luò)提供服務(wù) 227
6.3.4 容器直接對外提供服務(wù) 231
6.3.5 跨主機(jī)容器間通信 233
6.3.6 跨主機(jī)網(wǎng)絡(luò)通信原理 242
6.4 macvlan方案 247
6.4.1 網(wǎng)絡(luò)配置 248
6.4.2 容器間通信 249
6.4.3 宿主機(jī)訪問容器網(wǎng)絡(luò) 250
6.5 ipvlan方案 251
6.5.1 ipvlan L2模式 251
6.5.2 ipvlan L3模式 251
6.6 總結(jié) 254
第7章 Kubernetes網(wǎng)絡(luò) 255
7.1 Kubernetes基礎(chǔ) 257
7.1.1 軟件架構(gòu) 257
7.1.2 基本概念 258
7.2 Kubernetes運(yùn)行環(huán)境 262
7.2.1 準(zhǔn)備運(yùn)行環(huán)境 263
7.2.2 網(wǎng)絡(luò)配置 267
7.2.3 創(chuàng)建pod和服務(wù) 270
7.3 Pod網(wǎng)絡(luò) 273
7.3.1 網(wǎng)絡(luò)環(huán)境 274
7.3.2 pod訪問本集群其他節(jié)點(diǎn)的pod 276
7.3.3 pod訪問集群節(jié)點(diǎn)應(yīng)用 281
7.3.4 集群節(jié)點(diǎn)應(yīng)用訪問pod服務(wù) 283
7.3.5 Pod網(wǎng)絡(luò)通信總結(jié) 284
7.4 Service網(wǎng)絡(luò) 285
7.4.1 kube-proxy轉(zhuǎn)發(fā)模式 286
7.4.2 在pod中訪問服務(wù) 288
7.4.3 集群節(jié)點(diǎn)應(yīng)用訪問服務(wù) 296
7.4.4 從集群外部訪問服務(wù) 299
7.4.5 ipvs模式 303
7.5 Ingress網(wǎng)絡(luò) 304
7.5.1 Ingress資源 305
7.5.2 Nginx Ingress控制器原理 307
7.5.3 部署Nginx Ingress 309
7.5.4 實(shí)例化驗(yàn)證Ingress控制器功能 312
7.5.5 Nginx Ingress轉(zhuǎn)發(fā)原理 316
7.6 總結(jié) 318
第三篇 Kubernetes網(wǎng)絡(luò)插件原理
第8章 CNI網(wǎng)絡(luò)插件原理及實(shí)踐 321
8.1 CNI插件規(guī)范 321
8.1.1 配置文件格式 322
8.1.2 插件程序列表 323
8.1.3 插件運(yùn)行參數(shù) 324
8.1.4 委托執(zhí)行 325
8.1.5 插件執(zhí)行 325
8.2 CNI插件實(shí)踐 327
8.2.1 CNI插件管理網(wǎng)絡(luò)命名空間配置 327
8.2.2 容器網(wǎng)絡(luò)使用CNI插件 331
8.3 Kubernetes調(diào)用CNI插件 333
8.4 Kubernetes使用f?lannel插件 334
8.4.1 部署f?lannel 334
8.4.2 f?lannel配置 335
8.4.3 f?lannel插件 341
8.5 Kubernetes使用macvlan插件 345
8.5.1 CNI配置文件 346
8.5.2 配置宿主機(jī)網(wǎng)絡(luò) 349
8.5.3 訪問服務(wù)網(wǎng)絡(luò) 351
8.5.4 pod內(nèi)訪問服務(wù)地址 352
8.6 Kubernetes使用ipvlan插件 355
8.6.1 準(zhǔn)備CNI配置文件 359
8.6.2 宿主機(jī)網(wǎng)絡(luò)配置 360
8.6.3 Pod網(wǎng)絡(luò)配置 361
8.6.4 訪問服務(wù)網(wǎng)絡(luò) 361
8.6.5 訪問服務(wù)網(wǎng)絡(luò)分析 362
8.7 總結(jié) 363
第9章 動手實(shí)現(xiàn)CNI插件 364
9.1 總體設(shè)計(jì) 365
9.1.1 總體流程 365
9.1.2 地址段規(guī)劃 365
9.2 使用glue插件 368
9.2.1 macvlan模式 368
9.2.2 ipvlan模式 370
9.3 glue工程說明 373
9.3.1 編譯工程 374
9.3.2 部署文件說明 375
9.4 glued源碼分析 379
9.4.1 生成配置文件 381
9.4.2 節(jié)點(diǎn)網(wǎng)絡(luò)配置 391
9.4.3 glued開發(fā)總結(jié) 399
9.5 glue插件源碼分析 399
9.5.1 CNI插件開發(fā)框架 399
9.5.2 CNI插件ADD操作 400
9.5.3 CNI插件DEL操作 408
9.5.4 插件開發(fā)總結(jié) 409
9.6 總結(jié) 410
附 錄
附錄A mount用法說明 413
附錄B pod網(wǎng)絡(luò)命名空間程序 420
附錄C CNI插件測試程序 422
附錄D 測試工具rawudp程序 426
深入理解Kubernetes網(wǎng)絡(luò)系統(tǒng)原理 作者簡介
韓相國
中興通訊核心網(wǎng)產(chǎn)品系統(tǒng)架構(gòu)師,從事移動核心網(wǎng)網(wǎng)絡(luò)產(chǎn)品研發(fā)16余年,具備大規(guī)模復(fù)雜通信軟件系統(tǒng)架構(gòu)設(shè)計(jì)經(jīng)驗(yàn),對Linux內(nèi)核、虛擬化網(wǎng)絡(luò)、容器化網(wǎng)絡(luò)(包括Kubernetes 網(wǎng)絡(luò))、云原生等領(lǐng)域有較深的理論研究和實(shí)戰(zhàn)經(jīng)驗(yàn)。
自2004年畢業(yè)以來,一直從事技術(shù)領(lǐng)域研發(fā)工作。在中興通訊工作期間,先后從事過移動核心網(wǎng)網(wǎng)關(guān)產(chǎn)品的系統(tǒng)設(shè)計(jì)與開發(fā)、網(wǎng)元產(chǎn)品運(yùn)維系統(tǒng)的設(shè)計(jì)與開發(fā)、核心網(wǎng)產(chǎn)品向云原生演進(jìn)的預(yù)研等工作,目前主要從事核心網(wǎng)網(wǎng)元平臺的系統(tǒng)設(shè)計(jì)工作。在加入中興之前,曾從事多年的嵌入式系統(tǒng)軟硬件研發(fā),負(fù)責(zé)ARM平臺下基于嵌入式Linux的系統(tǒng)硬件設(shè)計(jì)和軟件設(shè)計(jì)工作。
- >
隨園食單
- >
小考拉的故事-套裝共3冊
- >
人文閱讀與收藏·良友文學(xué)叢書:一天的工作
- >
巴金-再思錄
- >
經(jīng)典常談
- >
詩經(jīng)-先民的歌唱
- >
名家?guī)阕x魯迅:朝花夕拾
- >
月亮虎