定 價(jià):¥89.00
作 者: | 杜軍 著 |
出版社: | 電子工業(yè)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787121373398 | 出版時(shí)間: | 2019-11-01 | 包裝: | 平裝 |
開(kāi)本: | 16開(kāi) | 頁(yè)數(shù): | 348 | 字?jǐn)?shù): |
第1章夯實(shí)基礎(chǔ):Linux網(wǎng)絡(luò)虛擬化 1
1.1 網(wǎng)絡(luò)虛擬化基石:network namespace 1
1.1.1 初識(shí)network namespace 2
1.1.2 配置network namespace 3
1.1.3 network namespace API的使用 6
1.1.4 小結(jié) 12
1.2 千呼萬(wàn)喚始出來(lái):veth pair 12
1.2.1 veth pair內(nèi)核實(shí)現(xiàn) 14
1.2.2 容器與host veth pair的關(guān)系 15
1.2.3 小結(jié) 17
1.3 連接你我他:Linux bridge 17
1.3.1 Linux bridge初體驗(yàn) 17
1.3.2 把IP讓給Linux bridge 21
1.3.3 將物理網(wǎng)卡添加到Linux bridge 22
1.3.4 Linux bridge在網(wǎng)絡(luò)虛擬化中的應(yīng)用 25
1.3.5 網(wǎng)絡(luò)接口的混雜模式 26
1.4 給用戶態(tài)一個(gè)機(jī)會(huì):tun/tap設(shè)備 28
1.4.1 tun/tap設(shè)備的工作原理 28
1.4.2 利用tun設(shè)備部署一個(gè)VPN 29
1.4.3 tun設(shè)備編程 31
1.5 iptables 34
1.5.1 祖師爺netfilter 34
1.5.2 iptables的三板斧:table、chain和rule 36
1.5.3 iptables的常規(guī)武器 39
1.6 初識(shí) Linux 隧道:ipip 45
1.6.1 測(cè)試ipip隧道 46
1.6.2 ipip隧道測(cè)試結(jié)果復(fù)盤(pán) 49
1.6.3 小結(jié) 50
1.7 Linux 隧道網(wǎng)絡(luò)的代表:VXLAN 51
1.7.1 為什么需要VXLAN 51
1.7.2 VXLAN協(xié)議原理簡(jiǎn)介 52
1.7.3 VXLAN組網(wǎng)必要信息 54
1.7.4 VXLAN基本配置命令 55
1.7.5 VXLAN網(wǎng)絡(luò)實(shí)踐 56
1.7.6 分布式控制中心 63
1.7.7 自維護(hù)VTEP組 63
1.7.8 小結(jié) 68
1.8 物理網(wǎng)卡的分身術(shù):Macvlan 68
1.8.1 Macvlan五大工作模式解析 68
1.8.2 測(cè)試使用Macvlan設(shè)備 72
1.8.3 Macvlan的跨機(jī)通信 73
1.8.4 Macvlan與overlay對(duì)比 74
1.8.5 小結(jié) 75
1.9 Macvlan的救護(hù)員:IPvlan 75
1.9.1 IPvlan簡(jiǎn)介 75
1.9.2 測(cè)試IPvlan 77
1.9.3 Docker IPvlan網(wǎng)絡(luò) 78
1.9.4 小結(jié) 78
第2章 飲水思源:Docker網(wǎng)絡(luò)模型簡(jiǎn)介 79
2.1 主角登場(chǎng):Linux容器 79
2.1.1 容器是什么 79
2.1.2 容器與虛擬機(jī)對(duì)比 80
2.1.3 小結(jié) 81
2.2 打開(kāi)萬(wàn)花筒:Docker的四大網(wǎng)絡(luò)模式 81
2.2.1 bridge模式 82
2.2.2 host模式 83
2.2.3 container模式 84
2.2.4 none模式 85
2.3 最常用的Docker網(wǎng)絡(luò)技巧 85
2.3.1 查看容器IP 85
2.3.2 端口映射 86
2.3.3 訪問(wèn)外網(wǎng) 84
2.3.4 DNS和主機(jī)名 87
2.3.5 自定義網(wǎng)絡(luò) 88
2.3.6 發(fā)布服務(wù) 90
2.3.7 docker link:兩兩互聯(lián) 91
2.4 容器網(wǎng)絡(luò)的第一個(gè)標(biāo)準(zhǔn):CNM 93
2.4.1 CNM標(biāo)準(zhǔn) 93
2.4.2 體驗(yàn)CNM接口 94
2.4.3 Libnetwork 95
2.4.4 Libnetwork擴(kuò)展 97
2.4.5 小結(jié) 98
2.5 天生不易:容器組網(wǎng)的挑戰(zhàn) 99
2.5.1 容器網(wǎng)絡(luò)挑戰(zhàn)綜述 99
2.5.2 Docker的解決方案 101
2.5.3 第三方容器網(wǎng)絡(luò)插件 102
2.5.4 小結(jié) 103
2.6 如何做好技術(shù)選型:容器組網(wǎng)方案沙場(chǎng)點(diǎn)兵 103
2.6.1 隧道方案 104
2.6.2 路由方案 104
2.6.3 容器網(wǎng)絡(luò)組網(wǎng)類(lèi)型 106
2.6.4 關(guān)于容器網(wǎng)絡(luò)標(biāo)準(zhǔn)接口 107
2.6.5 小結(jié) 108
第 3 章 標(biāo)準(zhǔn)的勝利:Kubernetes 網(wǎng)絡(luò)原理與實(shí)踐 109
3.1 容器基礎(chǔ)設(shè)施的代言人:Kubernetes 109
3.1.1 Kubernetes簡(jiǎn)介 109
3.1.2 Kubernetes能做什么 111
3.1.3 如何用Kubernetes 113
3.1.4 Docker在Kubernetes中的角色 113
3.2 終于等到你:Kubernetes網(wǎng)絡(luò) 114
3.2.1 Kubernetes網(wǎng)絡(luò)基礎(chǔ) 114
3.2.2 Kubernetes網(wǎng)絡(luò)架構(gòu)綜述 115
3.2.3 Kubernetes主機(jī)內(nèi)組網(wǎng)模型 117
3.2.4 Kubernetes跨節(jié)點(diǎn)組網(wǎng)模型 118
3.2.5 Pod的hosts文件 120
3.2.6 Pod的hostname 121
3.3 Pod的核心:pause容器 124
3.4 打通CNI與Kubernetes:Kubernetes網(wǎng)絡(luò)驅(qū)動(dòng) 131
3.4.1 即將完成歷史使命:Kubenet 131
3.4.2 網(wǎng)絡(luò)生態(tài)第一步:CNI 133
3.5 找到你并不容易:從集群內(nèi)訪問(wèn)服務(wù) 139
3.5.1 Kubernetes Service詳解 141
3.5.2 Service的三個(gè)port 145
3.5.3 你的服務(wù)適合哪種發(fā)布形式 146
3.5.4 Kubernetes Service發(fā)現(xiàn) 150
3.5.5 特殊的無(wú)頭Service 151
3.5.6 怎么訪問(wèn)本地服務(wù) 153
3.6 找到你并不容易:從集群外訪問(wèn)服務(wù) 154
3.6.1 Kubernetes Ingress 155
3.6.2 小結(jié) 157
3.7 你的名字:通過(guò)域名訪問(wèn)服務(wù) 158
3.7.1 DNS服務(wù)基本框架 158
3.7.2 域名解析基本原理 159
3.7.3 DNS使用 161
3.7.4 調(diào)試DNS 166
3.8 Kubernetes網(wǎng)絡(luò)策略:為你的應(yīng)用保駕護(hù)航 167
3.8.1 網(wǎng)絡(luò)策略應(yīng)用舉例 168
3.8.2 小結(jié) 172
3.9 前方高能:Kubernetes網(wǎng)絡(luò)故障定位指南 173
3.9.1 IP轉(zhuǎn)發(fā)和橋接 173
3.9.2 Pod CIDR沖突 175
3.9.3 hairpin 176
3.9.4 查看Pod IP地址 176
3.9.5 故障排查工具 178
3.9.6 為什么不推薦使用SNAT 180
第 4 章 刨根問(wèn)底:Kubernetes網(wǎng)絡(luò)實(shí)現(xiàn)機(jī)制 183
4.1 豈止iptables:Kubernetes Service官方實(shí)現(xiàn)細(xì)節(jié)探秘 183
4.1.1 userspace模式 184
4.1.2 iptables模式 186
4.1.3 IPVS模式 191
4.1.4 iptables VS. IPVS 198
4.1.5 conntrack 199
4.1.6 小結(jié) 200
4.2 Kubernetes極客們的日常:DIY一個(gè)Ingress Controller 201
4.2.1 Ingress Controller的通用框架 202
4.2.2 Nginx Ingress Controller詳解 202
4.2.3 小結(jié) 209
4.3 滄海桑田:Kubernetes DNS架構(gòu)演進(jìn)之路 209
4.3.1 Kube-dns的工作原理 209
4.3.2 上位的CoreDNS 212
4.3.3 Kube-dns VS. CoreDNS 217
4.3.4 小結(jié) 220
4.4 你的安全我負(fù)責(zé):使用Calico提供Kubernetes網(wǎng)絡(luò)策略 220
4.4.1 部署一個(gè)帶Calico的Kubernetes集群 221
4.4.2 測(cè)試Calico網(wǎng)絡(luò)策略 225
第5章 百花齊放:Kubernetes網(wǎng)絡(luò)插件生態(tài) 228
5.1 從入門(mén)到放棄:Docker原生網(wǎng)絡(luò)的不足 228
5.2 CNI標(biāo)準(zhǔn)的勝出:從此江湖沒(méi)有CNM 229
5.2.1 CNI與CNM的轉(zhuǎn)換 230
5.2.2 CNI的工作原理 231
5.2.3 為什么Kubernetes不使用Libnetwork 235
5.3 Kubernetes網(wǎng)絡(luò)插件鼻祖flannel 238
5.3.1 flannel簡(jiǎn)介 239
5.3.2 flannel安裝配置 241
5.3.3 flannel backend詳解 244
5.3.4 flannel與etcd 256
5.3.5 小結(jié) 257
5.4 全能大三層網(wǎng)絡(luò)插件:Calico 257
5.4.1 Calico簡(jiǎn)介 258
5.4.2 Calico的隧道模式 263
5.4.3 安裝Calico 263
5.4.4 Calico報(bào)文路徑 264
5.4.5 Calico使用指南 267
5.4.6 為什么Calico網(wǎng)絡(luò)選擇BGP 272
5.4.7 小結(jié) 274
5.5 Weave:支持?jǐn)?shù)據(jù)加密的網(wǎng)絡(luò)插件 276
5.5.1 Weave簡(jiǎn)介 276
5.5.2 Weave實(shí)現(xiàn)原理 277
5.5.3 Weave安裝 278
5.5.4 Weave網(wǎng)絡(luò)通信模型 280
5.5.5 Weave的應(yīng)用示例 282
5.5.6 小結(jié) 288
5.6 Cilium:為微服務(wù)網(wǎng)絡(luò)連接安全而生 288
5.6.1 為什么使用Cilium 289
5.6.2 以API為中心的微服務(wù)安全 294
5.6.3 BPF優(yōu)化的數(shù)據(jù)平面性能 295
5.6.4 試用Cilium:網(wǎng)絡(luò)策略 297
5.6.5 小結(jié) 299
5.7 Kubernetes多網(wǎng)絡(luò)的先行者:CNI-Genie 299
5.7.1 為什么需要CNI-Genie 300
5.7.2 CNI-Genie功能速遞 302
5.7.3 容器多IP 303
第6章 Kubernetes網(wǎng)絡(luò)下半場(chǎng):Istio 305
6.1 微服務(wù)架構(gòu)的大地震:sidecar模式 305
6.1.1 你真的需要 Service Mesh嗎 306
6.1.2 sidecar模式 307
6.1.3 Service Mesh與sidecar 307
6.1.4 Kubernetes Service VS. Service Mesh 309
6.1.5 Service Mesh典型實(shí)現(xiàn)之Linkerd 310
6.2 Istio:引領(lǐng)新一代微服務(wù)架構(gòu)潮流 312
6.2.1 Istio簡(jiǎn)介 312
6.2.2 Istio安裝 313
6.2.3 Istio路由規(guī)則的實(shí)現(xiàn) 317
6.3 一切盡在不言中:Istio sidecar透明注入 319
6.3.1 Init容器 319
6.3.2 sideca注入示例 319
6.3.3 手工注入sidecar 326
6.3.4 自動(dòng)注入sidecar 327
6.3.5 從應(yīng)用容器到sidecar代理的通信 329
6.4 不再為iptables腳本所困:Istio CNI插件 330
6.5 除了微服務(wù),Istio還能做更多 331