Docker Swarm 概要

Docker Swarm は Docker に対応するネイティブなクラスタリング用ツールです。Docker Swarm は標準 Docker API で操作できるため、Docker ホスト群を集めて、一つの仮想 Docker ホストとして扱えます。そのため、既に Docker デーモンと通信可能なツールであれば、Swarm を使うことにより、意識せずに複数のホストにスケールできるようになります。以下のツールがサポートされているものですが、これだけに限りません。

  • Dokku
  • Docker Compose
  • Krane
  • Jenkins

そしてもちろん、Docker クライアントを使った Swarm の利用もサポートされています。

他の Docker プロジェクトのように、Docker Swarm は “swap, plug, and play”(交換して、取り付けて、実行)の原理に従います。開発初期においては、API はバックエンドと接続可能(pluggable)なように、開発することに落ち着きました。つまり、スケジューリングのバックエンドを任意なものから、Docker Swarm に置き換えられることを意味します。Swarm は交換可能な設計です。そのため、多くのユース・ケース(事例)において、スムーズに独創的な経験を提供します。また、Mesos のような、より強力なバックエンドに取り替えて、大規模なプロダクション(本番環境)へのデプロイもできるようになります。

クラスタ作成の理解

自分のネットワーク上で Swarm クラスタ(訳注;原文では”swarm”=群れ、と書かれていますが、日本語では抽象的なため、以下”Swarm クラスタ”と訳しています)を形成するには、まず Docker Swarm イメージを取得します。それから Docker を使い、swarm manager を設定し、Docker Swarm を実行したい全てのノードを設定します。この手順で次のものが必要です。

  • swarm manager と各々のノードと通信ができるよう TCP ポートを開く
  • 各々のノードに Docker をインストールする
  • クラスタを安全にするため、TLS 証明書を作成・管理する

使い始めるにあたり、管理者向けの経験のためや、プログラマが Docker Swarm に貢献するために、手動でのインストール手法は最適でしょう。あるいは、docker-machine を使って Swarm をインストールする方法があります。

Docker Machine を使えば、Docker Swarm をクラウド・プロバイダや自分のデータセンタに素早くインストールできます。ローカルのマシン上に VirtualBox をインストールしていれば、ローカル環境上で Docker Swarm を素早く構築し、試すことができます。Docker Machine はクラスタを安全にするため、自動的に証明書を生成します。

初めて Docker Swarm を使うのであれば、Docker Machine を使う方法が一番です。この推奨する方法を使うには、 Swarm を検証環境で試すには をお読みください。

手動でのインストールや開発に対する貢献に興味があれば、 プロダクション用の Swarm クラスタ構築 をご覧ください。

ディスカバリ・サービス

コンテナ内のサービスを動的に設定・管理するには、Docker Swarm とディスカバリ用のバックエンドを使います。利用可能なバックエンドに関する情報は、ディスカバリ・サービスのドキュメント をお読みください。

高度なスケジューリング

高度なスケジューリングについては、strategies(ストラテジ)filetes(フィルタ ) のドキュメントをお読みください。

Swarm API

Docker Swarm APIDocker リモート API と互換性があるため、新しいエンドポイントが追加されると、同時に拡張されます。

ヘルプを得るには

Docker Swarm は活発に開発中です。ヘルプが必要な場合、貢献したい場合、あるいはプロジェクトの同志と対話したい場合、私たちは多くのコミュニケーションのためのチャンネルを開いています。

  • プロジェクトのメンバーとリアルタイムに会話したければ、IRC の #docker-swarm チャンネルにご参加ください。

より詳細な情報やリソースについては、私たちの ヘルプ用ページ をご覧ください。

参考

Docker Swarm overview
https://docs.docker.com/swarm/overview/