第1章 欢迎来到Docker Swarm 1
集群工具和容器管理器 3
Swarm的目标 3
为什么使用Swarm 4
真实的示例 5
宠物模型vs牛群模型 5
Swarm特性 6
类似项目 7
Kubernetes 7
CoreOS Fleet 8
Apache Mesos 9
Kubernetes vs Fleet vs Mesos 10
Swarm vs所有 10
Swarm v1架构 10
术语 12
开始使用Swarm 13
Mac系统上的Docker 14
Windows系统上的Docker 16
使用Linux 18
检查Docker Machine是否可用——所有系统 19
以前的Swarm 19
Boot2Docker 21
使用Docker Machine创建4个集群节点 21
配置Docker主机 24
启动Docker Swarm 25
启动Docker Swarm 25
测试Swarm集群 29
如今的Swarm 31
本章小结 35
第2章 探索发现服务 36
发现服务 37
Token 38
使用token重新架构第1章示例 38
Token的限制 43
Raft 43
Raft理论 43
实际的Raft 45
Etcd 47
使用Etcd重新架构第1章示例 47
ZooKeeper 50
Consul 50
使用Consul重新架构第1章示例 50
实现去中心化的发现服务 52
本章小结 52
第3章 遇见Docker Swarm Mode 53
SwarmKit 53
版本和支持 54
SwarmKit架构 54
SwarmKit的核心:swarmd 56
SwarmKit的控制器:swarmctl 57
使用Ansible预配SwarmKit集群 58
在SwarmKit上创建服务 62
Swarm Mode 63
Swarm vl vs Swarm Mode vs SwarmKit 64
深入了解Swarm Mode部署 65
本章小结 72
第4章 创建生产级别Swarm 73
工具 73
Swarm2k的HA拓扑 74
管理器配置 75
Raft恢复场景 75
Raft文件 76
运行任务 76
管理器拓扑 76
使用belt预配基础架构 79
使用Docker Machine保护管理器安全 81
理解Swarm内部机制 83
加入worker 84
升级管理器 85
监控Swarm2k 87
InfluxDB时间序列数据库 87
Swarm3k 90
Swarm3k的搭建和工作负载 90
大规模Swarm的性能 92
总结Swarm2k和Swarm3k的经验教训 95
本章小结 96
第5章 管理Swarm集群 97
Docker Swarm standalone 97
Docker Swarm Mode 98
手动添加节点 99
管理器 99
Worker数量 100
添加脚本化节点 100
belt 102
使用Ansible 103
集群管理 105
操作节点 106
降级和升级 107
标记节点 108
移除节点 110
Swarm健康 111
备份集群配置 111
灾难恢复 112
Swarm的图形化界面 112
Shipyard 112
Portainer 114
本章小结 115
第6章 Swarm上真实应用的部署 116
微服务 116
部署一个复制的Nginx 117
一个极简的Swarm 118
Docker Service 120
overlay网络 124
集成的负载均衡 124
服务的连接:用WordPress例子展示 124
Swarm的调度策略 127
现在,WordPress 127
Docker Compose和Swarm Mode 130
Docker stacks介绍 130
分布式应用包 131
Docker deploy 132
另外一个应用:Apache Spark 133
为什么要在Docker上运行Spark 134
没有Swarm的Spark单机 134
在Swarm上的Spark单机 137
在Swarm上启动Spark 138
本章小结 140
第7章 平台的向上伸缩 141
再次登场的Spark例子 142
Docker插件 142
实验室环境 143
一个独一无二的秘钥 143
Docker Machine 144
安全组 145
网络配置 146
存储配置和架构 146
安装Flocker 148
生成Flocker证书 149
安装软件 151
安装控制节点 153
安装集群节点 153
测试一切是否正常 154
安装并配置Swarm 156
为Spark添加一个卷 157
再次部署Spark 157
测试Spark 159
使用Flocker存储 161
伸缩Spark 164
监控Swarm托管的应用 165
Prometheus 165
安装一个监控系统 166
在Grafana中导入Prometheus 167
本章小结 169
第8章 Swarm附加特性的探索 171
Libnetwork 171
Networking插件 172
容器网络模型 173
加密和路由矩阵 174
MacVLAN 174
overlay网络 175
网络控制面板 177
Libkv 179
如何使用libkv 180
本章小结 181
第9章 Swarm集群和Docker软件供应链的安全加固 182
软件供应链 182
Swarm集群的安全加固 183
安全加固Swarm:最佳实践 184
证书颁发机构 185
证书和相互TLS 185
集群加入令牌 185
在Docker Machine中添加TLS 186
Docker Notary 187
Docker Secret介绍 190
本章小结 192
第10章 Swarm和云 193
Docker for AWS和Docker for Azure 193
Docker for AWS 194
Docker for Azure 198
Docker Datacenter 201
OpenStack上的Swarm 202
OpenStack Nova 204
当下现实:OpenStack友好的方式 205
OpenStack Heat 205
OpenStack Magnum 206
本章小结 215
第11章 Swarm的未来展望 216
Provisioning的挑战 216
软件定义基础设施 216
Infrakit 217
TUF——The Update Framework 219
Docker Stacks和Compose 220
Caas——容器即服务 220
Unikernel 220
为Docker做贡献 222
Github 222
提交issue 222
代码 223
belt和其他项目 223
本章小结 223