我需要将本地的scouchbase群集并从我们的产品群集中复制数据,不能直接安装在OS X上(因为Vbuckets不兼容 - POD CLUST在Linux上)。
docker进行救援。我已经设法创建了Dockerfile,您可以在这里看到它。
现在,群集运行,可以在LAN内部到达,所有必要的端口都在转发 - 我使用了此处描述的技巧
我在XDCR选项卡中成功创建了群集参考,但是每当我尝试复制Bucket的数据时 - 它将我的群集的主机名更改为某些非敏感IP地址并创建日志条目:
Updated remote cluster `mycluster` hostname to "172.17.0.5:8091"
because old one ("mylaptop.company.com:8091")
is not part of the cluster anymore
我知道Couchbase对IP地址非常敏感,而您可以看到,我正在使用机器的主机名(Docker容器的主机)。我尝试使用docker run -h
更改容器的主机名,这似乎没有帮助。
任何人,你们是否设置了XDCR,并在Docker容器中运行群集?
群集不会接受您的节点作为其中的一部分,因此将其淘汰。似乎您没有正确设置网络。
可能是您需要更多的端口:(所有节点到节点端口)>
另外,您如何启动容器?将公开曝光在Dockerfile中不会打开端口,您还需要将-p放入命令中才能真正公开端口
我最终弄清楚了。第一步是将您的Couchbase主机名设置为可从主群集访问的东西。您要做的第二件事是更新从属群集上的主机文件,将当前的127.0.0.1定义替换为couchbase_hostname是上面使用的主机名,我无法使用公共IP地址,并且必须使用域名DNS记录指向从属:
127.0.0.1 couchbase_hostname