我们使用的是一个稍微修改过的社区中间层集群。这已经安装了mesos-dns -所以我们可以解决master.mesos和x.marathon.mesos,没有问题。问题是我们应该使用哪个名称来访问Cassandra数据库(无论是使用cqlsh还是使用其他应用程序)?
我在文档中找到了以下内容: cassandra-dcos-node.cassandra.dcos.mesos (https://docs.mesosphere.com/services/cassandra/),但是如果我们更改集群名称(比如"foo")呢?修改了哪一位?我尝试过所有的组合,但还没有解决。
发布于 2015-07-15 04:12:35
对于在DCOS上运行的Cassandra (文档中提到的),集群名称是dcos。在Mesos上注册的框架名称是cassandra.dcos。正在运行的Cassandra服务器的任务名称是cassandra.dcos.node,
如果将集群名称更改为"foo",则框架名称现在将为cassandra.foo,服务器任务名称现在将为cassandra.foo.node。
要访问"foo“Cassandra集群,您需要使用cassandra-foo-node.cassandra.foo.mesos。
现在解释一下如何:
由mesos-dns创建的DNS名称遵循特定的模式,所有这些都可以在官方documentation1中找到。
总结一下这里的文档,mesos-dns创建了一个如下格式的DNS名称:taskName.frameworkName.mesos。
在Cassandra的例子中,任务名是cassandra.dcos.node,mesos-dns转换为cassandra-dcos-node,因为它在任务名中不全是.。允许框架名称cassandra.dcos中包含.,以便保持不变。mesos是TLD的默认值。
当我们把它放在一起的时候,这就是cassandra-dcos-node.cassandra.dcos.mesos。
最初的意图是命名为node.dcos.cassandra.mesos,但由于时间限制和对mesos-dns工作原理的误解,这就是我们所剩下的。希望它能在未来得到清理。
1
发布于 2015-07-14 21:54:19
cassandra-mesos框架提供的cassandra服务器的默认DNS名称是cassandra.dcos.node。根据mesos-dns规范将其前置到服务cassandra,然后前置到域dcos.mesos以形成cassandra-dcos-node.cassandra.dcos.mesos。
如果您仍然不清楚,确认服务名称的方法是:
使用mesos-dns进入服务器的
journalctl -u mesos-dns -f您正在查找类似于:的A记录条目
Jul 14 13:43:09 ip-10-0-7-2.us-west-2.compute.internal mesos-dns[1331]: VERY VERBOSE: 2015/07/14 13:43:09 generator.go:364: [A] cassandra-dcos-node.cassandra.dcos.mesos.: 10.0.1.171https://stackoverflow.com/questions/31403882
复制相似问题