前回は『OSS編~オーケストレーションツール Consul 04 KEY/VALUE DATA編~』と題して、オーケストレーションのConsulでKEY/VALUE DATA機能を試してみました。
今回は『OSS編~オーケストレーションツール Consul 05 Multiple Datacenters編~』と題して、オーケストレーションのConsulでMultiple Datacentersを試してみたいと思います。
Multiple Datacentersとは
ConsulではMultiple Datacentersに対応しています。
上記により複数のデータセンタをまたがってサーバを管理する事が出来ます。
※今回はVPNで繋がった環境で試しています。
1.consulの準備
データセンタ毎にconsulを準備します。
データセンタ01は 「dc1」という名前で起動します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -node=agent-one -dc dc1 ==> WARNING: BootstrapExpect Mode is specified as 1; this is the same as Bootstrap mode. ==> WARNING: Bootstrap mode enabled! Do not enable unless necessary ==> WARNING: It is highly recommended to set GOMAXPROCS higher than 1 ==> Starting Consul agent... ==> Starting Consul agent RPC... ==> Consul agent running! Node name: 'agent-one' Datacenter: 'dc1' Server: true (bootstrap: true) Client Addr: 127.0.0.1 (HTTP: 8500, HTTPS: -1, DNS: 8600, RPC: 8400) Cluster Addr: 172.16.1.46 (LAN: 8301, WAN: 8302) Gossip encrypt: false, RPC-TLS: false, TLS-Incoming: false Atlas: <disabled> |
データセンタ02は 「dc2」という名前で起動します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -node=agent-two -dc dc2 ==> WARNING: BootstrapExpect Mode is specified as 1; this is the same as Bootstrap mode. ==> WARNING: Bootstrap mode enabled! Do not enable unless necessary ==> WARNING: It is highly recommended to set GOMAXPROCS higher than 1 ==> Starting Consul agent... ==> Starting Consul agent RPC... ==> Consul agent running! Node name: 'agent-two' Datacenter: 'dc2' Server: true (bootstrap: true) Client Addr: 127.0.0.1 (HTTP: 8500, HTTPS: -1, DNS: 8600, RPC: 8400) Cluster Addr: 10.0.0.5 (LAN: 8301, WAN: 8302) Gossip encrypt: false, RPC-TLS: false, TLS-Incoming: false Atlas: <disabled> |
それぞれwanノードを確認してみます。
まだ、自分だけのリストなのが分かります。
1 2 3 4 5 6 7 |
$ consul members -wan Node Address Status Type Build Protocol agent-one.dc1 172.16.1.46:8302 alive server 0.5.0 2 $ consul members -wan Node Address Status Type Build Protocol agent-two.dc2 10.0.0.5:8302 alive server 0.5.0 2 |
HTTP APIでも確認してみます。
1 2 3 4 5 |
$ curl http://localhost:8500/v1/catalog/datacenters ["dc1"] $ curl http://localhost:8500/v1/catalog/datacenters ["dc2"] |
2.join
それではjoinを実施してみます。
データセンタ02から01にjoinします。
1 2 |
$ consul join -wan 「ipアドレス」 Successfully joined cluster by contacting 1 nodes. |
データセンタ01で確認してみます。
1 2 3 4 |
$ consul members -wan Node Address Status Type Build Protocol agent-one.dc1 172.16.1.46:8302 alive server 0.5.0 2 agent-two.dc2 10.0.0.5:8302 alive server 0.5.0 2 |
データセンタ02でも確認してみます。
1 2 3 4 |
$ consul members -wan Node Address Status Type Build Protocol agent-two.dc2 10.0.0.5:8302 alive server 0.5.0 2 agent-one.dc1 172.16.1.46:8302 alive server 0.5.0 2 |
HTTP APIでも確認してみます。
1 2 3 4 5 6 7 8 |
$ curl http://localhost:8500/v1/catalog/datacenters ["dc1","dc2"] $ curl http://localhost:8500/v1/catalog/nodes?dc=dc1 [{"Node":"agent-one","Address":"172.16.1.46"}] $ curl http://localhost:8500/v1/catalog/nodes?dc=dc2 [{"Node":"agent-two","Address":"10.0.0.5"}] |
いかがでしたでしょうか?
次回もお楽しみに!!!