ログイン / 登録 アカウント

コンテナ

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

コンテナ・オーケストレーションは、コンテナのデプロイメント、管理、スケーリング、ネットワーキングを自動化します。数百から数千におよぶ 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 OpenShift product logo

エンタープライズ対応の Kubernetes コンテナプラットフォームで、ハイブリッドクラウドやマルチクラウドのデプロイメントを管理するフルスタックの自動運用機能を備えています。 

Red Hat Runtimes logo

マイクロサービスなど、高度に分散化されたクラウドアーキテクチャ用の軽量なランタイムとフレームワークを提供します。

コンテナについてさらに詳しく知る