猜你喜欢
云原生网关Traefik:入门、进阶与实战

云原生网关Traefik:入门、进阶与实战

书籍作者:李杰 ISBN:9787111743064
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2172
创建日期:2024-06-27 发布日期:2024-06-27
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
内容简介
这是一本关于云原生网关Traefik的标准参考和实战指南,它从功能特性、工作原理、架构设计、性能优化、项目实战、源码分析等多个维度对Traefik进行了全面的讲解,几乎覆盖从入门到进阶过程中的所有问题,通俗易懂、图文并茂、案例丰富。
本书内容源于作者在大量云原生项目改造中的经验总结,得到了Google、华为等国内外头部科技公司技术专家的推荐和Traefik Labs 社区的多位PMC好评。
读完本书,你将了解或掌握以下知识:
?云原生的发展历程、架构模式、技术栈以及发展方向;
?云原生网关的技术生态和技术选型
?Traefik的安装、配置、基本特性
?Traefik的架构设计、工作原理,以及升级、迁移和高可用性
?Traefik中间件、Traefik Mesh、Traefik Hub、Traefik Operator编排等高级特性
?Traefik的插件开发、可观测性实践和性能优化等高阶实践
?Traefik在实际项目中的使用和最佳实践
?Traefik核心功能组件的源码分析
作者简介
李杰(Luga Lee)
资深架构师,从事技术研发工作10余年,拥有丰富的一线项目实战经验。现任职于某知名互联网公司,担任云原生架构师,为公司设计和优化云原生架构;曾就职于多家互联网公司,在跨境电商、移动支付和互联网金融领域担任架构师,负责基础架构的设计及性能优化。
Jakarta EE Ambassador、Traefik Ambassador、TraefikLab中国社区发起人,在容器云、微服务、DevOps、数据治理以及Java虚拟机等领域有丰富的实践经验。
公众号“架构驿站(priest-arc)”主理人
编辑推荐
适读人群 :云原生领域的各种技术工程师
(1)作者经验丰富:作者是知名互联网公司的资深云原生架构师,TraefikLab中国社区发起人,有大量云原生项目改造经验融入本书。
(2)行业专家力荐:Google、华为等企业的资深专家推荐, Traefik Labs 社区的多位PMC好评。
(3)6大维度讲透:从功能特性、工作原理、架构设计、性能优化、项目实战、源码分析6大维度讲透你学习Traefik的各种难题。
前言

为什么要写这本书
云原生已经成为当今软件开发和部署的重要趋势。越来越多的公司正在拥抱云原生并重塑其技术架构。在云原生架构下,微服务网格的流量管理和控制至关重要。作为微服务的前哨和流量入口,网关承担着请求路由、安全防护、流量控制等重要任务。然而,传统网关与云原生架构存在难以适应的问题,只有新型的云原生网关才能真正融入云原生架构并发挥价值。因此,市面上急需一本介绍云原生网关的实战指南。
Traefik是一款非常优秀的云原生边缘路由器和反向代理服务器,它的模块化架构和自动配置功能大大简化了反向代理操作,使其成为微服务和容器化部署的理想选择。然而,Traefik的强大功能和众多优点目前尚未得到国内开发者的足够重视。关于Traefik的中文学习资料非常稀缺,因此国内许多开发者并不了解如何使用Traefik,导致无法充分利用其价值。同时,其他语言版本的Traefik资料存在一定的阅读门槛,且案例也与国内实际情况存在一定差异。因此,出版一本针对国内用户的Traefik中文学习指南与实战手册刻不容缓。
对于微服务开发者来说,Traefik可以极大地减少服务间复杂的网络调用和依赖。通过自身强大的动态路由和负载均衡功能,Traefik可以实现服务的自动注册和网络调度,从而将微服务开发者从烦琐的服务配置中解放出来。通过本书的学习,微服务开发者可以轻松地将Traefik与主流的Spring Cloud、Kubernetes等微服务平台集成,实现服务的自动发现、负载均衡、容错切换等。相比于手动配置服务网格,这将大幅降低微服务基础设施的复杂度,让微服务开发者更专注于业务创新。
对于DevOps(开发运维)工程师来说,Traefik强大的自动服务发现机制可以极大地方便容器调度和生命周期管理。DevOps工程师可以通过Traefik实现容器集群的自动扩/缩容、流量分配、滚动升级等。借助本书提供的丰富Traefik集成方案,DevOps工程师可以轻松地将Traefik与Docker、Kubernetes等容器编排平台结合,实现容器的自动化部署和服务的自动发现/注册。这将大幅降低容器管理的复杂度,简化并优化整个CI/CD(持续集成/持续部署)流程。
希望本书不仅可以帮助读者学习云原生网关的方方面面,还可以激发读者对云原生及其相关知识进一步学习和研究的兴趣。
读者对象
作为一本全面涵盖云原生技术体系的图书,本书适合广泛的群体阅读。按照读者的职业岗位来划分,群体对象涉及多个领域,包括但不限于以下人员。
云原生架构师、解决方案架构师
云原生开发工程师
云原生系统工程师、维护工程师
DevOps工程师
站点可靠性工程师(SRE)
本书特色
本书是一本云原生网关Traefik指南书,深入浅出地介绍了Traefik的核心架构、用法和云原生项目实践。本书的主要特色如下。
内容深入浅出。对Traefik技术的核心概念及生态进行了深入浅出的介绍,包括Traefik代理、Traefik网格、Traefik中心及Traefik网关等。此外,书中还介绍了Traefik的架构和设计理念,以帮助读者更好地理解Traefik的实现原理。
实践案例丰富。实践案例从简单的Web应用程序到复杂的微服务架构,涵盖了Traefik在各种场景下的应用,并对Traefik迁移、插件开发、Traefik Operator编排以及基于Traefik进行云原生网关改造等内容进行解析。通过这些实践案例,读者能够深入了解Traefik的实际应用方法。
技术面面俱到。书中介绍了Traefik的工具链和调试技巧,帮助读者更深入地了解Traefik的工作原理和调试方法。此外,书中还介绍了Traefik的可观测性、交付管理、性能优化及安全性等,以帮助读者更好地使用Traefik。
如何阅读本书
本书分为四大部分。
第一部分 Traefik基础(第1~6章):探讨云原生生态的发展趋势,以及Traefik安装与配置、架构与原理、基本特性和迁移等内容,为后续章节奠定基础,让读者能够全面了解Traefik。
第二部分 Traefik进阶(第7~14章):从Traefik高级特性中间件出发,探讨中间件的实现原理、常见类型、基础配置和开发等,为云原生项目改造提供技术支持。此外,本部分还深入探讨Traefik Mesh和Traefik Hub等,介绍如何进行流量治理和原生API管理,最后还对Traefik Operator编排、插件开发、可观测性实践和性能优化进行了深入解析。
第三部分 Traefik实战(第15章):探讨如何在实际项目中实施Traefik,为新手和经验丰富的用户提供宝贵的经验。
第四部分 核心源码剖析(第16章):探讨Traefik的核心功能源码,进一步深入说明Traefik组件的内部特性。通过对源码的解读,读者可以依据实际的业务场景进行业务开发与性能调优,从而支撑业务发展。
勘误和支持
由于作者水平有限,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你有任何疑问,可通过邮箱或微信公众号“架构驿站”与我联系,我会尽快回复。
致谢
感谢我的好友——Google公司的邹飞先生,他在我写作本书的过程中提供了许多宝贵的建议和指导。他的学识与经历激励着我不断前行,他的专业技能和经验给我带来了极

目录
序 一
序 二
前 言
第一部分 Traefik基础
第1章 云原生生态体系 2
1.1 概述 2
1.2 再见,传统虚拟化生态 5
1.2.1 架构发展史 5
1.2.2 传统IT架构的好处 7
1.2.3 传统虚拟化生态面临的挑战 7
1.3 走向云原生 8
1.3.1 云原生架构发展史 8
1.3.2 云原生架构 9
1.3.3 云原生架构模式 13
1.4 云原生堆栈 16
1.4.1 微服务 17
1.4.2 容器 22
1.4.3 Serverless 25
1.4.4 开放式应用模型 27
1.4.5 服务网格 29
1.4.6 DevOps 29
1.5 眺望云原生的未来 34
1.5.1 云原生与人工智能 35
1.5.2 云原生的价值及挑战 37
1.6 本章小结 38
第2章 云原生网关 39
2.1 概述 39
2.2 网关演进 40
2.2.1 传统API网关 40
2.2.2 Ingress代理 44
2.2.3 Gateway API 55
2.3 主流网关分析与比较 59
2.3.1 Nginx 59
2.3.2 Istio 60
2.3.3 Traefik 61
2.4 为什么选择Traefik 62
2.4.1 走进Traefik 62
2.4.2 Traefik核心特性 63
2.4.3 Traefik优势 63
2.5 Traefik生态 67
2.5.1 Traefik Proxy 67
2.5.2 Traefik Enterprise 68
2.5.3 Traefik Hub 69
2.5.4 Traefik Mesh 70
2.6 本章小结 70
第3章 Traefik的安装与配置 71
3.1 概述 71
3.2 获取Traefik软件包 71
3.2.1 通过二进制文件获取 72
3.2.2 通过镜像获取 72
3.2.3 通过Helm Chart获取 75
3.3 Traefik的安装和部署 75
3.3.1 基于Helm安装和部署 75
3.3.2 基于CRD安装和部署 81
3.3.3 基于官方Docker镜像安装和部署 88
3.3.4 基于二进制文件安装和部署 92
3.3.5 基于源码编译安装和部署 93
3.4 Traefik的配置与调试 96
3.4.1 配置原理 96
3.4.2 静态配置 98
3.4.3 动态配置 104
3.5 本章小结 111
第4章 Traefik的架构与原理 112
4.1 概述 112
4.2 Traefik设计理念 113
4.3 入口点 114
4.3.1 HTTP入口点 116
4.3.2 UDP入口点 120
4.4 路由器 121
4.4.1 HTTP路由器 122
4.4.2 TCP路由器 126
4.4.3 UDP路由器 128
4.4.4 gRPC路由器 130
4.5 提供商 134
4.5.1 基于标签的提供商 137
4.5.2 基于注解的提供商 139
4.5.3 基于键值的提供商 140
4.5.4 基于文件的提供商 142
4.6 服务 143
4.6.1 负载均衡 143
4.6.2 健康检查 145
4.6.3 黏性会话 148
4.7 本章小结 149
第5章 Traefik的基本特性 150
5.1 概述 150
5.2 常用基础操作 150
5.2.1 命令行 151
5.2.2 ping命令 152
5.2.3 仪表盘 153
5.3 Traefik API配置管理 155
5.3.1 API配置解析 156
5.3.2 入口点API 159
5.3.3 仪表盘API 161
5.3.4 指标API 165
5.3.5 常用端点 167
5.4 Traefik安全机制 171
5.4.1 身份验证 172
5.4.2 授权访问 175
5.4.3 传输层安全 177
5.4.4 Let’s Encrypt 181
5.5 本章小结 184
第6章 Traefik升级、迁移及高可用性 185
6.1 概述 185
6.2 Traefik升级 186
6.2.1 Traefik版本对比分析 187
6.2.2 Traefik主要升级 188
6.2.3 Traefik次要升级 193
6.2.4 升级指南 196
6.3 Traefik迁移 197
6.3.1 Traefik自迁移 197
6.3.2 将Nginx迁移至Traefik v1 198
6.3.3 将Nginx迁移至Traefik v2 200
6.4 Traefik迁移工具 201
6.4.1 实现原理 202
6.4.2 不支持的注解类型 203
6.4.3 安装和部署 205
6.4.4 常用操作实践 207
6.5 高可用模型 208
6.5.1 负载均衡模型 209
6.5.2 Active-passive故障转移模型 213
6.5.3 Active-active故障转移模型 216
6.5.4 集群模型 219
6.6 本章小结 222
第二部分 Traefik进阶
第7章 Traefik高级特性——中间件 224
7.1 概述 224
7.2 再识中间件 225
7.2.1 实现原理 225
7.2.2 功能特性 225
7.2.3 常用类型 226
7.3 通用中间件 229
7.3.1 前缀中间件 229
7.3.2 认证中间件 233
7.3.3 重定向中间件 234
7.4 自定义中间件 236
7.4.1 速率限制中间件 236
7.4.2 断路器 241
7.4.3 重试中间件 244
7.5 中间件配置实现 245
7.5.1 配置中间件选项 245
7.5.2 定义中间件标签 246
7.5.3 实现中间件 248
7.6 本章小结 250
第8章 使用Traefik网格实现流量治理 252
8.1 概述 252
8.2 流量治理 256
8.2.1 流量治理挑战 256
8.2.2 南北向流量 257
8.2.3 东