Versions (relevant - OpenSearch/Dashboard/Server OS/Browser):
OpenSearch: 2.4.1
Describe the issue:
Hi,
We use cross cluster replication for disaster recovery case. We have 2 OpenSearch clusters which are deployed in 2 different Kuberentes clusters (e.g. cluster-1 and cluster-2).
Between Kubernetes clusters there is pod2service communication, so OpenSearch on cluster-2 can access OpenSearch on cluster-1 by address “opensearch.opensearch-service.svc.cluster-1.local” or “opensearch-1.opensearch-service.svc.cluster-1.local” for specific node. So we configure CCR as:
{
"persistent": {
"cluster": {
"remote": {
"cluster-1": {
"seeds": ["opensearch.opensearch-service.svc.cluster-1.local:9300"]
}
}
}
}
}
But after first connection follower gets real adresses of OpenSearch nodes on first cluster as Pod IP addresses, like 10.14.43.1:9300,10.15.44.1:9300,10.16.45.1:9300 and can’t access them, because there is no pod2pod communication between clusters. It looks like it uses the same code for replication connection as OpenSearch inside of the one cluster.
So the question is, can we configure CCR plugin in such way to make it use specified addresses instead of registered on leader?
We need the follower access leader only by specified addresses: [“opensearch-0.opensearch-service.svc.cluster-1.local:9300”,“opensearch-1.opensearch-service.svc.cluster-1.local:9300”,“opensearch-2.opensearch-service.svc.cluster-1.local:9300”]
I see there is feature for proxy setting [Feature] Opensearch Replication Plugin - Proxy mode connection setup · Issue #371 · opensearch-project/cross-cluster-replication · GitHub, but can’t understand does it cover our case or not.
Configuration:
Relevant Logs or Screenshots: