第4章 OpenShift Enterprise 2 との比較


4.1. 概要

OpenShift Container Platform 3 は OpenShift バージョン 3 (v3) のアーキテクチャーをベースにしており、OpenShift バージョン 2 (v2) とは非常に異なる製品です。OpenShift v2 と同じ用語が多く v3 で使用されており、同じ機能が実行されますが、用語が異なる場合もあり、背景で起こっている操作は非常に異なる場合がありますが、OpenShift 自体はアプリケーションプラットフォームのままです。

このトピックでは、バージョンの違いを詳しく説明し、OpenShift v2 から OpenShift v3 に移行する OpenShift のユーザーをサポートします。

4.2. アーキテクチャーの変更

ギア vs コンテナー

ギアは OpenShift v2 のコアコンポーネントです。カーネルの namespace、cGroups および SELinux などのテクノロジーで、スケーラビリティーが高く、セキュアなコンテナーアプリケーションプラットフォームを OpenShift のユーザーに提供します。ギア自体はコンテナー技術形式の 1 つです。

OpenShift v3 は、ギアのアイデアを次のレベルに進化させ、v2 コンテナー技術の次の進化版として Docker を使用します。このコンテナーアーキテクチャーは OpenShift v3 の中核となります。

Kubernetes

OpenShift v2 のアプリケーションは一般的に複数のギアを使用するので、OpenShift v3 のアプリケーションは複数のコンテナーを予想通り使用します。OpenShift v2 では、ギアのオーケストレーション、スケジューリング、配置は、OpenShift ブローカーホストが処理していました。OpenShift v3 は、マスターホストに Kubernetes を統合してコンテナーのオーケストレーションを駆動します。

4.3. アプリケーション

アプリケーションは依然として OpenShift で中核をなします。OpenShift v2 では、アプリケーションが単一のユニットで、カートリッジタイプ 1 つに対して 1 つの Web フレームワークで構成されていました。たとえば、アプリケーションに PHP 1 つと MySQL 1 つを含めることはできますが、Ruby 1 つ、PHP 1 つ、および MySQL 2 つを含めることはできませんでした。また、MySQL などのデータベースカートリッジだけで機能させることもできませんでした。

アプリケーションの範囲に制限をもたせることで、OpenShift が環境変数を使用してアプリケーション内の全コンポーネントをシームレスのリンクすることができます。たとえば、web フレームワークはすべて OPENSHIFT_MYSQL_DB_HOST および OPENSHIFT_MYSQL_DB_PORT 変数を使用して MySQL に接続する方法を把握しますが、このリンクは、アプリケーション内に限られており、一緒に機能するように設計されたカートリッジ内でしか機能しませんでした。2 つのアプリケーション間で MySQL インスタンスを共有するなど、アプリケーションのコンポーネント間でリンクしても意味がありませんでした。

他の PaaSes の大半は、Web フレームワークだけに制限され、他の種類のコンポーネントについては外部サービスに依存しますが、OpenShift v3 ではさらに多くのアプリケーショントポロジーや管理を可能にします。

OpenShift v3 は、サービスをリンクするコンセプトとして、「アプリケーション」という用語を使用します。コンポーネントは希望する数だけいくつでも持つことができ、プロジェクト 内でコンテナー化され、柔軟にリンクでき、オプションで、グループ化や構造化するためにラベルを指定できます。この更新モデルでは、MySQL インスタンスをスタンドアロンで、また、JBoss コンポーネント間で共有することが可能です。

柔軟にリンクすると、任意のコンポーネントを 2 つリンクできます。コンポーネントの 1 つが環境変数をエクスポートでき、他方がこれらの環境変数から値を使用できる限り (環境変数が変わる可能性あり)、ベースにするイメージを変更する必要なく 2 つのコンポーネントをリンクできます。そのため、両方をフォークして、ネットワーク化し、互換性を確保する必要なく、任意のデータベースや web フレームワークを最適にコンテナー化実装したものが直接消費できるようになります。

つまり、OpenShift 上で何でもビルドできるようになり、これが、繰り返されるライフサイクルでアプリケーション全体をビルドできるコンテナーベースのプラットフォーム、OpenShift の主要な目的なのです。

4.4. カートリッジ vs イメージ

OpenShift v2 のカートリッジのコンセプトとして、OpenShift v3 では、「イメージ」が使用されるようになりました。

OpenShift v2 のカートリッジは、アプリケーションをビルドするにあたり中核となっていました。各カートリッジでは、必要なライブラリー、ソースコード、ビルドメカニズム、接続ロジック、ルーティングロジックを事前定義済みの環境に合わせて提供し、アプリケーションのコンポーネントを実行していました。

しかし、カートリッジには欠点がありました。カートリッジでは、開発者のコンテンツとカートリッジのコンテンツの違いが明確でなく、ユーザーにはアプリケーションの各ギアにあるホームディレクトリーの所有権がありませんでした。また、カートリッジは大規模なバイナリーの配信メカニズムとして最適ではありませんでした。カートリッジ内の外部依存関係を使用することもできましたが、使用すると、カプセル化の利点がなくなってしまいます。

パッケージの観点から、イメージはカートリッジよりも多くのタスクを実行し、れたカプセル化機能や柔軟性を提供します。ただし、カートリッジには、イメージには含まれないビルド、デプロイ、ルーティングのロジックが含まれます。OpenShift v3 では、これらの追加のニーズは 「Source-to-Image (S2I)」および「テンプレートの設定」で対応しています。

依存関係

OpenShift v2 では、カートリッジの依存関係は、カートリッジのマニフェストの Configure-Order または Requires で定義されていました。OpenShift v3 は、pod で事前定義の状態と合うようにする宣言モデルを使用します。適用された明示的な依存関係は、インストール時の順番だけでなく、ランタイム時に実行されます。

たとえば、開始前に別のサービスが必要な場合があります。このような依存関係チェックは、2 つのコンポーネントを作成したときだけでなく、常に適用可能です。そのため、依存関係チェックをランタイムにプッシュして、システムを長期にわたり正常な状態に保つことができます。

コレクション

OpenShift v2 のカートリッジはギア内に共同で配置されますが、OpenShift v3 の イメージコンテナー と 1 対 1 でマッピングされます。コンテナーは、共同配置のメカニズムとして pod を使用します。

ソースコード

OpenShift v2 では、アプリケーションは、最低でも Web フレームワーク 1 つに git リポジトリーが 1 つ必要でした。OpenShift v3 では、どのイメージがソースからビルドされているか選択でき、そのソースは OpenShift 以外に存在することもできます。ソースはイメージから切断されているので、イメージとソースの選択は、個別の操作となり、ソースは任意となりました。

ビルド

OpenShift v2 では、ビルドはアプリケーションギアで行われていたので、リソースに制約があるのでスケーリングができないアプリケーションにはダウンタイムが発生していました。v3 では、個別のコンテナーで ビルド が行われます。また、OpenShift v2 ビルド結果は、rsync を使用してギアを同期していました。v3 ではビルド結果は、普遍のイメージとして最初にコミットされ、内部レジストリーに公開されます。このイメージが次に、クラスターのノードのいずれかで起動するか、今後ロールバックするときに利用できるようになります。

ルーティング

OpenShift v2 では、アプリケーションがスケーラブルかどうか、さらにアプリケーションのルーティング層が高可用性 (HA) 用に有効化するかどうかを最初に選択する必要がありました。OpenShift v3 では、アプリケーションコンポーネントを 2 つ以上のレプリカにスケールアップすることで、ルート が、HA 対応の第一級オブジェクトとなります。アプリケーションを再作成したり、DNS エントリーを変更したりする必要はありません。

ルート自体はイメージから切断されています。以前のリリースでは、カートリッジによりデフォルトのルートセットが定義され、アプリケーションにエイリアスをさらに追加できました。OpenShift v3 では、テンプレートを使用して、イメージにいくつでもルートを設定できます。これらのルートを使用すると、システムルートとユーザーエイリアスを区別することなく、公開するスキーム、ホスト、パスを任意に変更できます。

4.5. ブローカー vs マスター

OpenShift v3 の マスター は、OpenShift v2 のブローカーホストとよく似ていますが、etcd が各マスターホストに通常インストールされるので、OpenShift v2 のブローカーが使用する MongoDB および ActiveMQ の階層は必要なくなりました。

4.6. ドメイン vs プロジェクト

「プロジェクト」は基本的には v2 のドメインに相当します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat