定 價:¥89.00
作 者: | 杜軍 著 |
出版社: | 電子工業(yè)出版社 |
叢編項: | |
標 簽: | 暫缺 |
ISBN: | 9787121373398 | 出版時間: | 2019-11-01 | 包裝: | 平裝 |
開本: | 16開 | 頁數(shù): | 348 | 字數(shù): |
第1章夯實基礎(chǔ):Linux網(wǎng)絡(luò)虛擬化 1
1.1 網(wǎng)絡(luò)虛擬化基石:network namespace 1
1.1.1 初識network namespace 2
1.1.2 配置network namespace 3
1.1.3 network namespace API的使用 6
1.1.4 小結(jié) 12
1.2 千呼萬喚始出來:veth pair 12
1.2.1 veth pair內(nèi)核實現(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初體驗 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)一個機會:tun/tap設(shè)備 28
1.4.1 tun/tap設(shè)備的工作原理 28
1.4.2 利用tun設(shè)備部署一個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 初識 Linux 隧道:ipip 45
1.6.1 測試ipip隧道 46
1.6.2 ipip隧道測試結(jié)果復(fù)盤 49
1.6.3 小結(jié) 50
1.7 Linux 隧道網(wǎng)絡(luò)的代表:VXLAN 51
1.7.1 為什么需要VXLAN 51
1.7.2 VXLAN協(xié)議原理簡介 52
1.7.3 VXLAN組網(wǎng)必要信息 54
1.7.4 VXLAN基本配置命令 55
1.7.5 VXLAN網(wǎng)絡(luò)實踐 56
1.7.6 分布式控制中心 63
1.7.7 自維護VTEP組 63
1.7.8 小結(jié) 68
1.8 物理網(wǎng)卡的分身術(shù):Macvlan 68
1.8.1 Macvlan五大工作模式解析 68
1.8.2 測試使用Macvlan設(shè)備 72
1.8.3 Macvlan的跨機通信 73
1.8.4 Macvlan與overlay對比 74
1.8.5 小結(jié) 75
1.9 Macvlan的救護員:IPvlan 75
1.9.1 IPvlan簡介 75
1.9.2 測試IPvlan 77
1.9.3 Docker IPvlan網(wǎng)絡(luò) 78
1.9.4 小結(jié) 78
第2章 飲水思源:Docker網(wǎng)絡(luò)模型簡介 79
2.1 主角登場:Linux容器 79
2.1.1 容器是什么 79
2.1.2 容器與虛擬機對比 80
2.1.3 小結(jié) 81
2.2 打開萬花筒: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ǎng) 84
2.3.4 DNS和主機名 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ò)的第一個標準:CNM 93
2.4.1 CNM標準 93
2.4.2 體驗CNM接口 94
2.4.3 Libnetwork 95
2.4.4 Libnetwork擴展 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)方案沙場點兵 103
2.6.1 隧道方案 104
2.6.2 路由方案 104
2.6.3 容器網(wǎng)絡(luò)組網(wǎng)類型 106
2.6.4 關(guān)于容器網(wǎng)絡(luò)標準接口 107
2.6.5 小結(jié) 108
第 3 章 標準的勝利:Kubernetes 網(wǎng)絡(luò)原理與實踐 109
3.1 容器基礎(chǔ)設(shè)施的代言人:Kubernetes 109
3.1.1 Kubernetes簡介 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主機內(nèi)組網(wǎng)模型 117
3.2.4 Kubernetes跨節(jié)點組網(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ū)動 131
3.4.1 即將完成歷史使命:Kubenet 131
3.4.2 網(wǎng)絡(luò)生態(tài)第一步:CNI 133
3.5 找到你并不容易:從集群內(nèi)訪問服務(wù) 139
3.5.1 Kubernetes Service詳解 141
3.5.2 Service的三個port 145
3.5.3 你的服務(wù)適合哪種發(fā)布形式 146
3.5.4 Kubernetes Service發(fā)現(xiàn) 150
3.5.5 特殊的無頭Service 151
3.5.6 怎么訪問本地服務(wù) 153
3.6 找到你并不容易:從集群外訪問服務(wù) 154
3.6.1 Kubernetes Ingress 155
3.6.2 小結(jié) 157
3.7 你的名字:通過域名訪問服務(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)用保駕護航 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 章 刨根問底:Kubernetes網(wǎng)絡(luò)實現(xiàn)機制 183
4.1 豈止iptables:Kubernetes Service官方實現(xiàn)細節(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一個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)演進之路 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 你的安全我負責:使用Calico提供Kubernetes網(wǎng)絡(luò)策略 220
4.4.1 部署一個帶Calico的Kubernetes集群 221
4.4.2 測試Calico網(wǎng)絡(luò)策略 225
第5章 百花齊放:Kubernetes網(wǎng)絡(luò)插件生態(tài) 228
5.1 從入門到放棄:Docker原生網(wǎng)絡(luò)的不足 228
5.2 CNI標準的勝出:從此江湖沒有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簡介 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簡介 258
5.4.2 Calico的隧道模式 263
5.4.3 安裝Calico 263
5.4.4 Calico報文路徑 264
5.4.5 Calico使用指南 267
5.4.6 為什么Calico網(wǎng)絡(luò)選擇BGP 272
5.4.7 小結(jié) 274
5.5 Weave:支持數(shù)據(jù)加密的網(wǎng)絡(luò)插件 276
5.5.1 Weave簡介 276
5.5.2 Weave實現(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ò)下半場: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典型實現(xiàn)之Linkerd 310
6.2 Istio:引領(lǐng)新一代微服務(wù)架構(gòu)潮流 312
6.2.1 Istio簡介 312
6.2.2 Istio安裝 313
6.2.3 Istio路由規(guī)則的實現(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 自動注入sidecar 327
6.3.5 從應(yīng)用容器到sidecar代理的通信 329
6.4 不再為iptables腳本所困:Istio CNI插件 330
6.5 除了微服務(wù),Istio還能做更多 331