作者 |
孔庆雍 |
丛书名 |
云计算与虚拟化技术丛书 |
出版社 |
机械工业出版社 |
ISBN |
9787111689478 |
简要 |
简介 |
内容简介书籍计算机书籍 内容简介 这是一本关于Kong网关开发和运维的集大成之作。作者基于自己在该领域的丰富实践经验,从零开始,不仅循序渐进地讲解了Kong网关的核心概念、使用方法、工作原理、工程实践和源码,而且还将微服务设计、分布式架构、DevOps等相关技术融入其中,帮助读者打通Kong网关的整个技术体系,轻松跨越从理论到项目实战的鸿沟。 全书共16章,分为4篇,具体内容如下。 入门篇(第1~4章) 首先对网关层和Kong网关做了整体性介绍,然后有针对性地讲解了Nginx、OpenResty和Lua语言等必备知识,为之后深入学习打下基础。 基础篇(第5~8章) 这部分围绕Kong网关的日常配置和操作展开,具体包括Kong网关配置文件、部署方案、命令行向导、代理、鉴权、负载均衡策略和健康检查机制等内容。 进阶篇(第9~12章) 主要介绍了Kong网关区别于其他传统网关的插件机制,以及Kong网关在整个架构体系中与其他系统之间的交互和联动。 应用篇(第13~16章) 主要结合当前日益成熟的云原生环境,给出Kong网关在不同场景下的整体解决方案,如与微服务、Service Mesh、Kubernetes、Serverless的结合等。 |
目录 |
前 言 入 门 篇 第1章 全面了解Kong网关 2 1.1 网关简介 2 1.1.1 网关的由来 3 1.1.2 网关的作用 3 1.2 Kong网关简介 6 1.2.1 Kong网关的发展历程 6 1.2.2 Kong网关与传统网关对比 6 1.2.3 其他主流网关 7 1.3 Kong网关基础组件 12 1.3.1 Kong服务器 12 1.3.2 数据库 13 1.3.3 Kong管理GUI 14 1.4 Kong网关安装指南 14 1.4.1 在Mac环境中安装Kong网关 15 1.4.2 在Linux环境中安装Kong网关 15 1.4.3 在Docker环境中安装Kong网关 15 1.5 使用Kong网关搭建Web应用 16 1.5.1 示例项目介绍 16 1.5.2 后端服务路由 18 1.5.3 静态页面代理 20 1.6 本章小结 24 第2章 Nginx必备知识 25 2.1 Nginx安装 25 2.1.1 在Mac环境中安装Nginx 25 2.1.2 在Linux环境中安装Nginx 26 2.1.3 在Docker环境中安装Nginx 26 2.2 Nginx详解 26 2.2.1 Nginx文件的结构 26 2.2.2 命令行参数 28 2.2.3 配置文件 29 2.2.4 依赖库 32 2.2.5 Nginx的工作原理 33 2.2.6 Nginx优化指南 35 2.3 项目实践 37 2.3.1 从Kong切换到Nginx 37 2.3.2 添加黑白名单 39 2.3.3 添加限流 39 2.3.4 从Nginx切换到Kong 41 2.3.5 小结 41 2.4 本章小结 42 第3章 Lua必备知识 43 3.1 Lua入门与规范 43 3.1.1 基础知识 43 3.1.2 安装指南 44 3.1.3 解释器 45 3.1.4 语法规范 46 3.2 数据类型 47 3.3 操作符 52 3.4 表达式语句 54 3.4.1 赋值语句 54 3.4.2 控制语句 55 3.5 Lua库 58 3.6 本章小结 62 第4章 OpenResty必备知识 63 4.1 OpenResty入门安装 63 4.1.1 在Mac环境中安装OpenResty 63 4.1.2 在Linux环境中安装OpenResty 64 4.1.3 在Docker环境中安装OpenResty 64 4.2 OpenResty详解 64 4.2.1 OpenResty服务器的结构 64 4.2.2 Resty CLI 65 4.2.3 OpenResty包管理工具 67 4.3 OpenResty工作原理 69 4.4 OpenResty性能优化 71 4.4.1 避免使用阻塞函数 72 4.4.2 巧用table组件 72 4.4.3 使用缓存 73 4.4.4 火焰图 73 4.5 项目实践 75 4.6 本章小结 82 基 础 篇 第5章 Kong网关配置与部署 84 5.1 Kong启动项配置 84 5.1.1 配置项加载流程 85 5.1.2 配置项详解 86 5.1.3 环境变量 89 5.1.4 配置文件示例 89 5.2 注入Nginx指令 90 5.2.1 注入单个Nginx指令 91 5.2.2 通过文件方式注入Nginx指令 92 5.3 个性化使用场景 92 5.3.1 自定义Nginx模板文件 93 5.3.2 在OpenResty实例中嵌入Kong 93 5.4 Kong网关部署 94 5.4.1 无数据库部署模式 94 5.4.2 数据库部署模式 97 5.4.3 混合部署模式 100 5.5 本章小结 102 第6章 Kong网关命令行 103 6.1 通用标志参数 104 6.2 Kong网关命令行详解 104 6.2.1 kong check 104 6.2.2 kong config 106 6.2.3 kong health 109 6.2.4 kong hybrid 109 6.2.5 kong migrations 110 6.2.6 kong prepare 112 6.2.7 kong quit 113 6.2.8 kong reload 113 6.2.9 kong restart 114 6.2.10 kong start 114 6.2.11 kong stop 115 6.2.12 kong version 116 6.3 本章小结 116 第7章 Kong网关代理及鉴权 117 7.1 Kong网关代理基础知识 117 7.1.1 Kong网关术语简介 117 7.1.2 Kong网关代理环境配置 118 7.2 Kong网关代理示例 118 7.3 路由匹配规则 121 7.3.1 通用匹配规则 121 7.3.2 paths属性 123 7.3.3 hosts属性 126 7.3.4 methods属性 128 7.3.5 headers属性(hosts除外) 129 7.3.6 sources & destinations属性 129 7.3.7 snis属性 129 7.4 路由匹配优先级 130 7.4.1 优先级策略 130 7.4.2 后备路由策略 131 7.5 Kong网关代理行为 132 7.5.1 超时机制 132 7.5.2 错误重试机制 133 7.5.3 插件执行策略 133 7.5.4 响应内容 133 7.6 配置SSL协议 134 7.7 代理WebSocket流量 135 7.8 代理gRPC流量 138 7.9 Kong网关鉴权 140 7.9.1 通用鉴权流程 140 7.9.2 匿名接入流程 142 7.9.3 多重认证策略 143 7.10 本章小结 144 第8章 Kong网关负载均衡策略与健康检查 145 8.1 负载均衡 145 8.1.1 负载均衡简介 145 8.1.2 负载均衡解决方案 146 8.1.3 Kong网关中的负载均衡 146 8.2 基于DNS的负载均衡 146 8.2.1 A记录(包含AAAA记录) 147 8.2.2 SRV记录 147 8.2.3 DNS 记录优先级 147 8.2.4 其他注意事项 148 8.3 环状负载均衡器 148 8.3.1 基础概念 148 8.3.2 负载均衡策略 150 8.3.3 其他注意事项 151 8.4 负载均衡特性使用场景 151 8.4.1 蓝绿发布 151 8.4.2 金丝雀发布 155 8.5 健康检查 157 8.5.1 健康检查标准 157 8.5.2 健康检查类型 159 8.5.3 健康检查配置 160 8.6 本章小结 162 进 阶 篇 第9章 Kong网关插件 164 9.1 Kong网关插件简介 164 9.1.1 Kong网关插件概念 164 9.1.2 Kong网关插件原理 165 9.2 Kong官方插件 166 9.2.1 鉴权类插件 166 9.2.2 安全类插件 177 9.2.3 流量类插件 179 9.2.4 分析监控类插件 195 9.2.5 内容转换类插件 197 9.2.6 日志类插件 204 9.2.7 其他插件 210 9.3 自定义Kong网关插件 210 9.3.1 自定义插件开发流程和插件生命周期管理详解 210 9.3.2 插件开发套件 240 9.3.3 Go插件开发向导 241 9.3.4 自定义插件实例 243 9.4 本章小结 245 第10章 Kong网关日志 246 10.1 Kong网关日志简介 246 10.1.1 Kong网关日志分类 246 10.1.2 Kong网关日志级别 248 10.2 Kong网关结合日志平台 249 10.2.1 ELK方案简介 249 10.2.2 Kong网关结合ELK 253 10.2.3 日志系统使用场景 256 10.3 自定义日志 261 10.3.1 Kong网关定制日志 262 10.3.2 ELK定制日志 264 10.3.3 小结 265 10.4 本章小结 266 第11章 Kong网关运维 267 11.1 资源选型 267 11.1.1 服务器资源 267 11.1.2 数据库资源 268 11.1.3 弹性伸缩 269 11.1.4 性能参数 269 11.2 Kong网关监控 270 11.2.1 监控平台选型 270 11.2.2 搭建监控平台 271 11.2.3 Kong网关监控平台配置 272 11.2.4 Kong网关监控平台指标详解 278 11.2.5 Kong监控平台指标测试 279 11.2.6 Kong监控平台的预警功能 281 11.3 Kong网关运维 284 11.3.1 数据备份 284 11.3.2 软/硬件维护 286 11.3.3 突发事件处理 288 11.4 本章小结 288 第12章 Kong网关安全与集群高可用 289 12.1 Kong网关安全配置 289 12.1.1 网络层访问限制 289 12.1.2 Kong API 回路 290 12.1.3 自定义Nginx配置 291 12.2 Kong集群 292 12.2.1 Kong集群简介 292 12.2.2 Kong集群缓存 293 12.3 Kong网关高可用 298 12.3.1 架构设计 298 12.3.2 引入HAProxy层 300 12.3.3 高可用方案测试 301 12.4 本章小结 308 应 用 篇 第13章 Kong网关结合微服务架构 310 13.1 微服务简介 310 13.1.1 微服务的优点 311 13.1.2 单体应用和微服务 311 13.1.3 微服务12要素 313 13.2 单体应用向微服务迁移 313 13.2.1 采用微服务的注意事项 314 13.2.2 迁移细节 314 13.3 使用CI/CD流程促进微服务开发 316 13.3.1 CI/CD流程基础组件 316 13.3.2 构建CI/CD流程 318 13.4 基于Kong打造DevOps平台 320 13.4.1 场景描述 320 13.4.2 设计思路 321 13.4.3 DevOps平台使用指南 325 13.4.4 DevOps平台源码解析 329 13.4.5 DevOps平台扩展 335 13.5 本章小结 336 第14章 Kong网关结合Kubernetes架构方案 337 14.1 Kubernetes详解 337 14.1.1 Kubernetes简介 337 14.1.2 Kubernetes发展史 338 14.1.3 Kubernetes基本概念和术语 340 14.1.4 Kubernetes的HelloWorld示例 342 14.2 Kubernetes与Kong网关结合 350 14.2.1 概念描述 350 14.2.2 使用Kubernetes安装Kong 358 14.3 Kubernetes实战 359 14.3.1 安装Kong网关 359 14.3.2 使用Kong网关 360 14.3.3 配置Kong网关插件 361 14.4 本章小结 363 第15章 Service Mesh实践之Kuma 364 15.1 Service Mesh简介 364 15.2 Kuma简介 366 15.2.1 为什么使用Kuma 366 15.2.2 Kuma与其他Service Mesh方案的比较 366 15.2.3 Kuma系统组件 367 15.2.4 Kuma部署示例 368 15.3 Kuma策略概述 369 15.3.1 策略配置项描述 369 15.3.2 使用策略 370 15.3.3 策略匹配规则 371 15.4 Kuma内置策略详解 372 15.4.1 安全类策略 372 15.4.2 流量控制类策略 376 15.4.3 观测类策略 382 15.5 Kuma实战 388 15.5.1 适配Kuma架构 388 15.5.2 启动mTSL和TrafficPermission 390 15.6 本章小结 391 第16章 Serverless架构 392 16.1 Serverless简介 392 16.1.1 系统架构演化 392 16.1.2 部署方式演化 393 16.1.3 Serverless内核 395 16.2 Serverless实践 396 16.2.1 搭建开发环境 396 16.2.2 Web应用服务 402 16.3 本章小结 407 附录A Docker安装指南 408 附录B KONGA安装指南 412 附录C 数据库明细 417 附录D Admin API 422 |