Dear experts,
I hope you could help.
*My question in brief*
Is it possible to disable the usage of ZooKeeper's dynamic
reconfiguration? Or is there another way to solve the problem described
below?
*Situation*
We are using SOLR in single-server mode for years. However, the time has
finally come to migrate to SolrCloud.
Our constraints are:
- Kubernetes(SolrOperator) is not an option.
- All ZooKeeper and Solr nodes must run as containers.
After digging through documentation and doing some research, I was able
to configure a fully containerized solution that is up and running.
(Solr 9.8.1, ZK 3.9.3)
However, there is still an annoying flaw.
*Components of the flaw*
* Running a containerized SolrCloud with embedded ZooKeepers seems to be
impossible.
* An external ZooKeeper ensemble requires an initial list of nodes
("host_1:ports, host_2:ports, host_3:ports"). To run a node as container
it's crucial to configure 0.0.0.0 instead of the host's IP address. For
example, a ZooKeeper container running on host_2 needs the list
"host_1:ports, 0.0.0.0:ports, host_3:ports".
* It appears that Solr utilizes 'zkHosts' only at startup. In order to
take advantage of ZooKeeper's dynamic reconfiguration Solr seems to
prefer the list fetched from the ZooKeeper ensemble.
*Annoying result*
Even though It is possible to run a fully containerized SolrCloud. The
GUI '/solr/#/~cloud?view=zkstatus' reports: "Failed talking to
Zookeeper 0.0.0.0:2181"
The 0.0.0.0 in a ZooKeeper container isn't visible for a Solr container.
For this, each Solr node can only see n-1 ZooKeeper nodes.
This issue is known for years:
https://stackoverflow.com/questions/64351894/solr-cloud-cannot-connect-to-random-zookeeper-node-full-docker-set-up
I can't believe that no one has found a workaround or solution yet.
- Perhaps there is a hidden flag for Solr to preserve the given
'zkHosts'. (Ignore Zookeeper's dynamic reconfiguration)?
- Or maybe there's a hidden flag for ZooKeeper to start up with 0.0.0.0
even if there is a different IP is configured for this node (myid)?
* ???
Any help is appreciated
Uwe