欢迎光临
免费的PDF电子书下载网站

Kubernetes 网络权威指南:基础、原理与实践 PDF下载

编辑推荐

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

 ;

内容简介

本书是容器与Kubernetes网络的基础和进阶书籍,旨在让更多人了解和学习云原生时代的底层网络模型与实现机制,指导企业在落地云原生时的网络方案选型。全书包括:容器网络虚拟化基础、Docker容器网络、Kubernetes网络和Istio网络4部分,共6章。第1章容器网络虚拟化基础将支撑容器网络的内核技术娓娓道来。第2章简单介绍了Docker原生的容器网络能力。Kubernetes网络分为3章,第3章介绍Kubernetes网络的基础概念和使用,第4章为读者剖析了Kubernetes网络的底层实现原理,第5章详解了业界主流的Kubernetes网络插件。Istio网络总共1章,重点解析Istio网络流量管控的背后机制。本书适合作为高等院校计算机相关专业云计算课程的参考资料,也适合云计算从业者,特别是希望对云原生网络技术有较深入了解并希望将其应用到日常工作中的所有读者阅读。

作者简介

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

Kubernetes 网络权威指南:基础、原理与实践 PDF下载

目录

第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

媒体评论

网络是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网络模型和实现,从底层基础原理讲起,帮助开源技术的爱好者和使用者厘清当下主流容器网络标准及技术背后的机理,为技术选型和落地提供切实有用的帮助和指导,是对业界当前重上层创新的趋势的一个很好的补充。

 

浙江大学计算机系博士  谐云首席科学家,丁轶群

前沿

自序

 

缘起

这些年来,我观察到每次 Linux 世界的重大技术创新都发源于内核,经过一层层面向用户的抽象和封装,演化出应用层的森罗万象。正所谓万变不离其宗!

我自认为是个“old school”(老派)的人,坚信维持这个世界运转的、最本质的那部分东西是不会轻易改变的。尽管新技术“乱花渐欲迷人眼”,但经历过时间锤炼的实用技术和工具总是历久弥新的。一个很好的例子便是传统的网络虚拟化和 BGP,它们就是在容器这个新瓶子里焕发第二春的。因此,当有时髦的新技术出现时,我的第一反应是这些新技术底层是怎么实现的,对那些看起来酷炫的功能反倒没有兴趣。正如 OpenStack 兴起的那些年,当大家都在谈论 nova、neutron 这类调度虚拟机和网络的组件时,我默默地翻读了内核虚拟机(KVM)的源码。至今,我对那种奇妙的感觉记忆犹新,恰如一个发烧级摄影爱好者走进暗房,欣喜若狂地亲自手洗一张可触摸的胶片影像。当我读懂了 KVM 时,再回过头来看 OpenStack 便有了一种“会当凌绝顶,一览众山小”的豁然贯通之感。

工作之余让心静下来,细细品味,认真思考技术的本质——相信这是所有有激情、有梦想的工程师的共同追求。虽然在软件版本快速迭代的高压面前,这种良好的追求有时也会变成一种奢求,但是我坚信工程师不能只当一个使用者,而一定要理解当前正在使用的技术的底层实现机制。因此,在我的《云原生分布式存储基石:etcd 深入解析》一书中,开篇只字未提全书主角 etcd,而耗费将近 80 页的笔墨,从分布式系统的基本理论一直讲到一致性协议 Raft。尽管内容看似与这个高速发展、追求快节奏的社会“格格不入”,但我仍希望能够通过出版技术书这种本身就慢节奏且带仪式感的行为沉淀自己的思考。如果能够跟有缘的读者碰撞出思想的火花,则将是我人生的一大幸事!

 

我为什么写这本书

云计算的世界里,计算最基础,存储最重要,网络最复杂。在 Kubernetes 已经成为云原生代名词的今天,市面上介绍 Kubernetes 的书籍已经很多,然而限于篇幅或术业有专攻等诸多主客观因素,不少书籍对 Kubernetes 网络部分的讲解只是蜻蜓点水,甚至有些还存在专业性的错误。我经常在一些学习 Kubernetes 的论坛和群里看到有用户抱怨:传统网络架构都还没搞明白,又要理解容器网络。容器网络领域不但存在大量的术语,而且理解具体的方案需要不少前置知识,这无形中增加了学习的难度。计算机网络是我在大学里最喜欢,也是最擅长的一门课程。在我看来,计算机网络趣味性强,而且对逻辑性和动手能力要求较高。看到整个云原生网络领域正发生着激动人心的技术变革,意义不亚于上一次 SDN 兴起带来的冲击,我感觉这对传统网络工程师来说会是一次自我升级转型的契机。于是,我萌生了专门为 Docker、Kubernetes 的用户,以及传统网络工程师撰写一本云原生网络书籍的想法,破除他们学习过程中“不识庐山真面目,只缘身在此山中”的无力感。

 

关于本书

虽然书名是《Kubernetes 网络权威指南:基础、原理与实践》,但全书内容并不局限于Kubernetes。我对本书的定位是云原生领域的网络权威指南,企业落地方案的选型参考。按照我“old school”的思路,本书特别注重提供理解容器网络所必需的基础知识,会由浅入深地从架构、使用、实现原理等多方面展开,试图为读者呈现整个云原生网络的知识体系。

全书的脉络是:以 Linux 网络虚拟化基础作为“暖场嘉宾”,以 Docker 原生的容器网络“承前启后”,随后是主角 Kubernetes 网络“粉墨登场”,在各类 CNI 插件“沙场点兵”过后,以代表容器下半场的服务网格 Istio“谢幕”。

王安石在登上飞来峰后曾吟下“不畏浮云遮望眼,自缘身在最高层”这样的千古佳句。希望本书能够成为云计算 2.0 时代的弄潮儿们叩开网络大门的敲门砖,在解决各类场景下错综复杂的问题时能够做到“口中有粮、心中不慌”。不论是定位疑难杂症,还是技术选型,抑或是定制化开发都能轻松驾驭!

“人生不止眼前的苟且,还有诗和远方的田野”,愿更多的同路人加入。

 

杜军

2019 年 8 月于厦门鼓浪屿

Kubernetes 网络权威指南:基础、原理与实践 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:Kubernetes 网络权威指南:基础、原理与实践