书籍详情
《ServiceMesh实战:基于Linkerd和Kubernetes的微服务实践深入理解OpenStackNeutron》[29M]百度网盘|亲测有效|pdf下载
  • ServiceMesh实战:基于Linkerd和Kubernetes的微服务实践深入理解OpenStackNeutron

  • 出版社:番茄雅图书专营店
  • 出版时间:2018-12
  • 热度:11010
  • 上架时间:2024-06-30 09:38:03
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

产品特色

编辑推荐

适读人群 :所有正在从事微服务开发或即将使用微服务技术的企业和个人。

(1)作者是思科的高级工程师,是国内Service Mesh领域的早期实践者,是的架构师和微服务技术专家。
(2)详细讲解Linkerd的配置、部署、管理、运维和监控,以及它的工作原理,对理解其他Service Mesh产品也有帮助

内容简介

内容简介
这是一部面向生产实践环境的Service Mesh实战指南,它讲解了如何基于Linkerd和Kubernetes开发和部署微服务。
作者是思科的高级工程师,是国内Service Mesh领域的先驱者,较早将Linkerd应用到了生产实践中。书中详细介绍了Linkerd能解决什么样的问题,会给开发和运维人员带来什么样的好处。融合作者使用Linkerd的一些经验和教训,详细阐述了如何配置、部署和管理Linkerd以及在Kubernetes平台运行微服务,并且讲述了如何开发自定义Linkerd插件实现特定功能。通过这一系列内容的学习,读者将理解Linkerd的工作原理,甚至对学习或者开发他Service Mesh也具有深刻的借鉴意义。
全书共9章,分为三个部分:
部分(第1~2章) 基础篇
第1章主要介绍了Service Mesh的起源、功能、现有产品,以及技术选型的考量;第2章是Linkerd的入门,讲解了Linkerd及其工作环境的安装、配置和部署。
第二部分(第3~6章) 中级篇
这部分内容是本书的核心之一,依次讲解了Linkerd的配置、数据流工作原理、部署模式的选择,以及它的控制面板Namerd如何管理多个Linkerd实例以及通过Linkerd实现运行时动态切换流量。
第三部分(第7~9章) 实战篇
第7章首先讲解了阅读本书必须掌握的Kubernetes的基础知识;第8章重点通过实例演示了如何以Linkerd作为Kubernetes的Service Mesh工具运行微服务;第9章讲述了如何开发自定义的Linkerd插件来实现特定的功能。

作者简介

杨章显
架构师和微服务技术专家,2012加入思科,担任高级系统工程师。
具有多年企业级在线会议系统的运维以及软件发布、变更管理经验。
熟悉微服务、容器和Service Mesh等技术,在容器编排(尤其是Nomad和Kubernetes)、自动化运维、部署、监控等方面有丰富的实战经验,是公司微服务平台负责人之一。

内页插图

目录

前言
部分基础篇
第1章Service Mesh简介 2
1.1微服务架构面临的一些挑战 2
1.2技术架构演进 6
1.3什么是Service Mesh 9
1.4Service Mesh的功能 10
1.5业界Service Mesh产品 11
1.5.1Linkerd 11
1.5.2Envoy 12
1.5.3Istio 13
1.5.4Conduit 13
1.5.5Linkerd、Envoy、Istio及Conduit比较 14
1.5.6我们需要Service Mesh吗 15
1.6总结 15
第2章Linkerd入门 16
2.1Linkerd是什么 16
2.2Linkerd架构 17
2.3Linkerd主要功能 19
2.4安装Linkerd 21
2.4.1环境准备 21
2.4.2传统安装方式 24
2.4.3基于Docker的安装方式 27
2.5示例演示 28
2.5.1示例准备 28
2.5.2基于文件的服务发现 28
2.5.3示例演示 29
2.6总结 30
第二部分中级篇
第3章深入浅出Linkerd配置 32
3.1示例应用 32
3.2环境准备 34
3.2.1虚拟机及Docker引擎 34
3.2.2服务发现:Consul 35
3.2.3服务注册:Registrator 37
3.2.4部署Linkerd 38
3.2.5部署示例服务 41
3.3Linkerd术语 45
3.4Linkerd配置 46
3.4.1配置构成 46
3.4.2admin 48
3.4.3namer 48
3.4.4router 50
3.4.5telemetry 55
3.4.6usage 55
3.5总结 55
第4章深入Linkerd数据访问流 56
4.1dtab详解 56
4.1.1dtab定义 56
4.1.2dtab路由原理 57
4.1.3示例演示 60
4.2数据访问流详解 62
4.2.1鉴别 62
4.2.2绑定 63
4.2.3解析 64
4.2.4转换 64
4.2.5负载均衡 65
4.3总结 67
第5章Linkerd部署模式 68
5.1Linkerd部署模式 68
5.1.1Per-host模式 68
5.1.2Sidecar模式 69
5.1.3Per-host模式和Sidecar模式 69
5.2配置模型 70
5.2.1service-to-linker模型 70
5.2.2linker-to-service模型 73
5.2.3linker-to-linker模型 76
5.3总结 78
第6章Linkerd控制层:Namerd 79
6.1Namerd简介 79
6.2Namerd和Linkerd 80
6.3Namerd配置详解 82
6.3.1admin配置 82
6.3.2interface配置 83
6.3.3storage配置 84
6.3.4namer配置 85
6.4连接Linkerd和Namerd 85
6.4.1准备Namerd配置文件 85
6.4.2启动Namerd 86
6.4.3准备Linkerd配置文件 88
6.4.4启动Linkerd 89
6.4.5示例演示 90
6.5管理dtab路由 90
6.5.1Namerd API简介 90
6.5.2通过Namerd API管理dtab 91
6.5.3通过namerctl CLI管理dtab 92
6.6总结 93
第三部分实战篇
第7章Kubernetes基础 96
7.1Kubernetes是什么 96
7.2为什么需要Kubernetes 97
7.3Kubernetes架构 99
7.4使用Kubeadm部署Kubernetes集群 100
7.4.1部署环境准备 100
7.4.2部署Kubernetes集群 101
7.5Kubernetes基本概念及资源生命周期管理 108
7.5.1Container Runtime 108
7.5.2Container 108
7.5.3Pod 109
7.5.4Label 112
7.5.5RelicaSet 114
7.5.6Deployment 116
7.5.7Service 119
7.5.8DaemonSet 121
7.5.9ConfigMap和Secret 124
7.6总结 128
第8章基于Linkerd和Kubernetes的微服务实践 129
8.1部署服务于Kubernetes平台 130
8.1.1定义示例服务声明文件 130
8.1.2架构预览 132
8.1.3部署示例服务 133
8.1.4验证 134
8.2Linkerd作为Kubernetes平台的Service Mesh工具 135
8.2.1架构预览 136
8.2.2Kubernetes平台上如何配置Linkerd 137
8.2.3运行Linkerd 141
8.2.4部署示例服务 142
8.2.5验证 144
8.3服务间端到端的TLS加密 145
8.3.1SSL/TLS简介 146
8.3.2Linkerd透明TLS 147
8.3.3架构预览 150
8.3.4生成证书 151
8.3.5配置Linkerd 151
8.3.6运行Linkerd及示例服务 152
8.3.7验证 153
8.4Linkerd作为Kubernetes的Ingress Controller 155
8.4.1架构预览 156
8.4.2Ingress Identifer简介 157
8.4.3配置Lnkerd 158
8.4.4运行Linkerd及示例服务 160
8.4.5验证 160
8.5Linkerd作为边界流量入口 164
8.5.1架构预览 164
8.5.2Ingress Controller局限性 165
8.5.3部署内部Linkerd和示例服务 165
8.5.4部署边界Linkerd 166
8.5.5HAproxy作为边界Linkerd负载均衡器 167
8.6Linkerd作为边界出口 171
8.6.1架构预览 172
8.6.2部署EgressLinkerd 173
8.6.3部署示例服务 177
8.6.4部署内部Linkerd 177
8.7基于Linkerd实现运行时路由 182
8.7.1运行时单个请求路由 182
8.7.2基于Namerd实现全局动态路由 185
8.8总结 198
第9章开发Linkerd插件 199
9.1Linkerd模块开发框架 199
9.2如何开发自定义插件 202
9.2.1需求定义 202
9.2.2环境准备 203
9.2.3代码开发 203
9.2.4编译 207
9.2.5安装 209
9.2.6验证 210
9.3总结 213

前言/序言

为什么要写这本书
2016年年初,位于旧金山的一家初创公司Buoyant开源了一款产品—Linkerd。对IT界来说, 每天都会发生很多类似的事情,各种新技术、新产品日新月异、层出不穷,开源一款产品几乎是微不足道的事情。但就是Buoyant的Linkerd,开启了一个新的时代 — Service Mesh(服务网格)时代,成为微服务和云原生应用的引爆点,为微服务和云原生应用在企业的推广、应用和普及提供了更好的支撑点。
事实上,微服务架构已经被不少公司采纳,而云原生应用是在容器化技术和公有云平台的广泛发展下衍生出来的技术架构。但是,无论是微服务还是云原生应用架构,都面临一些不可避免的问题:如何提高应用系统的稳定性和可靠性;如何保证系统的可扩展性、容错及健壮性;如何增强系统的可见性、可管理性及安全性等。说到底,为什么Linkerd的出现会成为引爆点?主要是因为Linkerd引入的Service Mesh概念使得我们可以使用更加通用、灵活的方法解决上述问题。这也是随后多种Service Mesh产品的出现以及多家云服务提供商也支持Service Mesh的原因。Linkerd作为Service Mesh的开山鼻祖,据其官网介绍,目前已经被多家公司采纳,运行在产线环境为客户提供各种服务。因此,很有必要学习和了解Linkerd的工作原理,以此解决工作环境中遇到的问题,以及借鉴其设计精华开发自己的Service Mesh产品。
幸运的是,在2016年年底,我所在的公司正好要将一些服务进行微服务化,尝试新的技术架构带来的好处和优势,因此在进行技术方案选型的时候Linkerd就成为我们的主要目标,并终选择Linkerd作为我们微服务平台中非常重要的组件。使用Linkerd之后,实实在在地给我们带来不少好处和优势。
首先,使得我们的应用开发工程师可以专注于业务逻辑的实现,避免将精力分散到服务与服务间可靠通信的实现和其他额外工作上。
其次,Linkerd使得我们的微服务运行时状态可见性更高。在此之前,如果需要获取服务运行时的状态信息,比如P99时延、请求处理成功率、失败率及当前连接数等,需应用本身暴露这些信息才行,否则,获取并不容易。
再次,Linkerd为我们在不同环境进行测试提供了更加便利的方法,比如,通过其运行时动态切换流量的功能可实现不同环境间流量的切换。
,Linkerd使得开发人员无须担心多语言支持的问题。
当然,Linkerd还带来了其他好处,在此就不一一赘述了。
作为一本纯技术的书籍,希望可以引导和帮助大家学习并在实际环境中使用Linkerd和其他Service Mesh产品,推广Service Mesh产品及技术不断向前发展,让Service Mesh能切实解决我们面临的问题。
读者对象
微服务和云原生开发人员
Devops工程师
SRE工程师
业务运维工程师
本书特色
作为业界早期的以Linkerd作为Kubernetes的Service Mesh工具的实战指南,本书将教你如何通过Linkerd在Kubernetes平台实现服务间可靠、安全、可控制地通信,增加服务的运行时可见性。
如何阅读本书
本书分为三大部分:
部分为基础篇,简单介绍Service Mesh产生的原因、Service Mesh能解决现有架构中什么样的问题以及业界有哪些Service Mesh产品可供选择,介绍Linkerd目前的使用状况、提供哪些功能、如何安装和配置,以及如何使用Linkerd进行服务通信。
第二部分为中级篇,着重讲解如何配置Linkerd使其实现各种高级功能、阐述Linkerd的数据流工作机制,以及如何根据应用场景选择Linkerd支持的部署模式和通过控制平面Namerd管理多个Linkerd实例等。
第三部分为实战篇,在这一部分,我们用一章的篇幅讲述Kubernetes的基本知识和概念,以帮助一些不了解Kuberentes的读者对Kubernetes有简单的认识,有利于后续内容的学习;有Kubernetes相关基础的读者,可跳过此章内容。剩下的章节便是通过实例演示Linkerd的工作机制,以及带领大家开发自定义的Linkerd插件以满足特定应用的需求。
勘误和支持
由于作者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。书中的所有源码均可在https://github.com/yangzhares/linkerd-in-action处找到,如果遇到任何问题,可直接在Github页面提交问题,我将尽量在线上为你提供满意的解答。另外,如果你有更多问题或者意见,欢迎将你的意见发送至我的邮箱yangzhangxian@gmail.com,期待能够得到你的真挚反馈。
致谢
感谢Buoyant公司开源Linkerd这款的软件,让我有机会接触这么的Service Mesh产品,还要感谢在我面临一些困惑时官方社区提供的详细答疑及解惑。
感谢我的同事陈松和杭滨,他们给我提供了很多宝贵的建议并帮我认真改稿。
感谢机械工业出版社华章公司编辑杨福川,在这将近一年的时间里始终支持我的写作,你的鼓励和帮助引导我顺利完成全部书稿。
感谢我的爸爸、妈妈及所有家人,感谢你们的默默支持,并时时刻刻为我灌输着信心和力量。特别是我的妻子,在这一年每天带娃做家务,辛苦了,谢谢你。还有我的宝贝女儿,谢谢你没有经常在我工作的时候来打扰我!
谨以此书献给热爱Linkerd和Service Mesh的朋友们!

杨章显