Cluster

Nomad 節點從 Consul 中移除其他服務

  • January 29, 2021

我有兩個節點 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級別的日誌時,我有以下內容:

節點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

事實上,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

我是否錯過了配置中的某些內容?如何防止這種情況?

這種行為實際上顯示在文件中。我只是忽略了它:

一個重要的要求是每個 Nomad 代理都與唯一的 Consul 代理交談。Nomad 代理應該配置為與 Consul 代理而不是 Consul 伺服器通信。如果您正在觀察浮動服務,則可能有多個 Nomad 代理與同一個 Consul 代理交談。因此避免將 Nomad 配置為通過 DNS 與 Consul 對話,例如 consul.service.consul

引用自:https://serverfault.com/questions/1051572