Ноды Nomad удаляют сервисы друг друга из Consul
У меня есть два узла кластера Nomad и экземпляр 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
Оба узла запускаются с одинаковой конфигурацией. Однако когда я смотрю журналы на уровне TRACE , у меня есть следующее:
Узел А:
2021-01-28T15:58:55.519+0100 [DEBUG] consul.sync: sync complete: registered_services=3 deregistered_services=1 registered_checks=0 deregistered_checks=0
УзелБ:
2021-01-28T15:58:59.037+0100 [DEBUG] consul.sync: sync complete: registered_services=1 deregistered_services=3 registered_checks=0 deregistered_checks=0
Действительно, на NodeA выполняется 3 задания, а на NodeB — 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 для связи с Consul через DNS, например consul.service.consul.