Microsoft Azure で Docker Swarm クラスターの作成が簡単に
このポストは、10 月 5 日に投稿された Docker Swarm Clusters on Azure の翻訳です。
Microsoft Azure で Docker Swarm (英語) クラスターを数クリックで作成できるようになりました。Azure Resource Manager テンプレートを活用すれば、ほぼあらゆる規模の Docker Swarm クラスターを数分で Microsoft Azure にデプロイできます。
Docker Swarm (英語) は Docker (英語) のネイティブ クラスタリング ツールで、複数の Docker エンジンを単一の Docker エンジンにクラスター化します。他のコンテナー オーケストレーション ツールよりも簡単にインストールでき、コンテナー ホストである Virtual Machines のプールを作成して、単一の Virtual Machines を使用しているかのように Docker でアプリケーションをスケールアウトできます。
Docker Swarm はコンテナー オーケストレーションの問題に対するきわめて実用的で手軽なソリューションで、使い慣れた Docker コマンドライン ツールでコンテナーをクラスターにデプロイできます。
Microsoft Azure のコンテナー アプリケーションのサポート計画の概要については、先週の Azure Container Service に関する発表を参照してください。
Docker Swarm ARM テンプレート
マイクロソフトでは、Docker Swarm クラスターを Microsoft Azure にデプロイするために、Docker Swarm クラスターを形成する Microsoft Azure のさまざまなリソースをプロビジョニングする Azure Resource Manager テンプレート (英語) を開発し、GitHub でオープン ソースとして提供しています。
このテンプレートをテンプレート ギャラリー (英語) からデプロイするか、GitHub (英語) からダウンロードして、Azure CLI または Azure PowerShell モジュールを開発用マシンで使用すると、Docker Swarm クラスターを 5 ~ 10 分でプロビジョニングできます。
Swarm クラスターのデプロイ方法と使用方法の詳細については、GitHub リポジトリの手順 (英語) を参照してください。
しくみ
Docker Swarm ARM テンプレート (英語) は静的プライベート IP アドレスを持つ 3 つの Swarm マネージャー Virtual Machines を作成します。これにより、コンテナーをデプロイし管理する制御プレーンの高可用性が確保されます。これらのマネージャー Virtual Machines のサイズは最小の「Standard_A0」で、ユーザー ワークロードは実行せず、クラスター マネージャーとして機能します。
Swarm マネージャー ノードは Swarm エージェント (英語) と Consul (英語) という 2 つのコンテナーを実行して、Swarm ワーカー ノードを発見します。Virtual Machines をプロビジョニングした後にこれらのコンテナーを系統的に実行する Azure Docker 拡張機能 (英語) を Virtual Machines に追加しています。各 Swarm ワーカー ノードは、静的なプライベート IP アドレスを使用して Swarm マネージャーにアクセスし、クラスターに加わります。Swarm マネージャーとワーカー ノードはすべて同じ Azure Virtual Network に存在するので互いに対話できます。Azure 可用性セットで高い可用性と稼働時間を支えているのがマネージャー ノードとワーカー ノードです。Swarm ワーカー ノードはパブリック インターネットに直接接続していませんが、コンテナーへのトラフィックの経路を構成可能な Azure Load Balancer を支えています。コンテナー ワークロードを引き受けるのは、サイズが「Standard_A2」のワーカー ノードです。
クラスターのネットワーク トポロジは次のようになります。
クラスター用にプロビジョニングされる Virtual Machines では、Docker に同梱されている最小限の Linux ディストリビューションである CoreOS がホスト オペレーティング システムとして実行されるので、クラスターをすばやくプロビジョニングし構成できます。
このテンプレートを使用すると、50 ノードの Swarm クラスターのプロビジョニングが通常 5 ~ 10 分以内に完了し、コンテナー ワークロードの実行が可能な状態になります。
また、テンプレートを使用すれば、TLS を使用せず SSH トンネルを確立して Docker Swarm エンドポイントにアクセスできるので、面倒な Docker の証明書の管理に煩わされずに済みます。
クラスター トポロジの詳細については、GitHub リポジトリの説明 (英語) を参照してください。
デモ
Azure ポータルからいかに簡単に Swarm クラスターを作成できるかについては、以下のビデオをご覧ください。
[View:https://sec.ch9.ms/ch9/1bc0/582eaa27-8fc3-4162-b5e3-e2d8ab5b1bc0/ARMSwamTemplate_high.mp4]
実際にお試しください!
Docker Swarm は、本格的なコンテナー オーケストレーション ツールをインストールすることなく Virtual Machines をコンテナー ホストのプールに変えることができる便利なツールです。小規模や中規模の分散ワークロードを簡単にセットアップし、管理できます。
Microsoft Azure で Docker Swarm クラスターを試してみたい方は、クラスターを数分でデプロイできる ARM テンプレート (英語) をお試しください!