2016-10-19 11 views
0

いくつかのコンテナ(いくつかのフロントエンドとバックエンドサーバー、ロードバランサ、mysql、elasticsearchなど)に分割されたアプリケーションを分割しています。ロードバランサの設定は、どのコンテナが稼働しているかを知る必要があるため、領事サービスディスカバリでサービスを登録しています。私のドッカーイメージには独自の領事クライアントインスタンスが必要ですか?

しかし、ドッカーホストを使用してすべての実行中のドッカーコンテナを監視し、領事のHTTP-API経由で登録するのではなく、すべてのドッキングコンテナでコンサルエージェントを実行することをお勧めします。

私が従うことのできるベストプラクティスはありますか?

答えて

0

ベストプラクティスがあるかどうかはわかりませんが、このブログ記事は非常に役に立ちますAutomatic Docker Service Announcement with Registratorです。彼は、サービス登録とそれらの利点と欠点に関するいくつかのアプローチについて語っている。

あなたの質問にもっと直接答えてください。いいえ、すべてのコンテナ内でコンサルエージェントを実行しないでください。

1つのオプションは、すべてのホストで領事エージェントを実行することです。その後、Registratorのようなものを使用して、新しいコンテナの起動と停止を監視し、Consulを自動的に更新することができます。主な利点は、コンテナに実行するジョブが1つあり、アプリケーションを実行することです。登録者には、コンテナの開始/停止イベントを監視し、領事に記録する仕事も1つあります。あなたのコンテナは領事について何も知らず、依然としてサービス発見に参加することができました。

Autopilot patternもあります。これは、反対方向に進み、あなたのアプリケーションを領事館に知らせるようにして、自身の健康状態を報告し、独自の依存関係を発見することを示唆しています。このパターンで見た情報のほとんどはJoyent(このようにblog postのように)です。アプリケーションでスケーラビリティと復元力を達成するための別の視点を読む価値があります。

2

すべてのドッカーコンテナで領事エージェントを実行する必要はありません。領事館をあなたのローカルに公開するだけで領事館を利用できます。以下はコンテナからではありませんが、私がやっていることについては、あなたはいつも考えを得るでしょう。 IPと私はまた、127.0のためのネームサーバを追加しただ、私はそれで領事マスターの/ etc/hostsエントリを追加しました:以下

が、私は私のエージェント

consul agent -data-dir /var/lib/consul/ -config-dir /etc/consul.d/ -bind 10.X.X.X -dns-port 53 -join consul-master 

注意を実行するために使用していますコマンドです。 /etc/resolv.confファイルの0.1です。

ディレクトリ/etc/consul.d/には、サービスの設定ファイルが格納されています。次のように

{ 
    "service": { 
    "name": "stackoverflow", 
    "tags": [ 
     "example" 
    ], 
    "port": 5000 
    } 
} 

が今私の領事エージェントが実行されると、私はdigコマンドまたはHTTP API要求を介したサービスのための領事・エージェント(サーバー/クライアント)との任意のホスト上で確認することができます:

以下は一例ですDNSについては
curl http://stackoverflow.service.consul:80/api/v1/ping 
{"success":true,"message":"pong"} 

dig @127.0.0.1 -p 53 stackoverflow.service.consul 

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.55.amzn1 <<>> @127.0.0.1 -p 53 tracker.service.consul 
; (1 server found) 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57167 
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 
;; WARNING: recursion requested but not available 

;; QUESTION SECTION: 
;tracker.service.consul.  IN A 

;; ANSWER SECTION: 
tracker.service.consul. 0 IN A X.X.X.X 

;; Query time: 1 msec 
;; SERVER: 127.0.0.1#53(127.0.0.1) 
;; WHEN: Fri Jul 7 11:29:01 2017 
;; MSG SIZE rcvd: 56 

希望に役立ち、それの明確なアイデアを与える

関連する問題