我得到了两个节点的 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 对话