Jump to section

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

URL をコピー

コンテナオーケストレーションとは、コンテナを管理する技術であり、これにより、コンテナのデプロイメント、管理、スケーリング、ネットワーキングなどを自動化します。数百から数千におよぶ Linux® コンテナやホストをデプロイし、管理する必要のあるエンタープライズには、コンテナオーケストレーションが有効です。

コンテナオーケストレーションは、コンテナを使用するあらゆる環境で使用できます。これにより、同じアプリケーションを設計し直すことなく異なる環境にデプロイすることができます。また、コンテナ内でマイクロサービスを使用すると、ストレージ、ネットワーク、セキュリティなどのサービスのオーケストレーションが容易になります。

コンテナは、マイクロサービスベースのアプリケーションにとって、理想的なアプリケーションデプロイ単位であり、自己完結型の実行環境です。同じハードウェア上でアプリケーションの複数の部分をマイクロサービス内で個別に実行し、各部分やライフサイクルをより詳細に制御できるようになります。

オーケストレーションによるコンテナのライフサイクル管理は、CI/CD ワークフローにも統合できます。API (アプリケーション・プログラミング・インタフェース) と DevOps チームに加えて、コンテナ化されたマイクロサービスもクラウドネイティブ・アプリケーションの基盤となります。

コンテナオーケストレーションを使用すると、次のようなタスクを自動化および管理できます。

  • プロビジョニングとデプロイメント
  • 構成とスケジューリング
  • リソースの割り当て
  • コンテナの可用性
  • インフラストラクチャ全体のワークロードのバランシングに基づくコンテナのスケーリングあるいは削除
  • ロードバランシングとトラフィックルーティング
  • コンテナの状態の監視
  • アプリケーションを実行するコンテナに基づいたアプリケーションの構成
  • コンテナ間のやりとりにおける安全性の維持

コンテナオーケストレーション・ツールは、コンテナとマイクロサービス・アーキテクチャを大規模に管理するためのフレームワークを提供します。コンテナのライフサイクル管理に使用できるコンテナオーケストレーション・ツールは多数あります。一般的なものとしては、Kubernetes、Docker Swarm、Apache Mesos などがあります。

Kubernetes は、元々は Google のエンジニアによって開発および設計された、オープンソースのコンテナオーケストレーション・ツールです。2015 年に Google は、新しく設立された Cloud Native Computing Foundation に Kubernetes プロジェクトを寄贈しました

Kubernetes オーケストレーションによって、複数のコンテナにまたがるアプリケーションサービスを構築し、コンテナをクラスタにスケジュールしてスケーリングを行い、その正常性を継続的に管理できるようになります。

Kubernetes を使用すると、コンテナ化されたアプリケーションのデプロイとスケーリングに伴う多くの手動プロセスをなくすことができます。物理マシンでも仮想マシンでも、Linux コンテナを実行しているホストをまとめてクラスタ化できます。Kubernetesは、これらのクラスタを容易に、そして効率的に管理するプラットフォームを提供します。

さらに、信頼性の高いコンテナベースのインフラストラクチャを本番環境に完全に実装することができます。

クラスタには、パブリック、プライベート、ハイブリッドの各クラウドにまたがるホストが含まれます。この理由から、Kubernetes は、迅速なスケーリングが要求されるクラウドネイティブ・アプリケーションをホストするプラットフォームとして最適です。

Kubernetes ではアプリケーションを設計し直すことなく移行できることから、ワークロードの可搬性と負荷分散もサポートされます。

Kubernetes の主なコンポーネント

  • クラスタ:コントロールプレーンと、少なくとも 1 つのコンピューティングマシン (ノード)。
  • コントロールプレーン:Kubernetes ノードを制御する一連のプロセス。すべてのタスクの割り当てはここで発生します。
  • Kubelet:ノード上で実行されるサービス。コンテナマニフェストを読み取り、定義されたコンテナが確実に開始し実行されるようにします。
  • Pod:1 つのノードにデプロイされた、1 つ以上のコンテナからなるグループ。Pod に入っているすべてのコンテナは、同じ IP アドレス、IPC、ホスト名、その他のリソースを共有します。

Kubernetes などのコンテナオーケストレーション・ツールを使用する場合は、YAML あるいは JSON ファイルを使用してアプリケーションの構成を記述します。構成ファイルは、構成管理ツールに、コンテナイメージの場所、ネットワークの確立方法、ログの保存場所を指示します。

新しいコンテナをデプロイすると、コンテナ管理ツールは、定義された要件や制限を考慮して、クラスタへのデプロイメントを自動的にスケジュールし、適切なホストを見つけます。次に、オーケストレーション・ツールは、構成ファイルで決定された仕様に基づいてコンテナのライフサイクルを管理します。

Kubernetes パターンを使用して、コンテナベースのアプリケーションとサービスの構成、ライフサイクル、規模を管理できます。これらの繰り返し可能なパターンは、Kubernetes 開発者が完全なシステムを構築するために必要とするツールです。

コンテナオーケストレーションは、オンプレミスサーバー、パブリッククラウド環境、プライベートクラウド環境など、コンテナを実行する任意の環境で使用できます。

実際のアプリは複数のコンテナにまたがって稼働しています。これらのコンテナは複数のサーバーホストにデプロイされる必要があります。そこで登場するのが Red Hat® OpenShift® です。Red Hat OpenShift は企業向けの Kubernetes であるだけでなく、さらに機能が豊富です。

Red Hat OpenShift には、Kubernetes を企業向けに強化するためのさまざまなテクノロジーが追加されています。これには、レジストリ、ネットワーキング、テレメトリー、セキュリティ、自動化、サービスが含まれます。

Red Hat OpenShift を活用することで、開発者はコンテナ化された新しいアプリを作り、ホストし、クラウドでデプロイできるようになります。さらに、スケーラビリティ、制御性、オーケストレーションを提供することで、優れたアイデアが迅速かつ簡単にビジネスにつながるのを助けます。

パブリッククラウド、プライベートクラウド、お客様のデータセンターのすべてで、認定ソフトウェアを試用、購入、管理できます。これが Red Hat Marketplace の強みです。よりシンプルな方法で、導入済みのソフトウェアにアクセスし、Kubernetes ベースの統合環境で構築し、どこにでもデプロイできます。

Red Hat Marketplace を利用すれば、ライセンス、エンタイトルメント、有効期限の確認に追われることなく、革新的なソリューションの開発に時間を割くことができます。

関連資料

記事

コンテナと VM

Linux コンテナと仮想マシン (VM) は、さまざまな IT コンポーネントが組み合わさってシステムの他の部分から分離している、パッケージ化されたコンピューティング環境です。

記事

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

コンテナ・オーケストレーションは、コンテナのデプロイメント、管理、スケーリング、ネットワーキングを自動化します。

記事

Linux コンテナとは

Linux コンテナとは、システムから分離された一連のプロセスであり、そのプロセスのサポートに必要なすべてのファイルを提供する個別のイメージから実行されます。

コンテナの詳細はこちら

製品

統合されたテスト済みのサービス一式を備えたエンタープライズ・アプリケーション・プラットフォームであり、ユーザーの選ぶインフラストラクチャを使ってアプリケーションを市場に投入するために活用できます。

リソース

トレーニング

無料のトレーニングコース

Running Containers with Red Hat Technical Overview

無料のトレーニングコース

Containers, Kubernetes and Red Hat OpenShift Technical Overview

無料のトレーニングコース

Developing Cloud-Native Applications with Microservices Architectures