次の方法で共有


Azure Container Instances とコンテナー オーケストレーター

コンテナーはサイズが小さく、アプリケーション向きであるため、アジャイル配信環境およびマイクロサービス ベースのアーキテクチャに適しています。 多数のコンテナーを自動化して管理するタスクと、こうしたコンテナーの対話は "オーケストレーション" と呼ばれます。 一般的なコンテナー オーケストレーターには、Kubernetes、DC/OS、および Docker Swarm が含まれます。

Azure Container Instances には、オーケストレーション プラットフォームの基本的なスケジュール設定機能のいくつかが用意されています。 また、これらのプラットフォームが提供する高価値サービスは含まれていませんが、Azure Container Instances はこれらを補完できます。 この記事では、Azure Container Instances の処理範囲と、完全なコンテナー オーケストレーターとの対話方法について説明します。

従来のオーケストレーション

オーケストレーションの標準の定義には、次のタスクが含まれます。

  • スケジュール設定:コンテナー イメージとリソース要求を指定して、コンテナーの実行に適したマシンを見つけます。
  • アフィニティ/アンチアフィニティ:それぞれの間隔が近い一連のコンテナーが実行されるように指定するか (パフォーマンス重視)、それぞれが十分に離れているコンテナーが実行されるように指定します (可用性重視)。
  • 正常性の監視:コンテナー エラーを監視し、自動的にスケジュールを再調整します。
  • フェールオーバー:各マシン上で実行されている内容を追跡し、コンテナーを障害が発生したマシンから正常なノードに再スケジュールします。
  • 拡大縮小:要求に応じて、手動または自動でコンテナー インスタンスを追加または削除します。
  • ネットワーク:オーバーレイ ネットワークを提供し、複数のホスト コンピューター間で通信できるようにコンテナーを調整します。
  • サービス検出:コンテナーが、ホスト マシン間を移動したり IP アドレスを変更したりしても、互いの場所を自動的に見つけることができるようにします。
  • 調整されたアプリケーション アップグレード:アプリケーションのダウンタイムを回避するようにコンテナー アップグレードを管理し、何か問題が発生した場合はロールバックを可能にします。

Azure Container Instances とのオーケストレーション:レイヤード アプローチ

Azure Container Instances を使用すると、オーケストレーションへのレイヤード アプローチが可能で、1 つのコンテナーの実行に必要なすべてのスケジュールおよび管理機能を提供しながら、オーケストレーター プラットフォームが複数コンテナー タスクを管理できます。

コンテナー インスタンスの基になるインフラストラクチャは Azure によって管理されるため、オーケストレーター プラットフォームが、1 つのコンテナーを実行するための適切なホスト マシンを自身で見つける必要はありません。 クラウドの柔軟性により、ホスト コンピューターはいつでも確実に使用できます。 代わりに、オーケストレーターは、拡大縮小、アップグレード調整など、複数コンテナー アーキテクチャの開発を簡略化するタスクに集中することができます。

シナリオ

Azure Container Instances とのオーケストレーターの統合はまだ発展途上にありますが、その環境はこれからいくつか登場すると予測しています。

Container Instances の専用オーケストレーション

Azure Container Instances 専用の環境は、すばやく起動し、秒単位で請求が行われるため、迅速に開始し、変動が大きなワークロードを処理できます。

Container Instances と仮想マシン内のコンテナーの組み合わせ

実行時間の長い安定したワークロードの場合は通常、Azure Container Instances で同じコンテナーを実行するより、専用仮想マシンのクラスターでコンテナーを調整する方が安価です。 ただし、Container Instances は、使用中の予期しない、または短時間のスパイクに対処するために全体的な容量をすばやく拡張したり縮小したりするための優れたソリューションを提供します。

クラスター内の仮想マシンの数をスケールアウトしてから、これらのマシンに追加のコンテナーをデプロイするのではなく、オーケストレーターでは Azure Container Instances で追加のコンテナーのスケジュールを設定し、必要なくなったら削除できます。

サンプル実装: Azure Container Instances 上の仮想ノード

Azure Kubernetes Service (AKS) クラスターでアプリケーション ワークロードをすばやくスケーリングするには、Azure Container Instances 内で動的に作成された "仮想ノード" を使用できます。 仮想ノードは、AKS クラスター コントロール プレーンに無制限の容量を持つノードとして登録されます。 ポッドを AKS クラスター内の仮想ノードにデプロイすると、ACI でコンテナー グループとして実行されます。

仮想ノードでは、現在、Linux コンテナー インスタンスがサポートされています。 詳細については、「Azure Container Instances 上の仮想ノード」を参照してください。

次のステップ

クイック スタート ガイドを使用して Azure Container Instances で最初のコンテナーを作成します。