容器即服务:从零构建企业级容器集群
内容介绍
《容器即服务:从零构建企业级容器集群》介绍了容器即服务的发展过程和主要技术,重点阐述当下主流的SwarmKit、Kubernetes、Mesos和Rancher 开源容器集群方案,并探讨了容器技术在网络、存储、监控、日志等方面的运用场景和基础知识,以及该领域在近年来的一些新的发展方向。
《容器即服务:从零构建企业级容器集群》适合一线架构师、开发者、运维人员以及技术管理者进行阅读。
目录
- 第1 部分 基础概念
- 第1 章 容器集群综述 . 2
- 1.1 虚拟化与容器 2
- 1.1.1 计算资源虚拟化2
- 1.1.2 容器技术的本质4
- 1.1.3 基于容器的软件交付13
- 1.2 容器集群与分布式服务 16
- 1.2.1 微服务架构16
- 1.2.2 容器集群生态圈18
- 1.3 容器即服务26
- 1.3.1 从基础设施到平台 26
- 1.3.2 数据中心操作系统 29
- 1.4 本章小结31
- 第2 部分 解决方案
- 第2 章 SwarmKit 集群解决方案 35
- 2.1 开源容器集群方案 35
- 2.1.1 容器社区的“四朵金花” 35
- 2.1.2 经典Swarm、SwarmKit 和Swarm Mode36
- 2.2 使用SwarmKit.37
- 2.2.1 SwarmKit 综述 .37
- 2.2.2 创建SwarmKit 集群 .40
- 2.2.3 在SwarmKit 集群上运行服务 .43
- 2.2.4 SwarmKit 集群的其他功能45
- 2.3 Docker Swarm Mode45
- 2.3.1 Swarm Mode 综述45
- 2.3.2 集群的创建与销毁 46
- 2.3.3 节点管理 48
- 2.3.4 服务管理 51
- 2.3.5 服务编排 56
- 2.3.6 应用栈的管理 63
- 2.3.7 外置配置和密文管理66
- 2.4 Swarm Mode 的图形界面69
- 2.4.1 Swarm Mode UI 现状69
- 2.4.2 Portainer 71
- 2.5 本章小结74
- 第3 章 Kubernetes 集群解决方案 75
- 3.1 Kubernetes 集群概述75
- 3.1.1 Kubernetes 项目的起源75
- 3.1.2 Kubernetes 的结构76
- 3.1.3 基本概念 78
- 3.2 部署Kubernetes 集群.82
- 3.2.1 使用Minikube82
- 3.2.2 使用kubeadm83
- 3.2.3 理解Kubernetes 集群的部署过程 87
- 3.2.4 验证集群可用性96
- 3.3 使用Kubernetes 98
- 3.3.1 通过Kubernetes 部署服务98
- 3.3.2 服务的在线更新和回滚 103
- 3.3.3 单次任务、定时任务和全局服务 109
- 3.3.4 持久化存储.113
- 3.3.5 配置存储 .116
- 3.3.6 管理有状态的服务 .122
- 3.3.7 健康检查 .126
- 3.3.8 提供对外服务 .127
- 3.3.9 多租户隔离和配额 .131
- 3.3.10 集群的节点管理 135
- 3.4 Kubernetes 包管理工具Helm137
- 3.4.1 Helm 简介137
- 3.4.2 使用Helm 管理服务137
- 3.4.3 自定义Chart142
- 3.4.4 Chart 仓库146
- 3.5 本章小结 147
- 第4 章 Mesos 集群解决方案 148
- 4.1 Mesos 和DC/OS 概述 148
- 4.1.1 Mesos 项目的起源 148
- 4.1.2 Mesos 的结构 149
- 4.1.3 Mesos 的内部构成 151
- 4.1.4 DC/OS 数据中心操作系统152
- 4.2 部署Mesos 集群153
- 4.2.1 部署ZooKeeper153
- 4.2.2 部署Mesos .157
- 4.2.3 启动Master 节点158
- 4.2.4 添加Agent 节点.161
- 4.2.5 Mesos 服务的启动参数 164
- 4.3 使用Marathon 管理服务.170
- 4.3.1 部署Marathon170
- 4.3.2 添加一个应用 172
- 4.3.3 使用DC/OS 命令行工具177
- 4.3.4 使用Docker 容器 177
- 4.3.5 使用Unified Container179
- 4.3.6 持久化卷存储 182
- 4.3.7 Marathon-LB 负载均衡 184
- 4.3.8 Mesos-DNS 域名服务188
- 4.3.9 服务依赖和编组191
- 4.3.10 应用升级194
- 4.3.11 调度约束199
- 4.3.12 健康检查201
- 4.4 使用Chronos203
- 4.4.1 部署Chronos203
- 4.4.2 定时表达式.204
- 4.4.3 创建定时任务 .205
- 4.4.4 定时任务的依赖.208
- 4.5 更多的Mesos 服务框架209
- 4.5.1 Mesos 服务框架的本质 209
- 4.5.2 编写自己的Mesos 服务框架 211
- 4.5.3 其他常见服务框架 216
- 4.6 DC/OS218
- 4.6.1 DC/OS 简介218
- 4.6.2 部署DC/OS 219
- 4.6.3 DC/OS 的操作 228
- 4.6.4 DC/OS 命令行工具 230
- 4.6.5 DC/OS 的应用仓库 231
- 4.7 本章小结 234
- 第5 章 Rancher 集群解决方案235
- 5.1 Rancher 集群概述 235
- 5.1.1 Rancher 项目的起源235
- 5.1.2 Rancher 的结构236
- 5.1.3 相关概念 .237
- 5.2 构建Rancher 集群 239
- 5.2.1 部署Server 节点.239
- 5.2.2 Server 节点的高可用部署方式240
- 5.2.3 添加Agent 节点.241
- 5.3 Rancher 的服务管理.243
- 5.3.1 使用Rancher Web UI 创建服务243
- 5.3.2 从容器245
- 5.3.3 特殊类型的服务.247
- 5.3.4 使用应用商店 251
- 5.3.5 服务编排 252
- 5.3.6 服务的升级和回滚 254
- 5.4 Rancher 使用进阶 256
- 5.4.1 Rancher 的标签256
- 5.4.2 调度选项 257
- 5.4.3 服务健康检查 258
- 5.4.4 Rancher 的元数据服务 260
- 5.4.5 Rancher 的DNS 服务262
- 5.4.6 使用私有镜像仓库 263
- 5.4.7 Rancher 的Secret 服务 264
- 5.4.8 在应用商店添加自定义应用 265
- 5.5 Rancher 的命令行工具 268
- 5.5.1 配置Rancher 命令行工具268
- 5.5.2 命令工具的基本使用.270
- 5.5.3 通过命令行进行服务编排.273
- 5.5.4 通过命令行进行服务升级273
- 5.6 使用Rancher 安装Kubernetes 274
- 5.6.1 Rancher 的环境管理274
- 5.6.2 在Rancher 中添加Kubernetes 环境276
- 5.6.3 在Rancher 中使用Kubernetes 279
- 5.7 本章小结 282
- 第3 部分 技术周边
- 第6 章 容器集群的网络和存储284
- 6.1 容器网络 284
- 6.1.1 容器网络标准 284
- 6.1.2 本地网络 288
- 6.1.3 跨节点网络293
- 6.1.4 使用Docker 内置的Overlay 类型网络 300
- 6.1.5 构建基于Flannel 的覆盖网络301
- 6.1.6 构建基于Calico 的BGP 路由网络306
- 6.2 容器存储 310
- 6.2.1 容器实例和镜像的存储 310
- 6.2.2 容器卷的存储 312
- 6.2.3 容器卷存储标准316
- 6.2.4 基于NFS 的卷存储 317
- 6.2.5 基于Ceph 的卷存储320
- 6.2.6 使用公有云存储330
- 6.3 本章小结 332
- 第7 章 容器服务的基础设施 333
- 7.1 集群性能监控 333
- 7.1.1 常见的开源性能监控方案333
- 7.1.2 基于TICK Stack 的性能监控 335
- 7.1.3 TICK Stack 的部署和使用 336
- 7.1.4 基于Prometheus 的性能监控 341
- 7.1.5 Prometheus 的部署 343
- 7.1.6 Prometheus 的使用 353
- 7.2 集群日志管理 361
- 7.2.1 常见的开源日志管理方案361
- 7.2.2 基于Elastic Stack 的日志管理363
- 7.2.3 基于Fluentd 的日志管理372
- 7.3 服务发现 377
- 7.3.1 常见的服务发现方案377
- 7.3.2 Etcd 379
- 7.3.3 Consul 390
- 7.4 镜像仓库 398
- 7.4.1 容器镜像仓库概述 398
- 7.4.2 Registry 399
- 7.4.3 Harbor 405
- 7.5 本章小结 412
- 第8 章 容器技术新风向 413
- 8.1 安全的集群操作系统:Container Linux 413
- 8.1.1 Container Linux 概述413
- 8.1.2 Container Linux 的部署 416
- 8.1.3 Container Linux 的使用 418
- 8.2 基于容器的操作系统:RancherOS 419
- 8.2.1 RancherOS 概述.419
- 8.2.2 部署RancherOS 421
- 8.2.3 RancherOS 的使用 422
- 8.2.4 使用ros 工具管理系统 424
- 8.3 容器式的虚拟机:Hyper 429
- 8.3.1 Hyper 概述429
- 8.3.2 部署Hyper430
- 8.3.3 Hyper 的使用 431
- 8.4 虚拟机式的容器:LXD434
- 8.4.1 LXD 概述 434
- 8.4.2 LXD 的安装和使用 435
- 8.4.3 服务热迁移.440
- 8.5 容器与虚拟机的统一:Rkt 442
- 8.5.1 Rkt 概述 442
- 8.5.2 Rkt 的安装和使用 444
- 8.6 企业级定制容器:Pouch 450
- 8.6.1 Pouch 概述450
- 8.6.2 Pouch 的开源生态 453
- 8.6.3 体验Pouch455
- 8.7 微内核操作系统:Unikernel .458
- 8.7.1 Unikernel 概述 458
- 8.7.2 Unikernel 的发展460
- 8.7.3 体验Unikernel 462
- 8.8 本章小结 465