在Swarm集群中创建和管理有状态服务
1. 在网络文件系统上持久化有状态服务
在运行服务的容器外部保留状态是必要的。一种方法是在主机上挂载卷,但这种解决方案有局限性,因为Swarm不一定会将服务重新调度到同一节点,这会影响服务的可用性。
为了解决节点故障问题,可以将NFS挂载到每个服务器上,这样每个服务器都可以访问相同的数据,并且可以将Docker卷挂载到该NFS上。这里选择使用Amazon Elastic File System (EFS),因为它可以跨多个可用区使用。
1.1 创建EFS文件系统
- 打开EFS主页:
bash open "https://console.aws.amazon.com/efs/home?region=$AWS_DEFAULT_REGION"
对于Windows用户,如果Git Bash无法使用open命令,可以将$AWS_DEFAULT_REGION替换为集群运行的区域(例如us-east-2),然后在浏览器中打开该URL。 - 点击“Create file system”按钮。
- 对于每个可用区,将默认安全组替换为之前使用Terraform创建的
docker安全组。 - 两次点击“Next Step”按钮,然后点击“Create File System”。
- 等待每个可用区的生命周期状态设置为“Available”。
超级会员免费看
订阅专栏 解锁全文
1万+

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



