| 319 | | 詳しくは[[ここ|https://docs.docker.com/swarm/install-manual/]]に書いてある。 |
| | 319 | 詳しくは[ここ https://docs.docker.com/swarm/install-manual/]に書いてある。構成は、次のような構成を考えておく。 |
| | 320 | |
| | 321 | {{{ |
| | 322 | swarm consul swarm consul swarm |
| | 323 | manager server join agent join |
| | 324 | +------------------------+ +---------------------+ |
| | 325 | | DockerHost1 | | DockerHost2 | ... |
| | 326 | | 192.168.100.1 | | 192.168.100.2 | |
| | 327 | | 管理ノード&Dockerホスト| | Dockerホスト | |
| | 328 | +------------------------+ +---------------------+ |
| | 329 | }}} |
| | 330 | |
| | 331 | DockerHost1は管理ノード兼Dockerホスト、DockerHost2はDockerホストとする。管理ノードをDockerホストとして利用しないのであれば、DockerHost1上のswarm joinは不要。 |
| | 332 | |
| | 333 | |
| | 334 | == 事前準備 |
| | 346 | === VMコピー時の注意 |
| | 347 | |
| | 348 | VMをコピーしてDockerホストを複数作成すると正しくクラスタに登録できない。 |
| | 349 | /etc/docker/key.jsonファイルでDockerは自身のIDを識別するようになっている。 |
| | 350 | VMをコピーしてDockerホストを作成した場合、下記のように、キーを削除して |
| | 351 | Dockerを再起動する。 |
| | 352 | |
| | 353 | {{{ |
| | 354 | # rm /etc/docker/key.json |
| | 355 | # service docker restart |
| | 356 | }}} |
| | 357 | |
| | 358 | == 管理ノード(consulサーバの起動) |
| | 359 | |
| | 360 | 次のようなconsule-server.jsonファイルを作成し、consulサーバを起動する。 |
| | 361 | {{{ |
| | 362 | { |
| | 363 | "datacenter": "docker", |
| | 364 | "addresses" : { |
| | 365 | "http": "0.0.0.0" |
| | 366 | }, |
| | 367 | "bind_addr": "192.168.100.1", |
| | 368 | "node_name": "dockerhost1", |
| | 369 | "domain": "consul", |
| | 370 | "server": true, |
| | 371 | "bootstrap_expect": 1, |
| | 372 | "data_dir": "/var/lib/consul" |
| | 373 | } |
| | 374 | }}} |
| | 375 | |
| | 376 | {{{ |
| | 377 | # mkdir -p /var/log/consul |
| | 378 | # consul agent -config-file consul-server.json >> /var/log/consul/consul.log |
| | 379 | }}} |
| | 380 | |
| | 382 | |
| | 383 | === Consulクライアントの設定 |
| | 384 | |
| | 385 | 次のようなconsule-client.jsonファイルを作成し、consulエージェントを起動する。bind_addrには、Dockerホストの各IPを設定する。 |
| | 386 | (consulサーバを起動したノードでは実行しないので注意!)a |
| | 387 | {{{ |
| | 388 | { |
| | 389 | "datacenter": "docker", |
| | 390 | "addresses" : { |
| | 391 | "http": "0.0.0.0" |
| | 392 | }, |
| | 393 | "bind_addr": "192.168.100.2", |
| | 394 | "node_name": "dockerhost2", |
| | 395 | "domain": "consul", |
| | 396 | "retry_join": [ "192.168.100.1"], |
| | 397 | "server": false, |
| | 398 | "data_dir": "/var/lib/consul" |
| | 399 | } |
| | 400 | }}} |
| | 401 | |
| | 402 | {{{ |
| | 403 | # mkdir -p /var/log/consul |
| | 404 | # consul agent -config-file consul-client.json >> /var/log/consul/consul.log |
| | 405 | }}} |