コンテナ・オーケストレーションには、ライフサイクルに沿ってコンテナを管理するために使用されるプロセスとツールが含まれます。これには、広範囲に相互運用し、通信する方法が含まれます。これらのプロセスは、多くの場合、コンテナ・オーケストレーション・プラットフォームによって管理されます。
コンテナの詳細を見る
コンテナ・オーケストレーションがメリットをもたらす理由
コンテナ・オーケストレーションがなければ、コンテナの使用を拡張することは、その管理に必要な作業量を指数関数的に増大させることになります。組織内でコンテナが数千単位に増え始めると、管理に非常に時間がかかります。その結果、コンテナが提供できる効率性とスピードのメリットは、事実上相殺されてしまいます。
コンテナ・オーケストレーションは、大量のコンテナを起動/停止するために必要な作業を合理化するために、大部分が自動化されています。
コンテナ・オーケストレーションは、次のようなメリットをもたらします。
- 大企業がコンテナ戦略を導入する際に必要となる標準化、セキュリティ、ガバナンス
- リソースの管理と安定化:リソースがどのように使用され、割り当てられているかをよりよく可視化し、管理
- ロギングと分析:可視性と知見により、アプリケーションの全体像を把握
- エンタープライズ・コンテナ環境のスケーリングをよりシンプルに、よりスムーズに
- 可用性と冗長性の向上
コンテナ・オーケストレーション・プラットフォーム
コンテナ・オーケストレーション・プラットフォームは、コンテナのワークロードを管理するステップを自動化します。
- プロビジョニング
- 展開とスケジューリング
- クラスタ管理
- 負荷分散とリソース割り当てにより、コンピューティング・リソースを最適化
- セキュリティと監視により、1 つのコンテナに障害が発生した際の別のコンテナの起動や、脆弱性にパッチを当てるためにコンテナ・イメージの置き換えを支援
- コンテナ・ネットワーキング:他のコンテナとサービスが互いに対話できるようにする
- データベース・サービスとアクセス
オーケストレーション・プラットフォームは、必要なプロセスと、開発者の負担から多くのタスクを取り除くタイミングを指示できます。
最も人気のあるコンテナ・オーケストレーション・プラットフォーム
コンテナ・オーケストレーション・プラットフォームは多数あります。選択すべきものは、アプリケーションの要件、コンテナにおけるチームの知識、クラウド戦略、セキュリティとコンプライアンスのニーズの複雑さによって異なります。
一般的なコンテナ・オーケストレーション・プラットフォームには、次のようなものがあります。
- Kubernetes
- Kubernetes 上に構築されたプラットフォーム(Mirantis Kubernetes Engine、Azure Kubernetes Service、IBM Cloud Kubernetes Service、Google Kubernetes Engine など)
- Amazon Elastic Container Service(ECS)
- Apache Mesos
- Red Hat OpenShift Container Platform
コンテナ・オーケストレーション・プラットフォームにおけるデータ・ストレージの取り扱い
コンテナ・ストレージに関しては、データベースなどのステートフル・ワークロードを実行する能力は、コンテナが最初に導入された時点では優先事項ではありませんでした。コンテナは起動され、ワークロードが実行され、消えます。
しかし、コンテナ・ワークロードの複雑さが増すにつれて、ステートフル・アプリケーション、つまり永続データ・ストレージへの欲求も高まりました。人々は、最初のワークロードが完了した後も、将来のコンテナ・インスタンスによって再利用され、アクセス可能な永続ストレージを必要としていました。
ホストのファイルシステムをボリューム経由でコンテナに公開する機能など、基本的な回避策が現れました。かつては、ボリューム・プラグインがその答えでした。しかし、今日ではより良い方法があります。
Portworx などのエンタープライズ・グレードのコンテナ・ネイティブの永続ストレージ・ソリューションは、Kubernetes のコンテナ・クラスタにデータ・ストレージを提供するのに使用できます。オンデマンドで外部ストレージをプロビジョニングできることは、コンテナ化されたアプリケーションの可能性を広げるゲームチェンジャーであることが証明されています。
Kubernetes
Kubernetes は、コンテナ・オーケストレーション・システムとして最も人気があります。コンテナ化されたアプリケーションを大規模に展開する際に、非常に重要なことは何でしょうか? それは、自動化です。
数千以上のコンテナがある場合、コンテナ管理プラットフォームにより、コンテナのスプロールや複雑さの管理がはるかに容易になります。Kubernetes は、コンテナ・オーケストレーションを合理化し、自動化します。DevOps チームは、複雑なコンテナ・ベースのアーキテクチャをシームレスにオーケストレーションできます。また、ワークロードがどこで動作するかを決定し、他の場所でより適切に動作するかを決定することもできます。
Kubernetes の詳細を見る