互聯網企業容器技術實踐

龔曦

買這商品的人也買了...

商品描述

本書通過容器技術領域的實踐者分享各自的實踐案例,介紹常見的業務痛點、實現方式、方案的選型、遇到的問題和解決方案等,希望能夠幫助讀者了解、認識和玩轉容器。

本書主要分為兩部分:

第一部分是原理篇,包括第1章和第2章,簡單介紹Docker和Kubernetes的基礎知識及原理,包括Docker和Kubernetes是什麼、可以做什麼及如何使用等;第

二部分是案例篇,包括第3~10章,通過多個實戰案例,針對不同的使用場景和業務需求,介紹如何應用容器技術及實現相關需求。

本書案例均來自一線真實案例,並有技術人員對技術改造過程的體會和領悟,有較強的借鑒意義和參考價值。

目錄大綱

目    录
第1章 Docker入门    1
1.1 容器简介与Docker容器引擎    2
1.1.1 什么是容器    2
1.1.2 Docker容器    2
1.2 Docker核心原理    5
1.2.1 Docker引擎结构    5
1.2.2 Docker服务流程    6
1.2.3 Docker核心技术    6
1.3 Docker镜像及镜像仓库    16
1.3.1 什么是Docker镜像    16
1.3.2 构建Docker镜像    16
1.3.3 搭建Docker镜像仓库    21
1.4 Docker网络    22
1.4.1 Docker网络架构    22
1.4.2 Docker网络原理    23
第2章 Kubernetes入门    28
2.1 Kubernetes概述    29
2.1.1 什么是Kubernetes    29
2.1.2 为什么选择Kubernetes    29
2.1.3 Kubernetes基本概念    31
2.2 Kubernetes架构及安装    36
2.2.1 Kubernetes架构    36
2.2.2 Kubernetes核心组件    38
2.2.3 二进制安装Kubernetes集群    44
2.2.4 kubespray安装Kubernetes集群    50
2.3 Kubernetes实战案例    52
2.3.1 WordPress应用模型    52
2.3.2 部署WordPress    53
2.3.3 部署MariaDB    54
2.3.4 通过浏览器访问WordPress    57
2.4 Kubernetes网络    57
2.4.1 Kubernetes中的网络场景    57
2.4.2 Kubernetes网络模型    59
2.4.3 Kubernetes开源网络方案    60
2.5 Kubernetes高级特性    64
2.5.1 Federation    65
2.5.2 GPU支持    68
2.6 Kubernetes生态    71
2.6.1 Kubernetes包管理工具Helm    71
2.6.2 Service Mesh    73
2.6.3 Serverless    76
第3章 美丽联合容器云实践    79
3.1 “从零到一”:容器云平台的技术演进    80
3.1.1 为什么要建设容器云平台    80
3.1.2 如何建设容器云平台    80
3.1.3 架构演进    84
3.1.4 稳定性、效率和成本    89
3.2 “自我突破”:关键技术方案和创新点    93
3.2.1 版本演进    93
3.2.2 关键技术和创新点    94
3.3 总结    109
3.3.1 体会和心得    109
3.3.2 展望未来    110
3.3.3 遇到过的问题    114
3.3.4 开源工具分享    115
第4章 酷家乐容器化之路    119
4.1 架构挑战与应对方案    120
4.2 应用容器化    122
4.2.1 CI/CD迁移    122
4.2.2 公共基础镜像    122
4.2.3 镜像构建及单元测试    123
4.2.4 容器部署    124
4.2.5 网络模式    124
4.2.6 性能相关    124
4.2.7 小结    125
4.3 编排自动化    125
4.3.1 资源隔离与资源限额    125
4.3.2 Kubernetes的认证与授权    128
4.3.3 CMDB改造    131
4.3.4 Kubernetes的包管理工具Helm    132
4.3.5 存储方案    132
4.3.6 网络方案    132
4.3.7 日志与监控    133
4.3.8 小结    134
4.4 酷家乐的服务网格实践    134
4.4.1 服务网格的发展现状    135
4.4.2 酷家乐技术团队应用Istio的范围    135
4.4.3 Istio的安装    135
4.4.4 通过Istio的信息进行全自动化部署    135
4.4.5 通过Istio + Zipkin + Sleuth实现调用链路追踪    137
4.4.6 通过Istio的routing rule实现不同的发布策略和版本策略    138
4.4.7 通过修改Istio系统设置实现Pod外部访问控制    139
4.4.8 Istio的其他风险    140
4.4.9 小结    140
4.5 总结    140
第5章 个推基于Docker和Kubernetes的微服务实践    142
5.1 微服务    143
5.1.1 微服务简介    143
5.1.2 微服务实践    145
5.2 容器化    149
5.3 Kubernetes实践    151
5.4 总结    157
第6章 使用Kubernetes进行交换机端口流量采集    158
6.1 Prometheus简介与使用    159
6.1.1 Prometheus特点    159
6.1.2 Prometheus相关组件    159
6.1.3 Prometheus架构    159
6.1.4 Prometheus适用场景    160
6.1.5 Prometheus的安装及使用    160
6.1.6 Prometheus SNMP Exporter    168
6.1.7 Prometheus 告警    169
6.1.8 Grafana    171
6.2 流量采集系统    171
第7章 搜道微服务容器化实践    175
7.1 为何选择Docker    176
7.1.1 公司架构演变过程    176
7.1.2 平台存在的问题    176
7.1.3 容器优势    176
7.2 Docker容器云架构方案    177
7.2.1 技术选型及实践    177
7.2.2 服务注册与服务发现    192
7.2.3 Docker网络与通信解决方案    193
7.3 未来展望:自动化和弹性云    194
7.3.1 自动化    195
7.3.2 弹性云    195
第8章 纵横新创的容器化实践    196
8.1 背景介绍    197
8.2 Rancher介绍    198
8.2.1 基础设施编排    199
8.2.2 应用商店    199
8.2.3 容器编排与调度    199
8.2.4 企业级权限管理    199
8.3 Docker构件库配置    199
8.3.1 Nexus 3安装    200
8.3.2 Nexus 3配置Docker镜像库    201
8.3.3 配置Docker环境    202
8.4 构建Maven环境    208
8.4.1 配置POM文件    208
8.4.2 配置DockerFile文件    209
8.4.3 开启Docker的远程接口    209
8.4.4 执行Maven编译    210
8.5 Rancher在Jenkins中的配置    211
8.5.1 Jenkins中安装Rancher插件    212
8.5.2 在Rancher服务中配置API连接信息    212
8.5.3 在Jenkins中配置    213
8.5.4 Jenkins的执行效果    214
8.6 问题与总结    216
8.6.1 Rancher的高可用    216
8.6.2 收集日志    216
8.6.3 监控告警    217
8.6.4 调用链监控    217
8.7 写在最后    218
第9章 九言科技Kubernetes实践    219
9.1 现有维护中的瓶颈    220
9.2 容器管理平台的选择    220
9.3 环境的搭建与CI/CD    220
9.3.1 用kubeadm快速搭建Kubernetes环境    221
9.3.2 Kubernetes环境下的CI/CD整体架构    222
9.4 存储引擎的选择    222
9.4.1 存储概述    222
9.4.2 如何选择驱动引擎    223
9.5 Kubernetes日志收集    226
9.5.1 收集日志的需求    226
9.5.2 收集日志的解决方案    226
9.6 未来探索    229
9.6.1 Service Mesh介绍    229
9.6.2 FaaS与Serverless    230
9.7 小结    232
第10章 沃趣科技的容器化RDS之路    233
10.1 容器化RDS:计算存储分离架构下的“Split-Brain”    234
10.2 容器化RDS:计算存储分离架构下的I/O优化    242
10.2.1 计算存储分离架构    243
10.2.2 计算存储分离架构的缺点    243
10.2.3 DoubleWrite    243
10.2.4 单机架构:关闭DoubleWrite    244
10.2.5 计算存储分离架构:关闭DoubleWrite    244
10.3 容器化RDS:PersistentLocalVolumes和VolumeScheduling    246
10.3.1 本地卷    246
10.3.2 原有调度机制的问题    246
10.3.3 PVC绑定    247
10.3.4 Pod调度    247
10.4 容器化RDS:借助CSI扩展Kubernetes存储能力    252
10.4.1 现有Kubernetes存储插件系统问题    253
10.4.2 Container Storage Interface    254
10.4.3 基于CSI和分布式文件系统在MySQL上实现Dynamically Expand Volume    255
10.4.4 对CSI的展望    257