SolrCloud を完全にコンテナ化して実行するときの厄介な問題

(The bot translated the original post https://lists.apache.org/thread/b45px58jkhqgnzdxwh3lxd037554n231 into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)
専門家の皆さまへ
ご助力いただければ幸いです。
質問の要点
ZooKeeper の動的リコンフィギュレーション(dynamic reconfiguration)の使用を無効化することは可能でしょうか?
あるいは、以下に記載する問題を解決する別の方法はありますか?
状況
私たちは長年にわたり単一サーバーモードで SOLR を使用してきました。しかし、ついに SolrCloud への移行の時が来ました。
制約は以下の通りです:
- Kubernetes(SolrOperator)は利用できない
- すべての ZooKeeper と Solr ノードはコンテナとして実行しなければならない
ドキュメントを調べ、リサーチを重ねた結果、完全にコンテナ化された構成を立ち上げることに成功しました。
(Solr 9.8.1、ZK 3.9.3)
しかし、まだ厄介な欠点が残っています。
欠点の要素
- 組み込み ZooKeeper を使ったコンテナ化 SolrCloud の実行は不可能に見えます。
- 外部 ZooKeeper アンサンブルには、ノードの初期リスト(例: "host_1\:ports, host_2\:ports, host_3\:ports")が必要です。ところが、ノードをコンテナとして実行するには、ホストの IP アドレスではなく
0.0.0.0を設定する必要があります。例えば、host_2 上で ZooKeeper コンテナを実行する場合、リストは "host_1\:ports, 0.0.0.0\:ports, host_3\:ports" となります。 - Solr は起動時にのみ
zkHostsを利用するようです。ZooKeeper の動的リコンフィギュレーションを活用するために、Solr は ZooKeeper アンサンブルから取得したリストを優先するように見えます。
厄介な結果
完全にコンテナ化された SolrCloud を動作させること自体は可能ですが、GUI /solr/#/~cloud?view=zkstatus では「Failed talking to Zookeeper 0.0.0.0:2181」と表示されます。
ZooKeeper コンテナ内の 0.0.0.0 は Solr コンテナからは見えません。そのため、各 Solr ノードは ZooKeeper ノードを n-1 個しか認識できない状態になります。
この問題は何年も前から知られています:
https://stackoverflow.com/questions/64351894/solr-cloud-cannot-connect-to-random-zookeeper-node-full-docker-set-up
これまで誰も回避策や解決策を見つけていないとは信じがたいです。
- Solr に与えた
zkHostsを保持する隠しフラグ(ZooKeeper の動的リコンフィギュレーションを無視するオプション)は存在しないでしょうか? - あるいは、ZooKeeper に対して、ノード(myid)に別の IP が設定されていても
0.0.0.0で起動するような隠しフラグがあるのでしょうか?
どんな助けでもありがたいです。
Uwe
トピックへ返信するには、ログインが必要です。