私は Service Discovery とクラスター化されたシステムにまったく慣れていません。Docker コンテナーのデプロイメントのために Mesos と Marathon を試し始めました。Marathon REST API と UI はうまく機能しているようです。
私の問題は、デプロイされたサービスの実際の発見です。テストの目的で、MongoDB テストクラスターで行ったように、Marathon を介して 3 つのインスタンスにスケーリングされた Kafka クラスターをデプロイしました。Mesos-DNS クライアントは、ホストからコンテナーに動的にマップされたポートを意味するkafka.marathon.mesosandのようなレコードを提供します。mongo.marathon.mesos問題は、クライアントがターゲット ポートに関する情報を明示的に必要とすることです。これらのポート情報をサービスから自動的かつ動的に取得する一般的な方法はありますか? 複数のポートを公開しているアプリはどうですか?
これまでの私の考え: - REST 呼び出しを実行して、デプロイされたアプリに関するステータスを取得し、何らかの方法で関連データを抽出する - DNS SRV ルックアップを実行し、何らかの方法で関連データを抽出する - ポートに静的にバインドされたある種の「マスター」を持つ、動的な「クライアント」を使用します。
私はそれらの情報をたくさん検索しましたが、最終的にほとんどのチュートリアルは、私が目指しているものではない手動の検索で終わりました.