搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Kubernetes网络权威指南:基础、原理与实践
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121373398
  • 作      者:
    杜军著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2019
收藏
编辑推荐

Kubernetes网络*威指南,云原生时代的底层网络模型、实现、企业落地选型必备!

展开
作者简介

杜军,浙大SEL实验室硕士,曾任华为云架构师、咨询组专家,容器技术布道师。开源社区自身贡献者与维护着,CNCF TOC Contributor,Kubernetes和Istio双科maintainer,对云计算技术演进与内在驱动力有深刻见解,主要研究方向为容器、微服务、DevOps、边缘计算。

展开
内容介绍

本书是容器与Kubernetes网络的基础和进阶书籍,旨在让更多人了解和学习云原生时代的底层网络模型与实现机制,指导企业在落地云原生时的网络方案选型。

全书共6章,第1章 Linux网络虚拟化将支撑容器网络的内核技术娓娓道来,第2章简单介绍了Docker网络模型,第3章介绍Kubernetes网络原理与实践,第4章剖析了Kubernetes网络实现机制,第5章详解了业界主流的Kubernetes网络插件生态,第6章重点解析了Istio网络流量管控的背后机制。


展开
精彩书评
  网络是Kubernetes技术体系中复杂的一环,也体现了Kubernetes独特的设计理念。本书作者杜军曾是华为云原生团队核心成员,多个Kubernetes社区网络特性的贡献者与维护者。本书内容涵盖Kubernetes基础容器网络,4/7层服务发现、路由与注册管理,以及与服务网格的配合等方面内容,是不可多得的Kubernetes网络专著,推荐大家阅读。
  ——华为云容器服务总经理,方璞

  在Kubernetes技术体系飞速发展的过程中,其在弹性、可用性及可维护性方面日趋成熟,同时在敏捷性、提升研发效率和降低系统复杂度方面也表现卓越。敏捷开发、基础设施服务化、DevOps、ContainerOps深度融合,这就让普通开发者也可以快速地进入软件的构建中,可以让企业更多地将精力聚焦在应用层逻辑开发中。杜军是云原生技术的拥护者,Kubernetes社区核心成员,Kubernetes核心组件、网络服务的主要代码贡献者和维护者之一,也是一位优秀的技术分享者。本书对Kubernetes生态中颇为复杂的网络体系,从底层基础原理、概念、理论、关键技术点,到容器网络标准、模型、选型及实践,进行了深入浅出的论述,值得各位技术从业者仔细阅读和思考。
  ——神州优车技术总监,黄强元

  本书内容贯穿了整个虚拟网络演化历程,不仅探讨了容器网络和Kubernetes网络模型,更从底层原理到生产实践、再到源码解析和故障排查,层层递进,全方位、全视角地展现了整个云原生网络知识体系。容器、etcd、Kubernetes及istio是云原生技术生态的基石,本书作者杜军任Kubernetes和Istio项目的maintainer,为这些技术的发展做出了突出贡献。他也是多部畅销云原生技术书籍的作者,是业界认可的云原生技术专家。相信本书能给广大读者带来全新的知识体验,提供一场云原生技术全貌的饕餮盛宴。
  ——北京虚云科技总经理,易宝支付前资深架构师,李大伟

  云原生容器技术经过多年的进化和积累,已经被业界广泛认可,基于容器的技术和方案百花齐放,而网络也成为容器技术里难以攻克的一个领域。杜军对容器和虚拟化网络有深入的探索和实战经验,本书从虚拟化网络模型、协议、服务网格、DNS、网络策略、网络插件生态等方面进行了系统且深入的讲解,是虚拟化网络技术领域技术爱好者的一把利器。
  ——西雅图华为云计算研究所资深架构师,谢海滨

  自从Kubernetes被公认为构建平台的平台,无论是上游开源社区还是终端用户都将越来越多的注意力集中到编排层之上的技术创新。从Istio到Knative,再到OpenKruise,令人兴奋的技术创新层出不穷。而本书主题却有些“反流行”,用三百多页篇幅,从network namespace一直讲到Docker、Kubernetes网络模型和实现,从底层基础原理讲起,帮助开源技术的爱好者和使用者厘清当下主流容器网络标准及技术背后的机理,为技术选型和落地提供切实有用的帮助和指导,是对业界当前重上层创新的趋势的一个很好的补充。
  ——浙江大学计算机系博士  谐云首席科学家,丁轶群
展开
目录

第1章夯实基础:Linux网络虚拟化 1

1.1 网络虚拟化基石: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 小结   12

1.2 千呼万唤始出来:veth pair    12

1.2.1 veth pair内核实现     14

1.2.2 容器与host veth pair的关系     15

1.2.3 小结   17

1.3 连接你我他:Linux bridge     17

1.3.1 Linux bridge初体验    17

1.3.2 把IP让给Linux bridge   21

1.3.3 将物理网卡添加到Linux bridge    22

1.3.4 Linux bridge在网络虚拟化中的应用    25

1.3.5 网络接口的混杂模式     26

1.4 给用户态一个机会:tun/tap设备    28

1.4.1 tun/tap设备的工作原理  28

1.4.2 利用tun设备部署一个VPN    29

1.4.3 tun设备编程       31

1.5 iptables    34

1.5.1 祖师爷netfilter     34

1.5.2 iptables的三板斧:table、chain和rule    36

1.5.3 iptables的常规武器    39

1.6 初识 Linux 隧道:ipip     45

1.6.1 测试ipip隧道      46

1.6.2 ipip隧道测试结果复盘   49

1.6.3 小结   50

1.7 Linux 隧道网络的代表:VXLAN       51

1.7.1 为什么需要VXLAN      51

1.7.2 VXLAN协议原理简介   52

1.7.3 VXLAN组网必要信息   54

1.7.4 VXLAN基本配置命令   55

1.7.5 VXLAN网络实践     56

1.7.6 分布式控制中心    63

1.7.7 自维护VTEP组    63

1.7.8 小结   68

1.8 物理网卡的分身术:Macvlan    68

1.8.1 Macvlan五大工作模式解析     68

1.8.2 测试使用Macvlan设备   72

1.8.3 Macvlan的跨机通信      73

1.8.4 Macvlan与overlay对比     74

1.8.5 小结   75

1.9 Macvlan的救护员:IPvlan    75

1.9.1 IPvlan简介     75

1.9.2 测试IPvlan     77

1.9.3 Docker IPvlan网络     78

1.9.4 小结   78


第2章 饮水思源:Docker网络模型简介 79

2.1 主角登场:Linux容器    79

2.1.1 容器是什么   79

2.1.2 容器与虚拟机对比    80

2.1.3 小结   81

2.2 打开万花筒:Docker的四大网络模式   81

2.2.1 bridge模式    82

2.2.2 host模式    83

2.2.3 container模式    84

2.2.4 none模式   85

2.3 最常用的Docker网络技巧    85

2.3.1 查看容器IP    85

2.3.2 端口映射    86

2.3.3 访问外网   84

2.3.4 DNS和主机名    87

2.3.5 自定义网络  88

2.3.6 发布服务    90

2.3.7 docker link:两两互联   91

2.4 容器网络的第一个标准: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 小结   98

2.5 天生不易:容器组网的挑战   99

2.5.1 容器网络挑战综述    99

2.5.2 Docker的解决方案    101

2.5.3 第三方容器网络插件   102

2.5.4 小结   103

2.6 如何做好技术选型:容器组网方案沙场点兵   103

2.6.1 隧道方案    104

2.6.2 路由方案    104

2.6.3 容器网络组网类型    106

2.6.4 关于容器网络标准接口  107

2.6.5 小结   108


第 3 章 标准的胜利:Kubernetes 网络原理与实践 109

3.1 容器基础设施的代言人: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网络  114

3.2.1 Kubernetes网络基础   114

3.2.2 Kubernetes网络架构综述    115

3.2.3 Kubernetes主机内组网模型     117

3.2.4 Kubernetes跨节点组网模型     118

3.2.5 Pod的hosts文件   120

3.2.6 Pod的hostname    121

3.3 Pod的核心:pause容器    124

3.4 打通CNI与Kubernetes:Kubernetes网络驱动   131

3.4.1 即将完成历史使命:Kubenet   131

3.4.2 网络生态第一步:CNI   133

3.5 找到你并不容易:从集群内访问服务   139

3.5.1 Kubernetes Service详解  141

3.5.2 Service的三个port   145

3.5.3 你的服务适合哪种发布形式    146

3.5.4 Kubernetes Service发现  150

3.5.5 特殊的无头Service    151

3.5.6 怎么访问本地服务    153

3.6 找到你并不容易:从集群外访问服务   154

3.6.1 Kubernetes Ingress   155

3.6.2 小结   157

3.7 你的名字:通过域名访问服务   158

3.7.1 DNS服务基本框架    158

3.7.2 域名解析基本原理    159

3.7.3 DNS使用   161

3.7.4 调试DNS   166

3.8 Kubernetes网络策略:为你的应用保驾护航    167

3.8.1 网络策略应用举例    168

3.8.2 小结   172

3.9 前方高能:Kubernetes网络故障定位指南   173

3.9.1 IP转发和桥接   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网络实现机制 183

4.1 岂止iptables:Kubernetes Service官方实现细节探秘     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 小结  200

4.2 Kubernetes极客们的日常:DIY一个Ingress Controller   201

4.2.1 Ingress Controller的通用框架  202

4.2.2 Nginx Ingress Controller详解    202

4.2.3 小结  209

4.3 沧海桑田:Kubernetes DNS架构演进之路    209

4.3.1 Kube-dns的工作原理   209

4.3.2 上位的CoreDNS    212

4.3.3 Kube-dns VS. CoreDNS   217

4.3.4 小结  220

4.4 你的安全我负责:使用Calico提供Kubernetes网络策略   220

4.4.1 部署一个带Calico的Kubernetes集群   221

4.4.2 测试Calico网络策略   225


第5章 百花齐放:Kubernetes网络插件生态 228

5.1 从入门到放弃:Docker原生网络的不足   228

5.2 CNI标准的胜出:从此江湖没有CNM    229

5.2.1 CNI与CNM的转换   230

5.2.2 CNI的工作原理   231

5.2.3 为什么Kubernetes不使用Libnetwork   235

5.3 Kubernetes网络插件鼻祖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 小结  257

5.4 全能大三层网络插件: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网络选择BGP    272

5.4.7 小结  274

5.5 Weave:支持数据加密的网络插件    276

5.5.1 Weave简介   276

5.5.2 Weave实现原理   277

5.5.3 Weave安装   278

5.5.4 Weave网络通信模型   280

5.5.5 Weave的应用示例   282

5.5.6 小结  288

5.6 Cilium:为微服务网络连接安全而生    288

5.6.1 为什么使用Cilium   289

5.6.2 以API为中心的微服务安全    294

5.6.3 BPF优化的数据平面性能    295

5.6.4 试用Cilium:网络策略  297

5.6.5 小结  299

5.7 Kubernetes多网络的先行者:CNI-Genie    299

5.7.1 为什么需要CNI-Genie  300

5.7.2 CNI-Genie功能速递   302

5.7.3 容器多IP    303


第6章 Kubernetes网络下半场:Istio  305

6.1 微服务架构的大地震: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典型实现之Linkerd    310

6.2 Istio:引领新一代微服务架构潮流   312

6.2.1 Istio简介    312

6.2.2 Istio安装    313

6.2.3 Istio路由规则的实现   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 从应用容器到sidecar代理的通信   329

6.4 不再为iptables脚本所困:Istio CNI插件    330

6.5 除了微服务,Istio还能做更多   331


展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证