在使用Cassandra-mesos框架时,mesos-dns提供什么服务名称来访问Cassandra?

时间:2015-07-14 10:19:35

标签: dns mesos mesosphere

我们正在使用略微修改的社区中间圈集群。这安装了mesos-dns - 所以我们可以解析master.mesos和x.marathon.mesos,没问题。 问题是我们应该使用哪个名称来访问Cassandra数据库(无论是使用cqlsh还是使用其他应用程序)?

我在文档中找到了以下内容:cassandra-dcos-node.cassandra.dcos.mesos(https://docs.mesosphere.com/services/cassandra/)但是如果我们更改群集名称(比如“foo”)怎么办?哪个位被修改?我玩过所有组合,但还没有解决过。

2 个答案:

答案 0 :(得分:3)

如果Cassandra在DCOS上运行(文档引用),则群集名称为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名称遵循特定的模式,所有这些都可以在官方文档[1]中找到。

总结这里的文档,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] http://mesosphere.github.io/mesos-dns/docs/naming.html

答案 1 :(得分:1)

cassandra-mesos框架提供的cassandra服务器的默认DNS名称为cassandra.dcos.node。根据mesos-dns规范预先添加到服务cassandra,然后添加到域dcos.mesos以形成cassandra-dcos-node.cassandra.dcos.mesos

如果您仍不清楚,确认服务名称的方法是:

  1. 使用mesos-dns进入服务器ssh(我假设它是mesos-master)
  2. 关注dns服务:journalctl -u mesos-dns -f
  3. 注册cassandra-mesos服务
  4. 您正在寻找类似于以下内容的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.171