We couldn't find a match for given <KEYWORD>, please try again.

コンテナ オーケストレーションとは

コンテナ オーケストレーションとは、コンテナ化されたワークロードやサービスを実行するために必要な、運用タスクの大部分を自動化することを指します。これには、プロビジョニング、デプロイ、スケーリング(拡張/縮小)、ネットワーク、ロードバランシングなど、ソフトウェア チームがコンテナのライフサイクルを管理するうえで必要となるさまざまな作業が含まれます。

Kubernetes の現状

Kubernetes 上での開発者体験を改善し、ソフトウェア デリバリを加速する 7 つの方法

コンテナ オーケストレーションが必要である理由

コンテナはその性質上、軽量で一時的なものであるため、本番環境での運用を始めるとすぐに膨大な労力が必要になる可能性があります。特に、コンテナをマイクロサービスと組み合わせて利用する場合、この問題は顕著です。マイクロサービスは各々が独自のコンテナで実行されるため、大規模なシステムを構築および運用する場合などでは、コンテナ化されたアプリケーションを 1 つ実行するために数百や数千にもおよぶコンテナの運用が必要になる場合があります。

こうした環境を手動で管理する場合、その複雑さは相当なものになり得ます。コンテナ オーケストレーションは、そのような運用の複雑性を緩和し、開発チームおよび運用チーム(DevOps)がより容易に対応できるようにします。これは、タスクの大部分を自動化する宣言型のアプローチによって実現されます。そのため、従来のソフトウェア チームよりもはるかに高速かつ俊敏な開発プロセスの実行を目指す、DevOps チームとその文化に適しています。

コンテナ オーケストレーションのメリット

コンテナ オーケストレーションはコンテナ活用のカギとなる分野であり、組織がコンテナのメリットを最大限に引き出すうえで必須です。またそれ自体としても、コンテナ化された環境における以下のようなメリットを提供します。

  • 運用の簡素化:運用の簡素化はコンテナ オーケストレーションのもっとも重要なメリットであり、多くの組織にとって採用の主な理由となっています。コンテナ オーケストレーションによる管理を行わないと、コンテナの導入は大幅な複雑化をもたらし、瞬く間に組織が制御できない状況に陥る可能性があります。
  • レジリエンス:コンテナ オーケストレーション ツールによって、コンテナやクラスタの自動での再起動やスケーリングを可能にすることで、レジリエンスが向上します。
  • セキュリティの強化:コンテナ オーケストレーションの自動化アプローチは、人為的なエラーのリスクを低減または解消するため、コンテナ化されたアプリケーションのセキュリティを確保するうえで有効です。

コンテナの概要とそのメリット

コンテナは、ソフトウェアをビルド、パッケージ、デプロイするための手法の一つです。仮想マシンと似ていますが、同じものではありません。主な違いの一つは、コンテナが、実行される際の基盤となるオペレーティング システムやインフラストラクチャから分離または抽象化されている点です。簡単に言うと、コンテナにはアプリケーションのコードに加え、そのコードの正常な実行のために必要となるものがすべて含まれています。

この特長により、コンテナは以下のような多くのメリットをもたらします。

  • 可搬性:コンテナの最大のメリットの一つは、どのような環境でも実行できる設計です。これによりコンテナ化されたワークロードは、たとえば異なるクラウドプラットフォーム間での移行の際など、基盤となるオペレーティング システムやその他の要因に関係なく、大量のコードの書き換えなしで正常な移行を確実に行えます。また、開発者の生産性も向上します。開発者が、ローカル マシンからオンプレミスのサーバやパブリッククラウドなどの異なる環境にデプロイした場合にアプリケーションが正常に動作するかを心配せずに、一貫性のある方法でコードを記述できるためです。
  • アプリケーション開発:コンテナはアプリケーションの開発とデプロイを、その後の変更やアップデートも含めて高速化します。特に、コンテナ化されたマイクロサービスではその効果は大きくなります。この手法はソフトウェア アーキテクチャに対するアプローチであり、大規模なソリューションを小さな要素に分割します。そのように分割された個々のコンポーネント(マイクロサービスと呼ばれます)は、各々を別個にデプロイ、アップデート、運用終了できるため、アプリケーション全体を更新して再デプロイする必要がありません。
  • リソースの活用と最適化:コンテナは軽量で一時的な性質を持つため、リソース消費を抑制できます。たとえば、多数のコンテナを 1 つのマシン上で実行できます。

Kubernetes のコンテナ オーケストレーションとは

Kubernetes は、コンテナ オーケストレーションのためのオープンソース プラットフォームとして広く利用されています。Kubernetes を使用すると、開発者はコンテナ化されたアプリケーションやサービスを簡単にビルドしたうえで、コンテナのスケーリング、スケジューリング、監視も行うことができます。コンテナ オーケストレーション ツールには Apache Mesos や Docker Swarm などの選択肢もありますが、Kubernetes が今日の業界標準となっています。Kubernetes では、豊富なコンテナ機能や活発なコントリビューター コミュニティにアクセスできるほか、今日ではクラウドネイティブ アプリケーションの開発が拡大しており、商用およびホスト型の Kubernetes ツールも幅広く提供されています。また、Kubernetes は拡張性と可搬性に優れているためさまざまな環境で実行でき、サービス メッシュなどの各種テクノロジーと組み合わせて使用することもできます。

コンテナ オーケストレーションの基本である自動化機能の提供に加え、Kubernetes には高度に宣言型であるという特長もあります。つまり、開発者や管理者が Kubernetes を使ってシステムがどのように動作してほしいかを指定する基礎的な部分を記述すれば、Kubernetes がその望ましい状態を動的に実現するのです。

マルチクラウド コンテナ オーケストレーションとは

マルチクラウド」のもっとも基本的な意味は、複数のプロバイダーが提供する複数のクラウドサービスを利用する IT 戦略という意味です。コンテナとオーケストレーションの文脈では、マルチクラウドという言葉は通常、アプリケーションの実行にパブリッククラウドやプライベートクラウドなどの複数のクラウド インフラストラクチャ プラットフォームを利用することを意味します。そのためマルチクラウド コンテナ オーケストレーションの定義は、「単一のクラウド環境でコンテナを実行するのではなく、マルチクラウドのインフラストラクチャ環境の全体にわたりコンテナを運用するために、オーケストレーション ツールを使用すること」になります。

ソフトウェア チームがマルチクラウド戦略を採用する理由はさまざまですが、そのメリットとしては、インフラストラクチャ コストの最適化、柔軟性と可搬性(ベンダー ロックインの回避を含む)、拡張性(必要に応じたオンプレミス環境からの動的なクラウドのスケール アウトなど)などが挙げられます。マルチクラウド環境とコンテナは、コンテナが可搬性に優れており場所を問わず実行できるため、併用に適しています。

コンテナ オーケストレーションと Docker の比較

Docker は、コンテナ ランタイムである Docker Engine などで構成される、コンテナ構築のためのプラットフォームの一つです。これに対しコンテナ オーケストレーションは、コンテナのライフサイクル自動化全般を指す、より広範な用語です。Docker には、Docker コンテナを自動で起動できる独自のコンテナ オーケストレーション ツールである Docker Swarm も含まれます。

関連するソリューションおよび製品

VMware Tanzu for Kubernetes Operations

最新のマルチクラウド コンテナ インフラストラクチャの基盤

VMware Tanzu Application Platform

Kubernetes 環境でマルチクラウド対応の優れた開発者体験を提供

VMware Tanzu Community Edition

VMware Tanzu の無償試用を開始