Kubernetes微服务实战书籍pdf下载

Kubernetes微服务实战百度网盘pdf下载

作者:吉吉·赛凡
简介:Kubernetes微服务实战pdf下载
出版社:机械工业出版社
出版时间:2020-06-03
pdf下载价格:9.00¥


内容介绍


   
 


9787111655763 9787111612209

书   名: kubernetes微服务实战
图书定价: 119元
作 者: [印度] 吉吉·赛凡(Gigi Sayfan)
出 版 社: 机械工业出版社
出版日期: 2020-06-03
ISBN 号: 9787111655763
开   本: 16开
页   数: 372
版   次: 1-1





本书深入介绍Kubernetes和微服务之间的协同关系。首先介绍如何使用示例应用程序Delinkcious,它将作为贯穿全书的动手实验,帮助读者在实际应用程序的上下文中理解微服务和Kubernetes的概念。接下来,介绍了如何设置CI/CD流水线以及使用Kubernetes ConfigMap配置微服务。然后介绍微服务安全和实现REST、gRPC API和Delinkcious数据存储的实践。除此之外,本书还探索了Nuclio项目,介绍如何在Kubernetes上运行一个无服务器任务,并管理和实现数据密集型测试。在后几章中,你将在Kubernetes上部署微服务,并学习如何做好系统的监控。后,你将逐渐发现服务网格的重要性,以及如何将Istio集成到Delinkcious集中。




[印度] 吉吉·赛凡(Gigi Sayfan) 著:吉吉·赛凡(Gigi Sayfan)是Heli(一家生物信息学和基因组学初创公司)的首席软件架构师,也是Packt出版的Mastering Kubernetes一书的作者。他从事专业软件开发工作已过20年,涉及领域包括即时消息、变形、芯片制造过程控制、游戏机嵌入式多媒体应用程序以及脑启发机器学习。他曾用多种编程语言(包括Go、Python、C#、Java、Delphi、,甚至Cobol和PowerBuilder)为Windows、Linu、macOS、Lyn和Sony PlayStation等作系统编写生产代码。他的技术专长涵盖数据库、低级网络、非传统用户界面和通用SDLC。




译者序
前言
关于评审者
1章 面向开发人员的Kubernetes简介 1
1.1 技术需求 1
1.1.1 安装Docker 1
1.1.2 安装kubectl 2
1.1.3 安装Minikube 2
1.1.4 本章代码 2
1.2 Kubernetes简介 2
1.2.1 容器编排平台 2
1.2.2 Kubernetes发展历史 2
1.2.3 Kubernetes现状 3
1.3 Kubernetes架构 3
1.3.1 控制平面 4
1.3.2 数据平面 5
1.4 微服务的搭档 6
1.4.1 微服务打包和部署 6
1.4.2 微服务公开和发现 8
1.4.3 微服务安全 9
1.4.4 微服务验证和授权 11
1.4.5 微服务升级 12
1.5 创建本地集 14
1.5.1 安装Minikube 14
1.5.2 探索集 16
1.5.3 安装Helm 17
1.6 小结 19
1.7 扩展阅读 19
2章 微服务入门 20
2.1 技术需求 21
2.1.1 在macOS上通过Homebrew安装Go 21
2.1.2 在其他平台上安装Go 21
2.1.3 本章代码 21
2.2 微服务编程—少即是多 21
2.3 微服务自治 23
2.4 使用接口和契约 23
2.5 通过API公开服务 24
2.6 使用客户端库 24
2.7 管理依赖 25
2.8 协调微服务 25
2.9 利用所有权 26
2.10 理解康威定律 27
2.10.1 垂直组织 27
2.10.2 水平组织 28
2.10.3 矩阵组织 28
2.11 跨服务故障排除 28
2.12 利用共享服务库 29
2.13 选择源代码控制策略 29
2.13.1 单体仓库 29
2.13.2 多仓库 30
2.13.3 混合模式 30
2.14 选择数据策略 30
2.14.1 每个微服务对应一个数据存储 31
2.14.2 运行分布式查询 31
2.14.3 使用Saga模式管理跨服务事务 33
2.15 小结 35
2.16 扩展阅读 36
3章 示例应用程序—Delinkcious 37
3.1 技术需求 37
3.1.1 Visual Studio Code 38
3.1.2 GoLand 38
3.1.3 LiteIDE 38
3.1.4 其他选项 38
3.1.5 本章代码 38
3.2 为什么选择Go 39
3.3 认识Go kit 39
3.3.1 使用Go kit构建微服务 40
3.3.2 理解传输 41
3.3.3 理解端点 41
3.3.4 理解服务 42
3.3.5 理解中间件 42
3.3.6 理解客户端 43
3.3.7 生成样板 43
3.4 Delinkcious目录结构 43
3.4.1 cmd子目录 44
3.4.2 pkg子目录 44
3.4.3 svc子目录 45
3.5 Delinkcious微服务 45
3.5.1 对象模型 46
3.5.2 服务实现 47
3.5.3 支持函数实现 50
3.5.4 通过客户端库调用API 53
3.6 数据存储 56
3.7 小结 58
3.8 扩展阅读 58
4章 构建CI/CD流水线 59
4.1 技术需求 59
4.2 理解CI/CD流水线 60
4.3 选择CI/CD流水线工具 61
4.4.1 Jenkins X 61
4.4.2 Spinnaker 62
4.4.3 Travis CI和CircleCI 62
4.4.4 Tekton 62
4.4.5 Argo CD 63
4.4.6 自研工具 63
4.4 GitOps 63
4.5 使用CircleCI构建镜像 64
4.5.1 查看源代码树 64
4.5.2 配置CI流水线 65
4.5.3 理解构建脚本 66
4.5.4 使用多阶段Dockerfile对Go服务容器化 68
4.5.5 探索CircleCI界面 68
4.5.6 未来的改进 71
4.6 为Delinkcious设置持续交付 71
4.6.1 部署Delinkcious微服务 71
4.6.2 理解Argo CD 72
4.6.3 Argo CD入门 73
4.6.4 配置Argo CD 75
4.6.5 探索Argo CD 77
4.7 小结 80
4.8 扩展阅读 81
5章 使用Kubernetes配置微服务 82
5.1 技术需求 82
5.2 配置包含的内容 83
5.3 通过传统方式管理配置 83
5.3.1 约定 84
5.3.2 命令行标志 85
5.3.3 环境变量 85
5.3.4 配置文件 86
5.3.5 混合配置和默认 90
5.3.6 12-Factor应用程序配置 91
5.4 动态管理配置 92
5.4.1 理解动态配置 92
5.4.2 远程配置存储 93
5.4.3 远程配置服务 93
5.5 使用Kubernetes配置微服务 93
5.5.1 使用Kubernetes ConfigMaps 94
5.5.2 Kubernetes自定义资源 102
5.5.3 服务发现 105
5.6 小结 105
5.7 扩展阅读 106
6章 Kubernetes与微服务安全 107
6.1 技术需求 107
6.2 应用完善的安全原则 108
6.3 区分用户账户和服务账户 110
6.3.1 用户账户 110
6.3.2 服务账户 111
6.4 使用Kubernetes管理密钥 114
6.4.1 Kubernetes密钥的三种类型 114
6.4.2 创造自己的密钥 115
6.4.3 将密钥传递到容器 116
6.4.4 构建一个安全的Pod 117
6.5 使用RBAC管理权限 118
6.6 通过认证、授权和准入控制访问权限 121
6.6.1 认证 121
6.6.2 授权 125
6.6.3 准入 125
6.7 通过安全佳实践增强Kubernetes 126
6.7.1 镜像安全 126
6.7.2 网络安全—分而治之 127
6.7.3 镜像仓库安全 129
6.7.4 按需授予访问权限 129
6.7.5 使用配额小化爆炸半径 130
6.7.6 实施安全上下文 132
6.7.7 使用安全策略强化Pod 133
6.7.8 强化工具链 134
6.8 小结 135
6.9 扩展阅读 136
7章 API与负载均衡器 137
7.1 技术需求 137
7.2 熟悉Kubernetes服务 138
7.3 东西流量与南北流量 140
7.4 理解ingress和负载均衡器 141
7.5 提供和使用公有REST API 141
7.5.1 构建基于Python的API网关服务 141
7.5.2 添加ingress 146
7.5.3 验证API网关 147
7.6 提供和使用内部gRPC API 150
7.6.1 定义NewsManager接口 150
7.6.2 实现消息管理器 151
7.6.3 将NewsManager公开为gRPC服务 153
7.7 通过消息队列发送和接收事件 158
7.7.1 NATS 159
7.7.2 在Kubernetes集中部署NATS 159
7.7.3 使用NATS发送链接事件 160
7.7.4 订阅NATS链接事件 162
7.7.5 处理链接事件 164
7.8 服务网格 166
7.9 小结 166
7.10 扩展阅读 166
8章 有状态服务 167
8.1 技术需求 167
8.2 抽象存储 168
8.2.1 Kubernetes存储模型 168
8.2.2 内置和外部存储插件 172
8.2.3 理解CSI 173
8.3 在Kubernetes集外存储数据 174
8.4 使用StatefulSet在Kubernetes集内存储数据 175
8.4.1 理解StatefulSet 175
8.4.2 什么时候应该使用StatefulSet 178
8.4.3 一个大型StatefulSet示例 179
8.5 通过本地存储实现高性能 183
8.5.1 将数据存储在内存中 183
8.5.2 将数据存储在本地SSD硬盘上 183
8.6 在Kubernetes中使用关系型数据库 183
8.6.1 了解数据的存储位置 184
8.6.2 使用部署和服务 184
8.6.3 使用StatefulSet 185
8.6.4 帮助用户服务找到StatefulSet Pod 185
8.6.5 管理模式更改 187
8.7 在Kubernetes中使用非关系型数据存储 187
8.8 小结 191
8.9 扩展阅读 192
9章 在Kubernetes上运行Serverless任务 193
9.1 技术需求 193
9.2 云中的Serverless 194
9.2.1 微服务与Serverless函数 195
9.2.2 在Kubernetes上的Serverless函数模型 195
9.2.3 构建、配置和部署Serverless函数 196
9.2.4 调用Serverless函数 196
9.3 Delinkcious链接检查 196
9.3.1 设计链接检查 197
9.3.2 实现链接检查 199
9.4 使用Nuclio实现Serverless链接检查 202
9.4.1 Nuclio简介 202
9.4.2 创建一个链接检查Serverless函数 203
9.4.3 使用nuctl部署链接检查函数 206
9.4.4 使用Nuclio仪表板部署函数 207
9.4.5 直接调用链接检查函数 207
9.4.6 在LinkManager中触发链接检查 208
9.5 其他Kubernetes Serverless框架 209
9.5.1 Kubernetes Job和CronJob 210
9.5.2 KNative 210
9.5.3 Fission 211
9.5.4 Kubeless 211
9.5.5 OpenFaas 211
9.6 小结 212
9.7 扩展阅读 212
10章 微服务测试 213
10.1 技术需求 214
10.2 单元测试 214
10.2.1 使用Go进行单元测试 214
10.2.2 使用Ginkgo和Gomega进行单元测试 216
10.2.3 Delinkcious单元测试 217
10.2.4 模拟的艺术 217
10.2.5 你应该测试一切吗 221
10.3 集成测试 222
10.3.1 初始化测试数据库 222
10.3.2 运行服务 223
10.3.3 运行实际测试 223
10.3.4 实现数据库测试辅助函数 225
10.3.5 实现服务测试辅助函数 227
10.4 使用Kubernetes进行本地测试 229
10.4.1 编写冒烟测试 229
10.4.2 Telepresence 232
10.5 隔离测试 235
10.5.1 隔离集 236
10.5.2 隔离命名空间 236
10.5.3 跨集/命名空间 237
10.6 端到端测试 237
10.6.1 验收测试 237
10.6.2 回归测试 238
10.6.3 性能测试 238
10.7 管理测试数据 239
10.7.1 合成数据 239
10.7.2 人工测试数据 239
10.7.3 生产环境快照 239
10.8 小结 240
10.9 扩展阅读 240
11章 微服务部署 241
11.1 技术需求 241
11.2 Kubernetes部署 242
11.3 多环境部署 243
11.4 理解部署策略 246
11.4.1 重新部署 247
11.4.2 滚动更新 247
11.4.3 蓝绿部署 248
11.4.4 金丝雀部署 255
11.5 回滚部署 260
11.5.1 回滚标准部署 260
11.5.2 回滚蓝绿部署 261
11.5.3 回滚金丝雀部署 262
11.5.4 回滚模式、API或负载的更改 262
11.6 管理版本和依赖 263
11.6.1 管理公有API接口 263
11.6.2 管理跨服务依赖 264
11.6.3 管理三方依赖 264
11.6.4 管理基础设施和工具链 265
11.7 本地开发部署 265
11.7.1 Ko 266
11.7.2 Ksync 269
11.7.3 Draft 271
11.7.4 Skaffold 272
11.7.5 Tilt 273
11.8 小结 279
11.9 扩展阅读 279
12章 监控、日志和指标 280
12.1 技术需求 281
12.2 Kubernetes的自愈能力 281
12.2.1 容器故障 282
12.2.2 节点故障 282
12.2.3 系统故障 283
12.3 Kubernetes集自动伸缩 284
12.3.1 Pod水平自动伸缩 284
12.3.2 集自动伸缩 286
12.3.3 Pod垂直自动伸缩 287
12.4 使用Kubernetes供应资源 289
12.4.1 应该提供哪些资源 289
12.4.2 定义容器限制 289
12.4.3 指定资源配额 290
12.4.4 手动供应 291
12.4.5 利用自动伸缩 292
12.4.6 自定义自动供应 292
12.5 正确地优化性能 292
12.5.1 性能和用户体验 292
12.5.2 性能和高可用性 293
12.5.3 性能和成本 293
12.5.4 性能和安全性 293
12.6 日志 294
12.6.1 日志应该记录什么 294
12.6.2 日志与错误报告 294
12.6.3 Go日志接口 294
12.6.4 使用Go-kit日志 295
12.6.5 使用Kubernetes集中管理日志 298
12.7 在Kubernetes上收集指标 299
12.7.1 Kubernetes指标API 300
12.7.2 Kubernetes指标服务器 301
12.7.3 使用Prometheus 302
12.8 警报 308
12.8.1 拥抱组件故障 309
12.8.2 接受系统故障 309
12.8.3 考虑人为因素 309
12.8.4 使用Prometheus警报管理器 310
12.9 分布式跟踪 312
12.9.1 安装Jaeger 312
12.9.2 将跟踪集成到服务中 313
12.10 小结 315
12.11 扩展阅读 315
13章 服务网格与Istio 317
13.1 技术需求 317
13.2 服务网格 318
13.2.1 单体架构与微服务架构 319
13.2.2 使用共享库管理微服务的横切关注点 319
13.2.3 使用服务网格管理微服务的横切关注点 320
13.2.4 理解Kubernetes与服务网格之间的关系 320
13.3 Istio 321
13.3.1 了解Istio架构 321
13.3.2 使用Istio管理流量 324
13.3.3 使用Istio保护集 328
13.3.4 使用Istio实施策略 331
13.3.5 使用Istio收集指标 331
13.3.6 什么时候应该避免使用Istio 332



Service Mesh实战:基于Linkerd和Kubernetes的微服务实践

内容简介
内容简介
这是一部面向生产实践环境的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插件来实现特定的功能。

目录
前言
一部分 基础篇
1章 Service Mesh简介 2
1.1 微服务架构面临的一些挑战 2
1.2 技术架构演进 6
1.3 什么是Service Mesh 9
1.4 Service Mesh的功能 10
1.5 业界Service Mesh产品 11
1.5.1 Linkerd 11
1.5.2 Envoy 12
1.5.3 Istio 13
1.5.4 Conduit 13
1.5.5 Linkerd、Envoy、Istio及Conduit比较 14
1.5.6 我们需要Service Mesh吗 15
1.6 总结 15
2章 Linkerd入门 16
2.1 Linkerd是什么 16
2.2 Linkerd架构 17
2.3 Linkerd主要功能 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.3 Linkerd术语 45
3.4 Linkerd配置 46
3.4.1 配置构成 46
3.4.2 admin 48
3.4.3 namer 48
3.4.4 router 50
3.4.5 telemetry 55
3.4.6 usage 55
3.5 总结 55
4章 深入Linkerd数据访问流 56
4.1 dtab详解 56
4.1.1 dtab定义 56
4.1.2 dtab路由原理 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.1 Linkerd部署模式 68
5.1.1 Per-host模式 68
5.1.2 Sidecar模式 69
5.1.3 Per-host模式和Sidecar模式 69
5.2 配置模型 70
5.2.1 service-to-linker模型 70
5.2.2 linker-to-service模型 73
5.2.3 linker-to-linker模型 76
5.3 总结 78
6章 Linkerd控制层:Namerd 79
6.1 Namerd简介 79
6.2 Namerd和Linkerd 80
6.3 Namerd配置详解 82
6.3.1 admin配置 82
6.3.2 interface配置 83
6.3.3 storage配置 84
6.3.4 namer配置 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.1 Namerd API简介 90
6.5.2 通过Namerd API管理dtab 91
6.5.3 通过namerctl CLI管理dtab 92
6.6 总结 93
三部分 实战篇
7章 Kubernetes基础 96
7.1 Kubernetes是什么 96
7.2 为什么需要Kubernetes 97
7.3 Kubernetes架构 99
7.4 使用Kubeadm部署Kubernetes集 100
7.4.1 部署环境准备 100
7.4.2 部署Kubernetes集 101
7.5 Kubernetes基本概念及资源生命周期管理 108
7.5.1 Container Runtime 108
7.5.2 Container 108
7.5.3 Pod 109
7.5.4 Label 112
7.5.5 RelicaSet 114
7.5.6 Deployment 116
7.5.7 Service 119
7.5.8 DaemonSet 121
7.5.9 ConfigMap和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.2 Linkerd作为Kubernetes平台的Service Mesh工具 135
8.2.1 架构预览 136
8.2.2 Kubernetes平台上如何配置Linkerd 137
8.2.3 运行Linkerd 141
8.2.4 部署示例服务 142
8.2.5 验证 144
8.3 服务间端到端的TLS加密 145
8.3.1 SSL/TLS简介 146
8.3.2 Linkerd透明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.4 Linkerd作为Kubernetes的Ingress Controller 155
8.4.1 架构预览 156
8.4.2 Ingress Identifer简介 157
8.4.3 配置Lnkerd 158
8.4.4 运行Linkerd及示例服务 160
8.4.5 验证 160
8.5 Linkerd作为边界流量入口 164
8.5.1 架构预览 164
8.5.2 Ingress Controller局限性 165
8.5.3 部署内部Linkerd和示例服务 165
8.5.4 部署边界Linkerd 166
8.5.5 HAproy作为边界Linkerd负载均衡器 167
8.6 Linkerd作为边界出口 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.1 Linkerd模块开发框架 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


暂时没有目录,请见谅!