警告
Azure Container Service (ACS) は非推奨です。 ACS に新しい機能は追加されません。 すべての API、ポータル エクスペリエンス、CLI コマンド、およびドキュメントは非推奨としてマークされます。
詳細については、Azure Container Service の廃止に関するお知らせを Azure.comでご覧ください。
次のいずれかの Azure Marketplace ソリューションをデプロイすることをお勧めします。
- Mesosphere DC/OS
Azure Container Service を使用すると、コンテナー化されたアプリケーションを実行するように事前構成された仮想マシンのクラスターを簡単に作成、構成、管理できます。 一般的なオープンソースのスケジューリングおよびオーケストレーション ツールの最適化された構成が使用されます。 これにより、既存のスキルを使用したり、コミュニティの専門知識を大きく成長させたりして、コンテナー ベースのアプリケーションを Microsoft Azure にデプロイおよび管理したりできます。
Azure Container Service では、Docker コンテナー形式を利用して、アプリケーション コンテナーが完全に移植可能であることを確認します。 また、Marathon と DC/OS、Docker Swarm、または Kubernetes の選択もサポートされているため、これらのアプリケーションを数千のコンテナー、さらには数万にスケーリングできます。
Azure Container Service を使用すると、オーケストレーション レイヤーでの移植性など、アプリケーションの移植性を維持しながら、Azure のエンタープライズ レベルの機能を利用できます。
Azure Container Service の使用
Azure Container Service の目標は、現在ユーザーに人気のあるオープンソースのツールとテクノロジを使用してコンテナー ホスティング環境を提供することです。 そのために、選択したオーケストレーター (DC/OS、Docker Swarm、または Kubernetes) の標準 API エンドポイントを公開します。 これらのエンドポイントを使用すると、それらのエンドポイントと通信できる任意のソフトウェアを利用できます。 たとえば、Docker Swarm エンドポイントの場合は、Docker コマンド ライン インターフェイス (CLI) の使用を選択できます。 DC/OS の場合は、DCOS CLI を選択できます。 Kubernetes の場合は、kubectl
を選択できます。
Azure Container Service を使用した Docker クラスターの作成
Azure Container Service の使用を開始するには、Azure Resource Manager テンプレート (Docker Swarm、DC/OS、または Kubernetes) を使用するか、または azure CLI を使用して、ポータル (Azure Container Service をMarketplace で検索) を使用して Azure Container Service クラスターをデプロイします。 提供されているクイック スタート テンプレートは、追加または高度な Azure 構成を含むように変更できます。 詳細については、「Azure Container Service クラスターをデプロイする」を参照してください。
アプリケーションのデプロイ
Azure Container Service では、オーケストレーション用に Docker Swarm、DC/OS、または Kubernetes のいずれかを選択できます。 アプリケーションをデプロイする方法は、オーケストレーターの選択によって異なります。
DC/OS の使用
DC/OS は、Apache Mesos 分散システム カーネルに基づく分散オペレーティング システムです。 Apache Mesos は Apache Software Foundation に格納され、IT の 最も大きな名前の一部をユーザーおよび共同作成者として一覧表示します。
DC/OS と Apache Mesos には、印象的な機能セットが含まれています。
- 実証済みのスケーラビリティ
- Apache ZooKeeper を使用して、フォールトトレラントなレプリカ構成のプライマリとセカンダリ
- Docker 形式のコンテナーのサポート
- Linux コンテナーを使用したタスク間のネイティブ分離
- マルチリソース スケジューリング (メモリ、CPU、ディスク、ポート)
- 新しい並列アプリケーションを開発するための Java、Python、および C++ API
- クラスターの状態を表示するための Web UI
既定では、Azure Container Service で実行されている DC/OS には、ワークロードをスケジュールするための Marathon オーケストレーション プラットフォームが含まれています。 ただし、ACS の DC/OS デプロイには、サービスに追加できるサービスの Mesosphere Universe が含まれます。 宇宙のサービスには、Spark、Hadoop、Cassandra などがあります。
Azure Container Service
Marathon の使用
Marathon は、cgroups 内のサービスのクラスター全体の初期化および制御システムです。または、Azure Container Service の場合は、Docker 形式のコンテナーです。 Marathon には、アプリケーションをデプロイできる Web UI が用意されています。 これは、次のような URL でアクセスできます。
http://DNS_PREFIX.REGION.cloudapp.azure.com
DNS_PREFIXと REGION の両方がデプロイ時に定義されます。 独自の DNS 名を指定することもできます。 Marathon Web UI を使用してコンテナーを実行する方法の詳細については、Marathon Web UI を使用した DC/OS コンテナー管理のに関するページを参照してください。
Marathon との通信に REST API を使用することもできます。 各ツールで使用できるクライアント ライブラリは多数あります。 さまざまな言語に対応しており、任意の言語で HTTP プロトコルを使用できます。 さらに、多くの一般的な DevOps ツールが Marathon のサポートを提供しています。 これにより、Azure Container Service クラスターを使用する際に、運用チームに最大限の柔軟性が提供されます。 Marathon REST API を使用してコンテナーを実行する方法の詳細については、Marathon REST API を使用した DC/OS コンテナー管理のを参照してください。
Docker Swarm の使用
Docker Swarm は、Docker 用のネイティブ クラスタリングを提供します。 Docker Swarm は標準の Docker API を提供するため、Docker デーモンと既に通信するすべてのツールで Swarm を使用して、Azure Container Service 上の複数のホストに透過的にスケーリングできます。
注
Azure Container Service の Docker Swarm オーケストレーターは、従来のスタンドアロン Swarm を使用します。 現時点では、統合 Swarm モード (Docker 1.12 以降) は、Azure Container Service でサポートされているオーケストレーターではありません。 Azure に Swarm モード クラスターをデプロイする場合は、オープンソースの ACS エンジン、コミュニティが提供する クイックスタート テンプレート、または Azure Marketplaceの Docker ソリューションを使用します。
Swarm クラスター上のコンテナーを管理するためにサポートされるツールには、次のようなものがありますが、これらに限定されません。
- Dokku
- Docker CLI と Docker Compose
- クレーン
- ジェンキンス
Kubernetes の使用
Kubernetes は、一般的なオープンソースの運用グレードのコンテナー オーケストレーター ツールです。 Kubernetes は、コンテナー化されたアプリケーションのデプロイ、スケーリング、管理を自動化します。 これはオープンソース ソリューションであり、オープンソース コミュニティによって推進されるため、Azure Container Service 上でシームレスに実行され、Azure Container Service に大規模にコンテナーをデプロイするために使用できます。
これには、次のような機能の豊富なセットがあります。
- 水平方向のスケーリング
- サービスの検出と負荷分散
- シークレットと構成管理
- API ベースの自動ロールアウトとロールバック
- 自己修復
ビデオ
Azure Container Service の概要 (101):
Azure Container Service を使用したアプリケーションのビルド (ビルド 2016)