コンテナ・オーケストレーションとは
コンテナ・オーケストレーションは、コンテナのライフサイクル全体を通じて、コンテナのデプロイメント、管理、スケーリング、ネットワーキングを自動化するプロセスです。同じアプリケーションを、再設計することなくさまざまな環境にデプロイできるようになります。これは、数百から数千におよぶ Linux® コンテナやホストをデプロイし、管理する必要がある企業にとって特に重要です。
オーケストレーションによるコンテナのライフサイクル管理は、それを継続的インテグレーション/継続的デリバリー (CI/CD) ワークフローに統合する DevOps チームもサポートします。 アプリケーション・プログラミング・インタフェース (API) と DevOps チームに加えて、コンテナ化された マイクロサービスも クラウドネイティブ・アプリケーションの基盤となります。
コンテナ・オーケストレーションの用途
コンテナ・オーケストレーションを使用すると、次のようなタスクを自動化および管理できます。
- プロビジョニングとデプロイメント
- 構成とスケジューリング
- リソースの割り当て
- コンテナの可用性
- インフラストラクチャ全体のワークロードのバランシングに基づくコンテナのスケーリングまたは削除
- ロードバランシングとトラフィックルーティング
- コンテナの状態の監視
- アプリケーションを実行するコンテナに基づいたアプリケーションの構成
- コンテナ間のやりとりにおける安全性の維持
Red Hat のリソース
コンテナ・オーケストレーション・ツール
コンテナ・オーケストレーション・ツールは、コンテナとマイクロサービス・アーキテクチャを大規模に管理するためのフレームワークを提供します。コンテナのライフサイクル管理に使用できるコンテナ・オーケストレーション・ツールは数多くあります。一般的なものとしては、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® です。
Red Hat OpenShift® は企業向けの Kubernetes であるだけでなく、さらに機能が豊富です。OpenShift は、Kubernetes を企業向けに強化するためのさまざまなテクノロジーを提供します。これには、レジストリ、ネットワーキング、テレメトリー、セキュリティ、自動化、サービスが含まれます。
また、Red Hat Service Interconnect のようなツールを使用することにより、ルーターとゲートウェイは、異なるクラウド、エッジデバイス、一般的な Kubernetes、OpenShift 上のサービス間の信頼できる通信リンクを提供します。
Red Hat を活用することで、開発者はコンテナ化された新しいアプリを作り、ホストし、クラウドでデプロイできるようになります。さらに、高可用性 (HA)、スケーラビリティ、制御性、オーケストレーションを提供することで、優れたアイデアが迅速かつ簡単にビジネスにつながるのを助けます。
コンテナベース・デプロイメントのための認定ソフトウェア
パブリッククラウド、プライベートクラウド、データセンターのすべてで、認定ソフトウェアを試用、購入、管理できます。これが Red Hat Marketplace の強みです。よりシンプルな方法で、導入済みのソフトウェアにアクセスし、Kubernetes ベースの統合環境で構築し、どこにでもデプロイできます。
Red Hat Marketplace を利用すれば、ライセンス、エンタイトルメント、有効期限の確認に追われることなく、革新的なソリューションの開発に時間を割くことができます。
Red Hat 公式ブログ
Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。