4

これは、私がチェックしたどこにも尋ねられていないことを確認してください。これが私がやったことです。mesos、marathon、および docker の単一インスタンスをデプロイできます。次のステップに進み、2 つの mesos スレーブ (docker コンテナー) を互いにリンクさせたいと考えています。docker を使用するだけで、docker リンク機能を使用して同じことが実現できます。しかし、オーケストレーション (mesos) とスケジューラ (マラソン) を使用している間は、サービス ディスカバリを使用する必要があるようです。

私のセットアップはシンプルで、単一のホストで実行されています。したがって、1 つは単純な pub/sub を実行し、もう 1 つは rabbitmq を実行する 2 つの Docker コンテナを用意します。このセットアップで HA PRoxy を使用するにはどうすればよいですか。mesosphere http://mesosphere.com/docs/getting-started/service-discovery/が提供するいくつかのドキュメントを見てきまし たが、どうすればよいかわかりません。

4

4 に答える 4

5

Mesos + Marathon + Docker を使用したサービス ディスカバリの正規のアプローチは、現在、リンク先のドキュメントに記載されているものです。

Marathon で既に 2 つのアプリケーションを実行できるようになっていると思います。

通常、何が起こるかは次のとおりです。

1) アプリケーション定義を構成して、アプリケーションに必要なポートを含めます。

2) haproxy-marathon-bridgecron などのユーティリティを使用して、提供されたスクリプトを定期的に実行するように設定します。このスクリプトは、Marathon の API をスクレイピングして、アプリケーション インスタンスが実行されているホストとポート、および既知の「フレンドリー」ポートを特定します。

サービス発見記事の例では、最初のアプリケーションには と のフレンドリー ポートが80あり443、2 番目のアプリケーションには のフレンドリー ポートがあり8081ます。

スクリプトは次に、haproxy.cfgルールが にマッピングされた構成をlocalhost:friendly_port生成しますactual_host:actual_port

3) で相互に検索するようにアプリケーションを構成しますlocalhost:friendly_port。HAProxy は接続を適切にルーティングします。

これがあなたの理解に役立つことを願っています!

于 2015-02-24T03:52:52.137 に答える
0

Mesos-DNS を使用すると、次のこともできます。

  1. このガイドのように mesos-dns をセットアップします: http://programmableinfrastructure.com/guides/service-discovery/mesos-dns-haproxy-marathon/ (必須ではない HAProxy の手順をスキップできます)
  2. docker コンテナーを起動するときは、/etc/resolv.conf ファイルに "namespace %slave_ip_with_mesos_dns%" (文字列を IP アドレスに置き換えます) があることを確認してください。
  3. アプリの名前が「peek」だとすると、peek.marathon.mesos で他のアプリケーションから到達できるはずです
于 2016-05-30T06:43:37.103 に答える
0

I created a haproxy service discovery docker container that you can run in mesos. It's not production ready but I am using it in my development environment doing exactly what you're trying to do. The reason I prefer this over what comes with marathon is I haven't found a good way to do complicated haproxy configurations with haproxy-marathon-bridge. With spiderweb you can create a template for the haproxy configuration which enables you to do things such as acl routing etc. It doesn't support health checks yet which is something that will need to be done before its production ready. You can see the project here https://github.com/SBRDevelopment/spiderweb.

于 2015-02-26T15:06:25.520 に答える