Hello,
I have an issue regarding the access to an external service cross datacenter :
I have 2 datacenters, both have a mesh gateway, in the first one I have a basic http service (and its sidecar) who is supposed to reach my external service on dc2 via an upstream.
On dc2 I have a mesh gateway, a terminating gateway and a standalone service (e.g. without envoy sidecar). I followed the documentation and added the external service via the catalogue and added a healthcheck, it registers well and passes the check.
The problem comes when I try to reach this external service from my http service. I just end up with “no healthy upstream”
If I put the my http service in dc2 it works fine, I can cURL my external service, but I don’t really want to have a terminating gateway on each of my dc’s.
Here are the config files for reference :
Kind = "terminating-gateway"
Name = "terminating-gateway"
Services = [
{
Name = "elasticsearch"
}
]
Kind = "proxy-defaults"
Name = "global"
Config {
protocol = "http"
}
MeshGateway {
mode = "local"
}
{
"Node": "elk",
"Address": "10.7.0.11",
"NodeMeta": {
"external-node": "true",
"external-probe": "true"
},
"Service": {
"ID": "elasticsearch1",
"Service": "elasticsearch",
"Port": 9200
},
"Checks": [
{
"Name": "http-check",
"status": "passing",
"Definition": {
"http": "http://10.7.0.11:9200",
"interval": "10s"
}
}
]
}
service {
name = "mock"
[...]
proxy {
upstreams {
destination_name = "elasticsearch"
local_bind_address = "127.0.0.1"
local_bind_port = 9099
}
[...]
}
Thanks for you help.
Marius