кластера?
Пытаюсь поднять 3 сервера в вагранте с таким конфигом:
# define servers
config.vm.define "s1" do |s1|
s1.vm.hostname = "s1"
s1.vm.network "private_network", ip: "172.20.21.10"
end
config.vm.define "s2" do |s2|
s2.vm.hostname = "s2"
s2.vm.network "private_network", ip: "172.20.22.10"
end
config.vm.define "s3" do |s3|
s3.vm.hostname = "s3"
s3.vm.network "private_network", ip: "172.20.23.10"
end
Когда я пытаюсь подключиться к кластеру с клиента (192.168.0.170) я получаю ошибку
2019/03/15 13:59:49 [ERR] consul: "Catalog.NodeServices" RPC failed to server 172.20.23.10:8300: rpc error getting client: failed to get conn: dial tcp 192.168.0.170:0->172.20.23.10:8300: i/o timeout
2019/03/15 13:59:49 [ERR] agent: failed to sync remote state: rpc error getting client: failed to get conn: dial tcp 192.168.0.170:0->172.20.23.10:8300: i/o timeout
Серверные ноды спокойно подключаются друг к другу, но когда я пытаюсь подключить клиента появляется такая ошибка.
Конфигурация серверов почти одинаковая (разные только bind_addr):
{
"datacenter": "dc1",
"data_dir": "/opt/consul",
"log_level": "INFO",
"node_name": "server-s1",
"server": true,
"bootstrap_expect": 3,
"bind_addr": "172.20.21.10",
"retry_join": [
"172.20.21.10",
"172.20.22.10",
"172.20.23.10"
]
}
конфиг клиента:
{
"datacenter": "dc1",
"data_dir": "/opt/consul",
"log_level": "INFO",
"node_name": "agent-s1-n1",
"bind_addr": "192.168.0.170",
"start_join": [
"172.20.21.10",
"172.20.22.10",
"172.20.23.10"
],
"ui": true
}
Еще заметил, что когда я пытаюсь клиентом забиндиться на адрес 172.20.21.1 он может подключиться только к серверу 172.20.21.10 Если вдруг этот сервер умирает, то клиент уже не может переподключиться к другим серверам с ошибкой, указанной выше. [ERR] consul: "Catalog.NodeServices" ...
логи такие:
http://dpaste.com/1D6D21A - server1
http://dpaste.com/0CVJ6H8 - server2
http://dpaste.com/0SBA25F - server3
http://dpaste.com/2V4WWWF - client
все ip пингуются со 192.168.0.170 и порт 8302 доступен на 172.20.2[1-3].10 (проверял через netcat)
https://github.com/hashicorp/consul/blob/master/demo/docker-compose-cluster/docker-compose.yml возьмите рабочие примеры и поэтапно перенесите в vm.
Обсуждают сегодня