2

我需要将 Couchbase 2.2 配置为使用短主机名

目前我正在使用 Couchbase 2.0.1,在这种情况下,解决方案很简单:

  1. /opt/couchbase/var/lib/couchbase/ip在和 /opt/couchbase/var/lib/couchbase/ip_start文件中设置短主机名。
  2. extra="-name ns_1@$ip"将 for extra="-sname ns_1@$ip"in_start()函数更改为/opt/couchbase/bin/couchbase-server. 此参数用于运行 erl ( -run ns_bootstrap -- $extra)

此步骤允许我使用短主机名配置节点并基于这些创建集群。

在 Couchbase 2.2 中我不能这样做,因为erl使用babysitter运行。我尝试将保姆配置为使用短主机名,但我无法使其工作......

这些服务器部署在一个只处理短主机名的私有虚拟化环境中。

每个节点有 2 个 ip,一个公共的,一个私有的。如果我ping从自身运行命令,我会得到他们的私有 IP,然后我从任何其他节点运行 ping 命令,我会得到他们的公共 IP

比如我有一个节点:myhost-00(私网IP:192.168.8.170 公网IP:10.254.171.29)

从本身:

$ ping myhost-00
PING myhost-00 (192.168.8.170) 56(84) bytes of data.

从其他节点:

$ ping myhost-00
PING myhost-00 (10.254.171.29) 56(84) bytes of data.

有任何想法吗?

4

2 回答 2

2

我想出了一个解决方法:

首先,我不修改任何 Couchbase 文件。

其次,我在每个 /etc/hosts 文件中的短主机名中添加了一个假域。在文件中,我附加了当前节点的私有 IP 和具有假域的其他节点的公共 IP。

For example, assuming I have 2 hosts: 
myhost-00 (private IP: 192.168.8.170 public IP: 10.254.171.29) 
myhost-01 (private IP: 192.168.8.168 public IP: 10.254.171.30)

myhost-00 /etc/hosts file:
...
192.168.8.170 myhost-00.mydomain
10.254.171.30 myhost-01.mydomain
...

myhost-01 /etc/hosts file:
...
10.254.171.29 myhost-00.mydomain
192.168.8.168 myhost-01.mydomain
...

最后,我使用带有假域(myhost-00.mydomain 和 myhost-01.mydomain)的主机名创建集群

于 2014-06-10T16:25:01.177 回答
0

目前,Couchbase 不允许使用短名称作为节点名称。有票证更新讨论并确认了这种情况。

对于长主机名,您可以在http://docs.couchbase.com/couchbase-manual-2.2/#couchbase-getting-started-hostnameshttp://docs.couchbase.com/couchbase-manual找到使用主机名的步骤-2.5/cb-install/#using-hostnames,取决于版本。您可以在创建集群、将节点添加到集群时利用主机名,也可以通过 REST API 命令将 IP 地址更改为主机名。有关完整详细信息,请参阅文档。

于 2014-06-10T00:12:50.370 回答