メニュー

Red Hat OpenShift Container Platform とは|主要機能と構成

 : エンタープライズ向け OpenShift の特徴、アーキテクチャ、Kubernetes との違いを解説。

目次

このページを共有

Yifat Perry
Yifat Perry

Red Hat OpenShift Container Platform とは

エンタープライズ向けのオープンソースコンテナ基盤

Red Hat OpenShift は、エンタープライズ向けに設計されたオープンソースのコンテナオーケストレーションプラットフォームです。中心となるのは、オープンソースプロジェクト OKD(旧称 OpenShift Origin) を基盤とした OpenShift コンテナオーケストレーションソフトウェアで、複数のコンテナ技術が統合されています。

OpenShift には、Kubernetes コンポーネントに加え、大規模エンタープライズで求められる セキュリティ機能生産性向上の機能 が組み込まれており、特に ハイブリッドクラウド環境 での利用に適しています。

OpenShift Container Platform は、パブリッククラウドまたはオンプレミスインフラ上で稼働する企業向け プライベート PaaS(Platform as a Service) です。Red Hat Enterprise Linux (RHEL) 上で動作し、Kubernetes によるオーケストレーションで管理される Docker ベースのアプリケーションコンテナ群として機能します。

本記事は、オープンソースに関する包括的なガイドシリーズの一部です。

OpenShift Container Platform: 13 の主要機能

エンタープライズ利用を支える包括的な機能セット

OpenShift Container Platform には、以下のような豊富な機能と特長があります。

  1. 複数クラスターの管理 — オンプレミスおよびクラウド環境を横断して統合管理できるクラスターの一元ビューを提供。
  2. スケーラビリティ — 数百ノードにわたり数千のインスタンスへアプリケーションを迅速にスケール可能。
  3. 永続ストレージ — ステートフルアプリケーションやクラウドネイティブのステートレスアプリケーションを永続ストレージで実行可能。詳しくは Kubernetes 永続ストレージガイド を参照。
  4. 統合エコシステム — コミュニティによって開発・統合された豊富なサードパーティツール群を利用可能。
  5. オープンソース対応 — CNCF が支援する Kubernetes や OCI(Open Containers Initiative)などのオープンソース技術をサポート。
  6. ポータビリティ — OCI 標準により、開発環境から本番環境まで容易にコンテナを移行可能。
  7. 3 ノードクラスター — ワーカーノードとスーパーバイザーノードを含むエッジアーキテクチャにより、高可用性かつ小規模フットプリントでエッジデバイス上でも Kubernetes をフル活用可能。
  8. リモートワーカーノード — 中央のスーパーバイザーノードで管理でき、物理的制約や電力・冷却制限のあるリモートエッジ環境にも対応。
  9. 使いやすいユーザーインターフェース — 豊富なコマンドラインツール、多端末対応コンソールなどに直接アクセス可能。
  10. 複数言語のサポート — 単一プラットフォーム上で複数のプログラミング言語やデータベースを利用可能。
  11. 開発ライフサイクルの自動化 — アプリケーションのビルド、コンテナのデプロイ、スケーリングなどを自動化。
  12. 自動インストールとアップグレード — OperatorHub を通じてクラウドやオンプレミス環境のサービスを自動的にインストール・更新可能。Azure、AWS、Google Cloud、IBM Cloud など主要クラウドプロバイダやオンプレミスのベアメタル/仮想環境に対応。
  13. 統合 CI/CD パイプライン — 自動テストや継続的インテグレーションにより、開発やデプロイの手作業負担を軽減。

OpenShift Container Platform のアーキテクチャ

Docker ベースで Kubernetes による管理を拡張

OpenShift は、開発者がアプリケーションを容易に構築できるよう設計された Docker ベースのシステム です。Linux ベースのコンテナイメージ作成を抽象化するレイヤードアーキテクチャを採用し、複数ホスト上のコンテナのクラスター管理とオーケストレーションは Kubernetes が担います

OpenShift Container Platform はこれに加えて、ソースコード、イメージ、アプリケーションの管理といった追加機能を提供します。さらにクラスターを支えるネットワーク基盤を備え、大規模組織におけるユーザーやチームのトラッキングを可能にします。

OpenShift Container Platform はマイクロサービスで構成されています。これらには REST API(コアオブジェクトへのアクセスを提供)や コントローラー(コンテナ化されたワークロードに変更を加え、ステータスを報告)が含まれます。これらマイクロサービスは Kubernetes クラスター上で稼働し、オブジェクトデータを etcd に保存します。

REST API への呼び出しにより、システムの状態を変更できます。コントローラーは REST API を通じて送られた望ましい状態を読み取り、それに従ってオブジェクトを変更します。例えば、ユーザーが「ビルド」オブジェクトを作成すると、ビルドコントローラーがリクエストを検知して実行し、完了後に REST API を通じてオブジェクトのステータスを更新します。

この仕組みにより、OpenShift Container Platform の多くの機能を拡張でき、ビルドの実行方法をイメージ管理とは独立してカスタマイズできます。コントローラーをカスタマイズすれば、定義したロジックに基づいた動作を実現できます。

さらに、API を利用して一般的な管理作業をスクリプト化でき、コントローラーを通じてシステムの状態を監視したり変更を実行したりできます。また、ユーザーアクティビティのイベントストリームに基づき、コンテナを活用してシステム変更を行い、ワークロードを実際の負荷や要件に応じて動的に調整することも可能です。

ソース: OpenShift

OpenShift と Kubernetes の比較

共通点と相違点を理解する

Red Hat OpenShift と Kubernetes は、どちらもコンテナ化アプリケーションを実行するための代表的なプラットフォームです。前述のとおり、OpenShift は本質的に Kubernetes を基盤としており、基本機能に加えて追加の機能を備えています。以下では主な違いを整理します。

   ディストリビューション

 Kubernetes はオープンソースのコンテナオーケストレーションプラットフォームであり、Amazon EKS、Azure AKS、Google GKE、Rancher など複数のベンダーがマネージドサービスを提供しています。

一方、OpenShift は Kubernetes を基盤としていますが、Kubernetes ディストリビューションとは見なされません。OpenShift は拡張機能やアドオンを提供する独自のプラットフォームです。

   ワークフローと構成

 OpenShift は Kubernetes を基盤としているため、基本原則は共通しています。クラスターにアプリケーションをデプロイする際は、YAML または JSON で構成ファイルを記述し、デプロイ方法を定義します。両者ともにロードバランシングやルーティング機能をサポートし、オンプレミスでもパブリッククラウドでも稼働可能です。

   API と統合性

OpenShift は Kubernetes API に準拠しているため、Kubernetes にデプロイ可能なアプリケーションは OpenShift にもデプロイ可能です。違いは、OpenShift が独自のツールや拡張機能をサポートしている点にあります。

   コマンドラインツール

Kubernetes ディストリビューションは通常、kubectl を主要なコマンドラインツールとして使用します。OpenShift では oc が利用され、kubectl と似ていますが、複雑な管理作業を簡素化する追加機能を備えています。

   ログ管理とダッシュボード

Kubernetes はさまざまなログツールと互換性があり、ユーザーは好みに応じてログ管理方法を選択できます。OpenShift ではログ管理は EFK(Elasticsearch、Fluentd、Kibana) に依存します。

Kubernetes のダッシュボードはアドオンであり、コアコンポーネントではありませんが、OpenShift には Web 管理コンソール が標準搭載されています。

   オペレーティングシステムのサポート

 Kubernetes のノードは任意の Linux OS 上で動作でき、ワーカーノードは Windows 上でも稼働可能です。これに対し、OpenShift のノードは Red Hat Enterprise Linux CoreOS を必須とします。

Drift chat loading