游牧节点从 Consul 中删除彼此的服务

游牧节点从 Consul 中删除彼此的服务

我得到了两个节点的 Nomad 集群以及一个 Consul 实例,以便作业可以注册要连接的服务。

但是,服务不断同步和取消注册。以下是我从 Consul 日志中得到的信息:

2021-01-26T14:49:59.174Z [INFO]  agent: Synced check: check=_nomad-check-dc23801467b8a65a4fd82311c2606724a180065c
2021-01-26T14:50:00.072Z [INFO]  agent: Synced check: check=_nomad-check-1783c554d9ee0a25d52532f4178c392e931e4bb1
2021-01-26T14:50:04.511Z [INFO]  agent: Synced service: service=_nomad-task-e8d2b77b-3bf5-96c1-8323-63b6151e2cf3-lb0-lb0-admin-admin
2021-01-26T14:50:09.962Z [INFO]  agent: Deregistered service: service=_nomad-task-e8d2b77b-3bf5-96c1-8323-63b6151e2cf3-lb0-lb0-admin-admin
2021-01-26T14:50:34.554Z [INFO]  agent: Synced service: service=_nomad-task-e8d2b77b-3bf5-96c1-8323-63b6151e2cf3-lb0-lb0-admin-admin
2021-01-26T14:50:39.984Z [INFO]  agent: Deregistered service: service=_nomad-task-e8d2b77b-3bf5-96c1-8323-63b6151e2cf3-lb0-lb0-admin-admin
2021-01-26T14:51:04.589Z [INFO]  agent: Synced service: service=_nomad-task-e8d2b77b-3bf5-96c1-8323-63b6151e2cf3-lb0-lb0-admin-admin
2021-01-26T14:51:10.009Z [INFO]  agent: Deregistered service: service=_nomad-task-e8d2b77b-3bf5-96c1-8323-63b6151e2cf3-lb0-lb0-admin-admin

两个节点都使用相同的配置启动。但是当我查看痕迹级别,我有以下内容:

节点A:

2021-01-28T15:58:55.519+0100 [DEBUG] consul.sync: sync complete: registered_services=3 deregistered_services=1 registered_checks=0 deregistered_checks=0

节点B:

2021-01-28T15:58:59.037+0100 [DEBUG] consul.sync: sync complete: registered_services=1 deregistered_services=3 registered_checks=0 deregistered_checks=0

的确,节点A有 3 个作业正在运行基站得到 1. 似乎两个节点都在恢复对方所做的更改。

Name               Address       Port  Status  Leader  Protocol  Build  Datacenter  Region
NodeA              198.51.100.1  4648  alive   false   2         1.0.2  us1         us
NodeB              198.51.100.2  4648  alive   true    2         1.0.2  us1         us

我的配置中是否遗漏了某些内容?如何防止这种情况发生?

答案1

这种行为实际上表现在文档。我只是忽略了它:

一个重要的要求是每个 Nomad 代理都与一个唯一的 Consul 代理对话。Nomad 代理应配置为与 Consul 代理对话,而不是与 Consul 服务器对话。如果您观察到服务不稳定,则可能有多个 Nomad 代理与同一个 Consul 代理对话。因此,请避免将 Nomad 配置为通过 DNS(例如 consul.service.consul)与 Consul 对话

相关内容