基于用户决策框架的 Docker Swarm 应用与去中心化云管理架构解析
1. Docker Swarm 应用相关
在使用 Docker Swarm 时,有一系列服务会在 Swarm 中按特定约束进行部署,具体服务及部署情况如下:
| 服务名称 | 副本数量 | 重启策略 | 部署位置约束 |
| ---- | ---- | ---- | ---- |
| Python 网页应用 | 2 个 | 节点故障时重启容器 | 无 |
| redis | 2 个 | 节点故障时重启容器 | 无 |
| Node.js 网页应用(results - app) | 1 个 | 节点故障时重启容器 | 无 |
| Postgres 数据库 | 无 | 无 | 仅在 Swarm 管理器节点启动 |
| .NET 工作器 | 无 | 无 | 仅在 Swarm 管理器节点启动 |
对于数据库,采用 Docker 卷进行支持,该卷在 Swarm 管理器节点创建,数据库存储在主机(即 Swarm 管理器节点)中,为应用提供数据持久化。由于 Docker 卷附着在该虚拟机上,所以在实验中 Swarm 管理器节点不会被解除分配(排空)。若将 Postgres 容器部署在后续会被排空的工作节点上,其数据丢失会导致应用失败。
不过,这种方式不允许附带数据库的应用容器迁移。若要进行此类迁移,Docker Swarm 需要额外的存储插件。像 Flocker、Portworx 和 REX - RAY 等开源容器数据卷编排器可用于迁移有状态的 Docker 化应用。与绑定单个服务器的 Docker 数据卷不同,这些存储驱动提供的数据卷具有可移植性,
超级会员免费看
订阅专栏 解锁全文
4万+

被折叠的 条评论
为什么被折叠?



