3

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

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

4

2 回答 2

3

对于在 DCOS 上运行的 Cassandra(文档引用),集群名称为dcos. 在 Mesos 中注册的框架名称是cassandra.dcos. cassandra.dcos.node正在运行的 Cassandra 服务器的任务名称是

如果您要将集群名称更改为“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.nodemesos-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

于 2015-07-14T20:12:35.380 回答
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 服务

您正在寻找类似于以下内容的 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
于 2015-07-14T13:54:19.190 回答