[套装书]公有云容器化指南:腾讯云TKE实战与应用+基于Kubernetes的容器云平台实战(2册)

作者
邱宝 冯亮亮 陆平 左奇 付光 张晗
丛书名
云计算与虚拟化技术丛书
出版社
机械工业出版社
ISBN
9782012119484
简要
简介
内容简介书籍计算机书籍 ---------------------------公有云容器化指南:腾讯云TKE实战与应用--------------------------- 内容简介 这是一本面向公有云容器产品学习者和使用者的实战指南。由腾讯云资深云计算技术专家撰写,以腾讯云TKE容器产品为例,在普及开源容器知识的基础上,结合多种标准方法和丰富案例,全方位地讲解了上云容器化的方法和技巧。 本书一共7章,每一章都是作者云上容器化落地的经验总结。 第1~2章有针对性的讲解了Docker和Kubernetes等开源的容器技术的核心知识,帮助读者夯实基础; 第3~7章以腾讯云的容器产品TKE为例,分两条主线:明线详细讲解了TKE的产品架构、产品功能、标准化操作、运维和企业级应用案例;暗线系统总结了上云容器化的方法和技巧。 这本书将帮助读者了解开源容器知识以及企业级公有云容器化操作,让读者逐步走进高效、低成本的云上容器世界,快速迈向云原生。 ---------------------------基于Kubernetes的容器云平台实战--------------------------- 从PaaS平台建设和运维的角度去理解、分析和解决问题,囊括了Docker入门、Kubernetes技术架构及核心原理、网络及存储方案、行业实践指南、PaaS生态链以及发展趋势等方面的内容,图文并茂、内容丰富、由浅入深、讲解全面,具有很强的可借鉴性。
目录



---------------------------公有云容器化指南:腾讯云TKE实战与应用---------------------------


前言
第1章 Docker容器基础1
1.1 什么是容器技术1
1.1.1 什么是容器1
1.1.2 容器技术的特点3
1.1.3 容器的标准化3
1.1.4 容器的主要应用场景4
1.2 什么是Docker5
1.2.1 Docker简介5
1.2.2 Docker的组成架构7
1.3 安装Docker8
1.3.1 安装的前提条件8
1.3.2 在CentOS 7.3上安装Docker9
1.3.3 在Windows 10 Pro上安装Docker11
1.4 Docker的基本用法11
1.4.1 用容器启动一个Nginx/MySQL/Redis服务12
1.4.2 如何进入容器16
1.4.3 如何停止、删除容器17
1.5 Docker镜像的基本操作18
1.5.1 获取镜像18
1.5.2 列出镜像20
1.5.3 导出/导入镜像22
1.5.4 删除本地镜像23
1.5.5 使用commit构建镜像24
1.6 用Dockerfile专业化定制镜像26
1.6.1 什么是Dockerfile26
1.6.2 常用的Dockerfile指令和语法27
1.7 镜像仓库35
1.7.1 共有仓库35
1.7.2 私有仓库37
1.8 存储基本配置39
1.8.1 什么是数据卷39
1.8.2 创建、挂载数据卷40
1.8.3 共享、同步数据卷42
1.8.4 备份、还原数据卷43
1.9 网络基本配置45
1.9.1 网络模型45
1.9.2 Docker原生的网络驱动47
1.9.3 Docker网络操作的基本命令48
1.10 Docker API的基本介绍和使用方式53
1.10.1 什么是API53
1.10.2 Docker API的种类54
1.10.3 API使用前的准备55
1.10.4 操作Docker API55
第2章 Kubernetes基础58
2.1 什么是容器云58
2.1.1 当前云计算的发展58
2.1.2 什么是IaaS、PaaS和SaaS59
2.1.3 容器云介绍61
2.2 什么是Kubernetes62
2.2.1 Kubernetes的基本介绍62
2.2.2 Kubernetes的技术架构65
2.2.3 Kubernetes解决了什么69
2.3 Kubernetes的基础知识70
2.4 深入理解Pod73
2.4.1 什么是Pod73
2.4.2 Pod的内部机制74
2.4.3 Pod的资源使用机制79
2.4.4 Pod的基本操作命令80
2.5 如何编写Pod YAML文件81
2.5.1 什么是YAML文件81
2.5.2 Pod YAML的参数定义82
2.6 如何理解编排85
2.6.1 通俗地理解编排85
2.6.2 Kubernetes与编排86
2.7 五种Kubernetes控制器88
2.7.1 为什么要有控制器88
2.7.2 Kubernetes有哪些控制器89
2.8 Kubernetes的网络91
2.8.1 虚拟化网络基础91
2.8.2 Docker的网络92
2.8.3 Kubernetes网络详解92
2.9 Kubernetes的存储98
2.9.1 存储虚拟化介绍98
2.9.2 Kubernetes存储机制设计100
2.9.3 Kubernetes CSI106
2.10 Kubernetes的安全机制108
2.10.1 节点侧安全108
2.10.2 Docker侧安全109
2.10.3 Kubernetes侧安全110
2.10.4 Kubernetes安全策略113
2.10.5 更安全的Kata Containers116
2.10.6 容器云平台安全的未来117
2.11 Kubernetes监控117
2.11.1 Pod的实时状态数据117
2.11.2 Pod的业务监控实现119
2.12 Kubernetes单点搭建121
2.12.1 安装环境121
2.12.2 初始化操作121
2.12.3 master节点初始化操作123
2.12.4 加入节点124
2.12.5 master节点安装进度124
2.12.6 安装flannel网络插件125
2.12.7 安装calico网络插件127
2.12.8 搭建总结129
2.13 Kubernetes高可用搭建130
2.13.1 安装环境130
2.13.2 初始化操作131
2.13.3 master节点初始化操作132
2.13.4 加入其他master节点133
2.13.5 加入节点134
2.13.6 master节点安装进度134
2.13.7 master节点安装flannel网络插件135
2.13.8 master节点安装calico网络插件138
2.13.9 搭建总结140
2.14 Kubernetes仪表板可视化141
2.14.1 私钥、证书签名和secret生成141
2.14.2 部署仪表板142
2.14.3 登录仪表板146
2.15 Kubernetes的API与源码147
2.15.1 Kubernetes的版本环境147
2.15.2 认证方式147
2.15.3 访问测试148
2.15.4 API示例149
2.15.5 代码解析155
2.15.6 主要功能介绍158
第3章 腾讯云TKE产品介绍184
3.1 产品介绍184
3.1.1 腾讯云TKE名词解释185
3.1.2 Docker镜像名词解释186
3.1.3 快速创建容器应用流程187
3.1.4 基于腾讯云TKE的业务交付187
3.2 腾讯云TKE产品架构188
3.3 腾讯云TKE产品功能189
3.3.1 集群管理189
3.3.2 应用管理190
3.3.3 服务管理190
3.3.4 配置项管理191
3.3.5 镜像管理191
3.4 腾讯云TKE产品优势192
3.4.1 腾讯云TKE与自建容器服务对比192
3.4.2 周边资源对比193
3.5 腾讯云TKE网络193
3.5.1 什么是私有网络193
3.5.2 GlobalRouter194
3.5.3 VPC-CNI197
3.6 腾讯云TKE与自建Kubernetes集群201
3.6.1 集群安装和升级201
3.6.2 集群网络201
3.6.3 存储202
3.6.4 负载均衡器202
3.6.5 镜像仓库202
3.6.6 集群运维及技术支持202
3.6.7 资金及人力成本203
第4章 腾讯云TKE标准化操作204
4.1 容器应用日志输出标准204
4.2 容器日志采集205
4.2.1 容器日志分类205
4.2.2 容器日志采集类型206
4.3 制作基础镜像207
4.4 Dockerfile编写规范212
4.5 容器业务类型214
4.5.1 腾讯云TKE集群类型214
4.5.2 节点类型215
4.5.3 工作负载选型215
4.5.4 业务StorageClass类型216
4.5.5 JVM内存限制217
4.5.6 业务选型总结217
4.6 腾讯云TKE平台使用规范218
第5章 腾讯云TKE应用案例219
5.1 腾讯云Docker镜像仓库授权连接GitLab219
5.1.1 镜像仓库开通219
5.1.2 源代码授权221
5.2 无状态服务部署WordPress应用224
5.2.1 Nginx和PHP基础镜像上传至腾讯云TKE镜像仓库224
5.2.2 验证镜像推送成功226
5.2.3 将Dockerfile上传至GitLab226
5.2.4 基于Dockerfile生成业务镜像228
5.2.5 构建镜像产生的日志说明230
5.2.6 业务镜像生成验证231
5.2.7 创建MySQL安全组232
5.2.8 创建MySQL数据库233
5.2.9 创建WordPress数据库237
5.2.10 部署WordPress容器网站服务239
5.3 无状态服务部署Java应用249
5.4 有状态服务部署MySQL应用252
5.5 Job任务型服务:Perl运算260
5.6 CronJob定时任务:echo定时应用264
5.7 DaemonSet守护任务:fluentd应用268
5.8 TKE Helm部署WordPress271
5.8.1 Helm架构272
5.8.2 开通TKE Helm272
5.8.3 Helm部署WordPress274
5.8.4 WordPress Chart部署信息275
5.8.5 访问验证277
5.9 Jenkins在TKE外网的架构及实现278
5.9.1 Jenkins持续集成278
5.9.2 Jenkins在TKE平台架构中的应用279
5.9.3 部署环境280
5.9.4 TKE集群侧配置280
5.9.5 Jenkins侧配置283
5.9.6 slave Pod构建配置292
5.9.7 构建测试296
5.9.8 自动化构建发布300
5.9.9 Jenkins批量构建配置307
5.10 部署案例之ELK308
5.11 容器日志的三种采集配置方式312
5.12 蓝绿部署328
5.13 灰度发布331
5.14 部署JMeter压测工具336
5.15 部署Prometheus监控341
5.16 部署Ingress kong网关347
5.17 部署Istio351
5.18 搭建Harbor仓库358
5.18.1 Harbor核心组件及部署环境358
5.18.2 非Harbor侧配置359
5.18.3 Harbor侧配置360
第6章 腾讯云TKE运维和排障369
6.1 容器服务高危操作369
6.2 WordPress容器化业务操作排错总结371
6.3 腾讯云TKE排障之节点与网络异常372
6.4 腾讯云TKE排障之Helm与镜像仓库375
6.5 腾讯云TKE排障之Service和Ingress异常376
6.6 腾讯云TKE排障之Pod异常382
6.7 腾讯云TKE排障之数据卷异常384
6.8 腾讯云TKE排障之控制台和监控异常384
6.9 腾讯云TKE健康检查385
6.9.1 脚本功能及使用385
6.9.2 自助健康检查387
第7章 腾讯云TKE经典实践案例390
7.1 腾讯云TKE应用跨区高可用部署方案(一)390
7.1.1 高可用部署架构390
7.1.2 使用腾讯云TKE进行高可用部署391
7.2 腾讯云TKE应用跨区高可用部署方案(二)402
7.2.1 使用Pod亲和性实现跨可用区部署403
7.2.2 部署原理分析408
7.3 腾讯自研业务上云:优化Kubernetes集群负载的技术方案探讨409
7.4 腾讯IEG游戏营销活动在腾讯云TKE中的实践415
7.5 基于腾讯云TKE的大规模强化学习实践421
7.5.1 项目挑战421
7.5.2 训练架构421
7.5.3 业务需求422
7.5.4 基于腾讯云TKE的大规模分布式强化学习解决方案422
7.5.5 创新性424
7.5.6 使用腾讯云TKE带来的价值424
7.5.7 遇到的问题426
7.6 云智天枢AI中台在腾讯云TKE中的实践427
7.6.1 云智天枢平台架构427
7.6.2 各核心窗口的架构设计429
7.7 某视频公司基于腾讯云TKE的微服务实践434
7.7.1 Spring Cloud微服务架构介绍434
7.7.2 Spring Cloud与Kubernetes的优势互补436
7.7.3 业务部署模式438
7.7.4 未来规划439



---------------------------基于Kubernetes的容器云平台实战---------------------------



前言
第1章 Docker简介 1
1.1 什么是Docker 1
1.2 为什么要用Docker 3
1.3 Docker基本概念 4
1.3.1 镜像 4
1.3.2 容器 6
1.3.3 镜像仓库 8
1.4 Docker架构及原理 8
1.4.1 Docker架构 8
1.4.2 Docker原理 11
1.4.3 容器网络 15
1.4.4 容器存储 16
1.5 Docker安装 16
1.5.1 手动安装模式 17
1.5.2 Ubuntu中自动化安装Docker 18
1.5.3 CentOS中自动化安装Docker 19
第2章 容器引擎 21
2.1 容器引擎实现原理 22
2.2 容器生命周期管理 29
2.3 容器状态管理 33
2.4 访问运行状态容器 35
2.5 访问容器内容 36
第3章 镜像管理 37
3.1 Dockerfile及镜像制作 37
3.1.1 Dockerfile的作用 37
3.1.2 Dockerfile文件构成 37
3.1.3 常用命令集 38
3.1.4 构建镜像 38
3.2 镜像基本操作 38
3.2.1 从镜像仓库下载镜像 38
3.2.2 将本地镜像上传到镜像仓库 39
3.2.3 查看本地镜像 39
3.2.4 导出和导入本地镜像 40
3.2.5 构建镜像 41
3.2.6 修改本地镜像标识 42
3.2.7 删除本地镜像 42
3.3 Dockerfile优化 42
3.3.1 Dockerfile检查项 42
3.3.2 Dockerfile优化实例 43
3.3.3 检查及优化工具 44
3.4 操作系统基础镜像制作 44
3.4.1 操作系统版本选择 45
3.4.2 操作系统参数调整 45
3.4.3 确定基础rpm包范围 45
3.4.4 确定常用命令范围 46
3.4.5 操作系统镜像制作过程 48
3.4.6 系统资源限制配置说明 49
3.5 容器镜像安全加固 49
3.5.1 容器安全加固规范 49
3.5.2 安全检查工具 51
第4章 镜像仓库管理 52
4.1 Docker Registry 52
4.1.1 Docker Hub 52
4.1.2 第三方公共仓库 53
4.1.3 建立私有镜像仓库 53
4.2 Harbor 54
4.2.1 Harbor架构 55
4.2.2 Harbor的镜像同步机制 56
4.2.3 Harbor用户认证 56
4.2.4 Harbor容器镜像安全扫描 57
4.2.5 Harbor部署实战 57
第5章 Docker相关部署实践 59
5.1 MySQL Docker部署实践 59
5.1.1 MySQL简介 59
5.1.2 MySQL为什么要容器化部署 60
5.1.3 MySQL容器化操作实践 60
5.2 Docker支持GPU实践 62
5.2.1 GPU简介 62
5.2.2 CPU与GPU的对比 63
5.2.3 通过nvidia-docker使用GPU 63
第6章 Kubernetes简介 65
6.1 PaaS简介 65
6.1.1 传统PaaS系统 65
6.1.2 基于Docker的新型PaaS平台 67
6.2 为什么需要Kubernetes 69
6.3 Kubernetes的由来 69
6.3.1 Kubernetes的特点 69
6.3.2 Kubernetes的历史 70
6.4 Kubernetes核心概念 71
第7章 Kubernetes架构和部署 73
7.1 Kubernetes架构及组件 73
7.1.1 Master节点 73
7.1.2 Node节点 75
7.1.3 调度控制原理 76
7.1.4 集群功能模块间的通信 76
7.1.5 Kubernetes高可用方案 77
7.2 Kubernetes部署方案总结 77
第8章 Pod相关核心技术 81
8.1 Pod 81
8.1.1 Pod定义文件详解 81
8.1.2 基本操作 83
8.1.3 Pod与容器 85
8.1.4 镜像 86
8.1.5 其他设置 86
8.1.6 Pod调度 89
8.1.7 Pod生命周期 90
8.2 Label 92
8.3 Replication Controller和Replica Set 93
8.3.1 RC定义文件详解 93
8.3.2 RC与Pod的关联——Label 95
8.3.3 弹性伸缩 97
8.3.4 滚动升级 98
8.3.5 新一代副本控制器Replica Set 100
8.4 Horizontal Pod Autoscaler 101
8.5 Deployment 102
8.6 Job 105
8.7 StatefulSet 106
8.7.1 使用StatefulSet 106
8.7.2 扩容/缩容StatefulSet 108
8.8 ConfigMap 110
8.9 健康检查 112
8.9.1 流程健康检查 112
8.9.2 应用健康检查 112
第9章 Kubernetes Service 114
9.1 容器及Pod间通信 115
9.2 kube-proxy 117
9.3 DNS服务发现机制 118
9.4 Headless服务 119
9.5 Kubernetes服务 120
9.5.1 ClusterIP 122
9.5.2 NodePort 123
9.5.3 LoadBalancer 125
9.5.4 Ingress 125
9.6 网络策略 127
9.7 完整的Kubernetes服务发布实践 128
9.7.1 各Kubernetes集群
LoadBalancer服务发布 130
9.7.2 Ingress服务发布 132
9.7.3 服务发现 133
第10章 Kubernetes网络 134
10.1 单主机Docker网络通信 134
10.1.1 Host模式 135
10.1.2 Container模式 135
10.1.3 None模式 136
10.1.4 Bridge模式 136
10.1.5 基础网络模型的优缺点分析 137
10.2 跨主机Docker网络通信 137
10.2.1 Flannel网络方案 139
10.2.2 Calico网络方案 140
10.2.3 利用Kuryr整合OpenStack与Kubernetes网络 143
10.2.4 网络方案对比分析 144
第11章 Kubernetes存储 145
11.1 存储使用场景 145
11.2 文件存储的几种形式 146
11.3 Flex Volume存储管理方案 148
11.3.1 为什么需要灵活存储组件 148
11.3.2 如何实现灵活存储组件 148
11.4 标准化容器存储接口CSI 149
第12章 安全及多租户配额管理 150
12.1 API服务器认证 151
12.2 API服务器授权 152
12.3 Admission Control 152
12.4 Service Account 154
12.5 配额管理 155
12.5.1 资源请求与限制 155
12.5.2 全局默认配额 156
12.5.3 多租户资源配额管理 157
第13章 Kubernetes运维管理 161
13.1 Kubernetes日志管理 161
13.1.1 日志概述 161
13.1.2 ELK日志管理方案实践 162
13.2 Kubernetes监控管理 172
13.2.1 监控概述 172
13.2.2 监控方案实践 172
第14章 TensorFlow on Kubernetes 182
14.1 TensorFlow简介 182
14.2 在Kubernetes上部署TensorFlow的价值 183
14.3 Kubernetes如何支持GPU 184
14.3.1 使用方法 184
14.3.2 多种型号的GPU 186
14.3.3 使用CUDA库 187
14.4 TensorFlow on Kubernetes架构 188
14.5 TensorFlow部署实践 189
14.5.1 下载镜像 189
14.5.2 yaml文件准备 189
14.5.3 执行命令安装TensorFlow 190
第15章 Spark on Kubernetes 191
15.1 Spark系统概述 191
15.1.1 Spark简介 191
15.1.2 Spark与Hadoop差异 191
15.1.3 功能模块 192
15.1.4 功能关系 192
15.2 基于容器技术的Spark部署 193
15.2.1 基于容器技术部署Spark的优势 193
15.2.2 针对大数据应用:容器的计算性能优化方向 194
15.2.3 针对大数据应用:容器的网络性能优化方向 194
15.2.4 针对大数据应用:容器的弹性&扩容 194
15.3 Spark集群安装 195
15.3.1 制作Spark镜像 195
15.3.2 yaml文件准备 195
15.3.3 执行命令安装Spark 196
第16章 金融容器云平台总体设计方案 197
16.1 金融行业为什么需要容器云平台 197
16.2 容器及编排技术选型 198
16.2.1 容器选型 198
16.2.2 编排引擎选型 199
16.3 架构设计 199
16.3.1 系统架构 199
16.3.2 逻辑架构 200
16.3.3 数据架构 202
16.3.4 技术架构 205
16.3.5 部署架构 206
16.4 关键模块方案设计 206
16.4.1 网络 206
16.4.2 存储 207
16.4.3 日志 207
16.4.4 监控 209
16.4.5 配置中心 211
16.4.6 安全管理 212
16.4.7 管理门户 213
16.4.8 微服务网关 214
16.4.9 DevOps 215
16.4.10 可视化编排及自动化部署 216
16.4.11 多租户 216
16.5 传统应用迁移注意事项 217
第17章 DevOps 219
17.1 用Docker实现DevOps的优势 219
17.2 基于Docker实现DevOps 220
17.3 基于容器的持续集成流程设计 221
17.3.1 版本管理 221
17.3.2 流水线 221
17.4 工具链 222
17.4.1 项目管理 222
17.4.2 需求管理 222
17.4.3 代码托管 222
17.4.4 持续集成 223
17.4.5 测试 223
17.4.6 自动化部署 223
第18章 微服务 224
18.1 微服务架构的优点 224
18.2 微服务架构概念模型 225
18.3 微服务网关 226
18.4 服务注册与发现 226
18.4.1 服务注册 226
18.4.2 服务发现 227
18.4.3 服务注册发现方案对比 228
18.5 进程间通信 228
18.5.1 Rest 229
18.5.2 Thrift 229
18.5.3 消息队列 229
18.6 微服务应用性能监控 229
18.6.1 开源方案 230
18.6.2 听云商业化方案 230
18.7 微服务框架 234
第19章 Spring Cloud 237
19.1 Spring Boot 237
19.1.1 为什么要使用
Spring Boot 238
19.1.2 快速入门 238
19.1.3 Spring Boot的优缺点总结 241
19.2 Spring Cloud 242
19.2.1 核心成员 243
19.2.2 Spring Cloud的优缺点分析 246
19.2.3 与Spring Boot之间的关系 247
19.3 Spring Cloud与Kubernetes融合实践 247
19.3.1 API网关 249
19.3.2 服务注册发现 250
19.3.3 客户端负载均衡 250
19.3.4 断路器 251
19.3.5 监控 252
19.3.6 配置管理 252
19.3.7 消息总线 253
19.3.8 链路跟踪 254
19.4 Spring Cloud特点总结 254
第20章 Serverless 256
20.1 Serverless发展史简介 256
20.2 Serverless的工作原理 257
20.2.1 Serverless的定义 258
20.2.2 Serverless的特点 259
20.2.3 Serverless的分类 259
20.2.4 Serverless设计的优势 260
20.2.5 Serverless设计的局限性 260
20.2.6 Serverless与相关概念间的关系 261
20.3 Serverless平台选型 261
20.4 Serverless适用场景 262
20.5 对比分析 263
第21章 Service Mesh 264
21.1 服务网格的由来 264
21.1.1 分布式架构对服务网络的要求 265
21.1.2 向Service Mesh演进 267
21.1.3 Service Mesh的定义 268
21.2 Linkerd 270
21.3 Istio 272
21.3.1 Istio架构 273
21.3.2 设计目标 275
21.3.3 流量管理 276
21.3.4 Pilot 276
21.3.5 请求路由 277
21.3.6 发现和负载均衡 278
21.3.7 处理故障 279
21.3.8 故障注入 280
21.3.9 规则配置 280
21.4 Service Mesh发展展望 283

推荐

车牌查询
桂ICP备20004708号-3