コンテナ・オーケストレーション
クラウド・リードスペース
コンテナ・オーケストレーション

コンテナ・オーケストレーションはコンテナ・アプリケーションのプロビジョニングと導入と管理を自動化、簡素化します。

注目の製品

Red Hat OpenShift on IBM Cloud

IBM Cloud Satellite

IBM Cloud Code Engine

IBM Cloud Kubernetes Service


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

コンテナ・オーケストレーションは、コンテナのプロビジョニング、導入、ネットワーキング、基準化、可用性、およびライフサイクル・マネジメントを自動化します。 今日、Kubernetesが最も人気のあるコンテナ・オーケストレーション・プラットフォームであり、Amazon Web Services(AWS)、Google Cloud Platform、 IBM Cloud、そしてMicrosoft Azureなど、パブリック・クラウド・プロバイダーのトップ企業の数々が、Kubernetesの管理されたサービスを提供しています。 その他のコンテナ・オーケストレーション・ツールには、Docker SwarmやApache Mesosなどがあります。


コンテナの詳細と、なぜオーケストレーションが必要なのか

コンテナ は、あらゆる環境でコードを実行するためにアプリケーション・ソース・コードをすべての オペレーティング・システム (OS)ライブラリーや 依存関係 と組み合わせる、軽量で実行可能なアプリーション・コンポーネントです。 

コンテナを作成する能力は数十年にわたって存在していますが、それが広く利用可能になったのは2008年で、 Linux がコンテナ機能をその中核に据えた時からです。さらに、広く使用されるようになったのは Docker オープンソース コンテナ化プラットフォームが2013年に発表されてからです。 (Dockerは非常に人気があるため、「Dockerコンテナ」と「コンテナ」は同じ意味で使用されることがよくあります。) 

より資源効率が良く、 仮想マシン (VM)より移植しやすいため、コンテナ(より具体的には、コンテナ化された マイクロサービス または サーバーレス 機能)は、現代の クラウドネイティブ アプリケーションの デファクト 計算 単位になっています。 (コンテナーの利点の詳細については、以下のインタラクティブ・データを参照してください)

少数の場合、コンテナの導入や管理は手動で簡単に行えます。 しかし、ほとんどの組織で コンテナ化されたアプリケーション の数は急速に増えており、それらをスケールで(特に、 継続的組み込み/継続的デリバリー (CI / CD)または DevOps パイプラインの一部として)管理することは オートメーションなしでは不可能です。

コンテナ・オーケストレーションを取り入れ、 コンテナ化されたアプリケーション とサービスの 導入 と実行にかかるオペレーション・タスクを自動化しましょう。  最新の IBM の調査 (PDF、1.4MB)によると、 コンテナを使用する開発者の70%がコンテナ・オーケストレーション・ソリューションを使用しており、そのさらに70%はフルマネージド(クラウド管理された)コンテナ・オーケストレーション・サービスを組織内で使用していると報告しています。

レポート全文のダウンロード:「Containers in the enterprise」

コンテナ・オーケストレーションの仕組み

ツール間の方法論の違いや能力差はありますが、コンテナ・オーケストレーションは基本的に3つのステップからなります(反復アジャイルや DevOps パイプラインの一部である場合は、プロセスが循環することもあります)。

多くの コンテナ・オーケストレーション・ツール は、 宣言型 の構成モデルをサポートしています:開発者が希望する構成状態を定義する 構成ファイル を書き( YAML また JSON 内で、使用するツールに応じて)、オーケストレーション・ツールはインテリジェンスを用いてファイルを実行し、構成状態を実現します。  構成ファイル は通常

  • どの コンテナ画像 がアプリケーションを構成し、どこ(レジストリー)に位置するかを定義します
  • ストレージおよびその他のリソースをプロビジョニングします
  • コンテナ間のネットワーク接続を定義し、保護します
  • バージョン管理します(段階的またはカナリア・ロールアウトの場合)

オーケストレーション・ツールはコンテナ(そしてレジリエンシーのためにコンテナのレプリカも)のホストへの導入をスケジュールし、CPU能力、メモリー、または 構成ファイル の中に指定されたその他の条件や制約に基づいて、最良のホストを選択します。

コンテナがデプロイされると、オーケストレーション・ツールはコンテナ定義ファイル(主にDockerfile)に基づいて コンテナ化されたアプリケーション の ライフサイクル を管理します。 これに含まれるのは 

  • コンテナ間での 拡張性 (上下双方)、 負荷平準化、そしてリソース 割り振り の管理; 
  • 故障またはシステムリソースの不足時における、別ホストへのコンテナ再配置の際の可用性とパフォーマンスの確保
  • アプリケーションの正常性とパフォーマンスをモニタリングするために使用される、ログ・データや他のテレメトリの収集と保管。

コンテナ・オーケストレーションの利点


コンテナ・オーケストレーションの主な利点が オートメーション であることは明らかですが、 それは膨大な コンテナ化されたアプリケーション を管理する上での手間や複雑さを大幅に削減してくれるからだけではありません。 オペレーションを自動化することで、オーケストレーションはアジャイルや DevOps アプローチをサポートし、チームが開発とデプロイを急速に繰り返して新機能や改善のリリースを早めることを可能にします。

加えて、オーケストレーション ツールのインテリジェンスは、コンテナ化の固有の利点の多くを向上 または拡張 することができます。 例えば、 宣言型 構成に基づく自動化されたホスト・セレクションとリソースの 割り振りは、コンピューティング・リソースの利用効率を最大化します。自動化された正常性モニタリング及びコンテナの再配置は、可用性を最大化します。


Kubernetes

前述の通り、 Kubernetes は最も人気がある コンテナ・オーケストレーション・プラットフォームです。 コンテナ エコシステム内の他のツールと組み合わせることで、 Kubernetes は企業が生産性の高い Platform-as-a-Service(PaaS) を提供することを可能にします。これは、インフラストラクチャおよび運用に関連するタスクと クラウドネイティブ アプリケーション開発周辺の問題の多くに対処します。これにより、開発チームはコーディングとイノベーションに集中することができます。

Kubernetesが他のオーケストレーション・ソリューションに勝っているのは、以下の分野においてより包括的かつ洗練された機能性を含んでいるからです:

  • コンテナ導入。 Kubernetesは指定された数のコンテナを指定のホストにデプロイし、それらのコンテナを 適切な状態で稼働し続けます。 
  • ロールアウト。 ロールアウトはデプロイメントに加える変更です。 Kubernetes により、ロールアウトの開始、一時停止、再開、またはロールバックが可能です。 
  • サービスの検出。 Kubernetes は DNS名 または IPアドレス を使用して、コンテナをインターネットまたは他のコンテナに自動で公開できます。
  • ストレージ プロビジョニング。 開発者は必要に応じてコンテナ用に永続的なローカル・ストレージまたはクラウド・ストレージをマウントするように Kubernetes を設定することができます。 
  • 負荷平衡化 と 拡張性。 コンテナへのトラフィックがスパイクした際、 Kubernetes は 負荷平準化 と基準化を採用し、安定性とパフォーマンスを確保するためにネットワーク全体に分配することができます。 (開発者が ロード・バランサーの設定をせずに済むということでもあります。)
  • 高可用性のための自己修復。 コンテナに不調があった際、 Kubernetes はその再開または置き換えを自動的に行います。 正常性チェックの要件を満たさないコンテナを削除することもできます。 
  • 複数の クラウド・プロバイダーにおけるサポートと 携帯性 。 前述の通り、Kubernetesは全てのクラウド・プロバイダートップ企業に対して、幅広いサポートを行っています。 これは アプリケーションを ハイブリッド クラウド またはハイブリッド マルチクラウド 環境にデプロイする組織にとって特に重要です。
  • 成長している エコシステム の オープンソース ツール。 Kubernetes はまた、Kubernetes APIを介してその機能を向上し、拡大を続けるユーザビリティとネットワーキング・ツールの土台を持ちます。  Knativeもこれに含まれ、コンテナをサーバーレス・ワークロードとして稼働させることを可能にします。また、オープンソース・サービス・メッシュである Istioも含まれています。 

 Kubernetesの詳細


コンテナ・オーケストレーションとIBMクラウド

コンテナは アプリケーションの最新化 と ITインフラストラクチャー最適化に適しています。  Kubernetesなどの オープンソース 技術上に構築された IBM クラウドのコンテナサービスは、 クラウドネイティブ アプリケーションの開発、そしてプライベート・クラウドや パブリック・クラウド 、 オンプレミス ITインフラストラクチャーの最高の機能を統合したオープンなハイブリッド・クラウドへの道のりを用意し、加速させてくれます。

次のステップに進んでください。

  •  IBM Cloud上の Red Hat OpenShiftを使用して、 コンテナ化されたアプリケーション のために可用性が高く、完全に管理されたKubernetesクラスターをデプロイする方法を学びましょう。
  •  IBM Cloud Satelliteを使って、 コンテナ化されたアプリケーション をあらゆるベンダーの オンプレミス、エッジ・コンピューティング、 パブリック・クラウド 環境全体で絶えずデプロイ、管理します。
  •  IBM Code Engineを使って、 コンテナー・イメージ、バッジ・ジョブまたはソース・コードをサーバーレス・ワークロードとして実行します。サイジング、 デプロイ、ネットワーキング、スケーリングは必要とされません。

すぐに開始するために、 IBM Cloudアカウントのための サインアップ をします。


関連ソリューション

アプリケーションのモダナイズ

信頼性のあるさまざまなクラウドで、アプリケーションを安全に構築、モダナイズ、管理します。


ITインフラストラクチャーの最適化

オープンなハイブリッドクラウド戦略を採用すると、ベンダーの囲い込みなしにあらゆる場所でワークロードを構築して管理できます。


オンプレミス・ITインフラストラクチャー

オープンで柔軟性のあるセキュアなオンプレミスのインフラストラクチャー・ソリューションを活用してハイブリッドクラウド戦略を引き出します。