docker swarm部署的集群,如何在线扩充机器。我现在有个三台机器的集群A,现在已经存入数据了,集群A在正常使用了。后来我们又搞来了一台机器,想将这台机器加入到集群A中,将集群A变成四台机器的集群。
我看了一下这个文档:https://docs.nebula-graph.com.cn/manual-CN/3.build-develop-and-administration/5.storage-service-administration/storage-balance/
文档好像只是说了,三台机器的集群变成8台机器的集群之后,数据如何做负载均衡,没有说如何加机器到集群里面去这一步操作
请问如何操作?
四台机器,meta还是配置成奇数三台,新增的机器应该是storage。
执行下面操作前先做好数据备份,我还没测试过
1、将新的机器加入swarm集群
docker swarm join xxxx
2、修改docker-stack.yml
新增storage4到新机器上
3、启动集群
docker stack deploy nebula -c docker-stack.yml
4、执行balance
在docker-stack.yml里面只需要添加新机器到storage 3,其他的需要变化吗?
这么使用不会重新启动docker容器吗?如果重新启动docker容器,容器里面的数据会不会就丢失了啊
docker-stack.yml改成这个吗?新添加一个storage 3
这个样子吗?这样不会重启所有机器上的docker容器吗?如果重启的话,会不会造成数据都是啊(重启容器之后,里面的数据就都没有了啊)
不应该是storage4? 按道理讲数据应该不会丢,数据是持久化到磁盘上的,不过建议还是在其他机器上先实验下
这种玩法的数据不是只是挂载在容器内的吗,这个一旦重启数据应该就没有了啊,测试很简单就直接把你的集群rm然后重新deploy一下就知道了吧。建议还是直接把数据挂载在数据盘上就行了。
我这边storage是从0开始的。
宿主机上没有看到持久化的数据。
还是感觉这么一搞,数据会丢失。我搭建一个小集群测试一下吧,请问有谁试过这种方式吗?
docker volume ls
我可以将meta和graphd也加到里面,可以吗?
docker inspect volume xxxx
可以看到持久化的目录
meta建议还是奇数graphd可以加到里面
看到本地持久化的目录了
这四个步骤搞完后给个反馈
好的
我现在使用henson的方法,可以添加storage到集群中了,数据也没有丢失。我如果将meta和graphd都在新机器上添加,好像没有可以,是吧。
请问如何下机器了?
下机器么,这得官方来回复下
metad 一个进程一份全量元数据拷贝,全集群3个就行了。graphd无状态,随便上下搞。
storaged这个下机器呢,1.X就有点暴力了。。。
我目前尝试了:
1 更改docker-stack.yml配置文件,好像无效。
2 直接下线机器,并在swarm里面取出该节点,并更改docker-stack.yml配置文件,似乎也不好使。
3 使用docker stop直接停止容器,show hosts时,节点还是online
 ̄□ ̄||
因为缓存和心跳的原因,看上去还是online
目前版本下storage
机器的话数据会出现丢失问题,对么