Red Hat OpenStack Platform 13 および 16.0 への Red Hat OpenShift Container Platform 4.4 のデプロイ
August Simonelli
asimonel@redhat.com
概要
パート I. エグゼクティブサマリー
世界中の組織は、競争力のある利点を達成し、顧客満足度を確保するために、ハイブリッドおよびマルチクラウド環境で革新的なソフトウェアアプリケーションを迅速に開発し続けています。これらのアプリケーションの多くは、セキュリティー、コンプライアンス、データのアフィニティー、およびパフォーマンスの要件によりプライベートクラウドにデプロイされます。プライベートクラウドの運用を担当する IT 組織は、容易さ、俊敏性、柔軟性、セキュリティー、およびコスト効率を重視しています。これらの機能は、ハイブリッドおよびマルチクラウド戦略全体の一部として、イノベーションに対する独自の障壁を減らすためです。
この参照アーキテクチャーでは、ソフトウェア開発者、データサイエンティスト、ソリューションアーキテクトなどのクラウドユーザー向けに、IT as a Service (ITaaS)、コンテナ化されたアプリケーション、仮想マシン (VM)、および関連するアプリケーションやインフラストラクチャーサービスの迅速なプロビジョニングとライフサイクル管理を提供する Red Hat の、事前に検証された処方的なプライベートクラウドソリューションを紹介しています。Red Hat OpenShift Container Platform、Red Hat OpenStack Platform、および Red Hat Ceph Storage は、このソリューションの主要アーキテクチャーのコンポーネントです。
この参照アーキテクチャーは、Red Hat OpenShift Container Platform 4.x ストリーム用に 「Deploying Red Hat OpenShift Container Platform 3.11 on Red Hat OpenStack Platform 13」を更新します。Red Hat OpenShift Container Platform 3.11 を実装する場合や、既存の Red Hat OpenShift Container Platform 3.11 のインストールで作業する場合は、Red Hat OpenShift Container Platform 3.11 の参照アーキテクチャーを使用します。これは、4.x リリースストリームに大きな違いがあるためです。
第1章 本書について
本書では、Red Hat OpenStack Platform (RHOSP) に Red Hat OpenShift Container Platform (RHOCP) を実装する際に利用可能なオプションの概要と、ラボベースの環境で参照アーキテクチャーをデプロイするためのこれらのソリューションの実装方法を説明します。
本ガイドは実装ガイドではありません。以下のドキュメントを含め、この参照アーキテクチャーに含まれるすべてのコンポーネントについて、完全、サポート、および完全にテストされたドキュメントがあります。
第2章 ソリューションの概要
2.1. ターゲットのユースケース
この参照アーキテクチャーは、プログラミング可能な Infrastructure as a Service (IaaS)、Containers as a Service (CaaS)、および Platform as a Service (PaaS) の機能を使用してプライベートクラウドソリューションをデプロイするエンタープライズ、通信、および IT サービスプロバイダー組織にとって有用です。
2.2. IT およびビジネスのソリューションの利点
IT 組織およびビジネスにおけるこのソリューションの主な利点と価値は、以下のとおりです。
- イノベーションと価値実現までの時間の短縮: 参照アーキテクチャーは、複数の Red Hat 製品で構成される完全なソリューションスタックの設計、デプロイ、およびテストを補完するため、組織の時間を節約します。
- よりシンプルでより安全なデプロイメント: 完全なソリューションスタックに必要なすべてのベストプラクティスは、Red Hat によってすでに事前検証されているため、非常に規範的なソリューションが成功を確実にします。
- コスト効率: 参照アーキテクチャーは、Red Hat が完全サポートするオープンソース技術に基づいています。
第3章 アーキテクチャーの概要
これは、Red Hat OpenStack Platform 13 または Red Hat OpenStack Platform 16.0 で Red Hat OpenShift Container Platform 4.4 を実行するための参照アーキテクチャーです。
3.1. Red Hat OpenStack Platform のインストール
Red Hat OpenStack Platform (RHOSP) は、RHOSP director を使用して物理サーバーにデプロイされます。Director は、インストールから Day 2 までの完全な RHOSP 環境のインストールおよび管理を行うためのツールセットです。
3.2. Red Hat OpenShift Container Platform 4.x のインストール
Red Hat OpenShift Container Platform (RHOCP) には、4.x ストリームの新しいインストールプログラムがあります。これは、合理化されたインターフェースと簡素化されたインストールプロセスを特徴としており、より速く、より簡単で、より正確なインストールが可能です。詳細は、Red Hat OpenShift Container Platform 4.4 「インストール」ガイドを参照してください。
RHOCP 4 インストールプログラムは、以下のタイプのデプロイメントを提供します。
- インストーラーでプロビジョニングされるインフラストラクチャークラスター: RHOCP 4 インストールプログラムは、RHOCP のベストプラクティスのデプロイメントでインフラストラクチャーのプロビジョニングを含むインストールのすべての側面を管理します。
- ユーザーによってプロビジョニングされるインフラストラクチャークラスター: 管理者は、クラスター用の独自の基盤となるインフラストラクチャーの準備、作成、管理を行います。この方法では、RHOCP をインストールする前にさらにカスタマイズできます。
これらのクラスターのタイプにはどちらにも以下の特徴があります。
- デフォルトで単一障害点のない高可用性インフラストラクチャー
- RHOCP と基礎となるオペレーティングシステムである Red Hat Enterprise Linux CoreOS (RHCOS) の間に深い統合が行われ、「アプライアンスのような」統合が実現します。
- 管理者は適用される更新内容および更新タイミングを制御できる。
この参照アーキテクチャーは、RHOCP を RHOSP にインストールするためのインストーラーでプロビジョニングされるインフラストラクチャー手法を特長としています。この手法に従うと、インストールプログラムは OpenStack API を使用する際に必要なネットワーク、マシン、およびオペレーティングシステムをすべて作成します。これにより、可用性が高く、十分にテストされ、完全にサポートされたアーキテクチャが実現され、今日の本番環境に適しています。
- RHOCP の新しいインストーラープロビジョニングインフラストラクチャー方式は、「ベストプラクティス」デプロイメントをインストールするため、非常に規範的です。インストーラーでプロビジョニングされるインフラストラクチャーのデプロイメントのインフラストラクチャーは、デプロイ後にカスタマイズしないでください。インフラストラクチャーの変更は、基礎となるインフラストラクチャーおよび API と直接対話するインストールプログラムで実装する必要があります。マシンのスケールアウトなどの Day 2 インフラストラクチャー操作のみが推奨されます。
- 追加のインフラストラクチャーのカスタマイズと要件を必要とする企業では、インストーラーによってプロビジョニングされるインフラストラクチャー方式の単純さが制限されている場合があります。この場合、ユーザーによってプロビジョニングされるインフラストラクチャーの方法はより適切です。
本書では、RHOSP のユースケースでほとんどの RHOCP 4.4 に適した参照アーキテクチャーを説明します。参照アーキテクチャーは、RHOSP の RHOCP をすばやく起動し、最も信頼性が高くサポートされている方法で実行するためのベストプラクティスを表しています。また、重要な設計上の考慮事項と、製品間の主要な統合についても説明します。
この参照アーキテクチャーは、Red Hat で完全にサポートされています。
3.3. Red Hat OpenShift Container Platform と Red Hat OpenStack Platform の関係
Red Hat OpenShift Container Platform (RHOCP) と Red Hat OpenStack Platform (RHOSP) の関係は補完的です。RHOSP は、Application Programming Interface (API) および RHOCP がこれらのリソースを要求してリソースを公開します。
RHOSP は、コンピュート、ストレージ、ネットワークインフラストラクチャー、およびセルフサービスのロードバランサーや暗号化などの追加のリソースを使用して RHOCP を提供します。
RHOCP は、RHOSP によってプロビジョニングされるインフラストラクチャーでコンテナー化アプリケーションを実行します。プロダクトは密接に統合されているため、RHOCP はユーザーの介入なしに RHOSP リソースをオンデマンドで消費できます。
3.3.1. Red Hat Enterprise Linux (RHEL) CoreOS の概要
RHOCP 4 ノードは Red Hat Enterprise Linux CoreOS (RHCOS) で実行します。RHCOS は Red Hat Enterprise Linux (RHEL) カーネルで OTA (over-the-air) 更新を提供し、セキュアで簡単に管理されるコンテナーホストを提供します。インストーラーによってプロビジョニングされたインフラストラクチャーのデプロイメントでは、この参照アーキテクチャーでは、RHCOS がすべての RHOCP ノードでサポートされているオペレーティングシステムであり、worker ノードと master ノードでデフォルトで使用されます。また、master ノードが RHCOS を実行する RHOCP 要件でもあります。
RHCOS は現在 RHOCP でのみ使用されています。独立したオペレーティングシステムとして使用することはできません。詳細は、「CoreOS has joined the Red Hat family」を参照してください。
3.3.1.1. Ignition
Ignition は、初回設定時にディスクを操作するのに使用される RHCOS ユーティリティーです。これにより、ディスクのパーティション設定やパーティションのフォーマット、ファイル作成、ユーザー設定などの一般的なディスク関連のタスクが実行されます。
初回起動時に、Ignition は OpenStack Image サービスから RHOCP インストールプログラムによって生成されたブートストラップ設定ファイルを読み取ります。
詳細は、「Ignition について」を参照してください。
3.4. 参照アーキテクチャーの高レベル設計
この参照アーキテクチャーは、以下の製品を対象としています。
表3.1 参照アーキテクチャー製品
製品 | デプロイメントのテストに使用するバージョン |
---|---|
Red Hat OpenStack Platform (RHOSP) | 13 (13.0.11 で使用されるバージョン) |
16 (16.0.0 で使用されるバージョン) | |
Red Hat OpenShift Container Platform (RHOCP) | 4.4 |
Red Hat Ceph Storage | 3.3 (RHOSP 13 を使用して director によりデプロイ、OSD バックエンドとして BlueStore が有効化) |
4 (RHOSP 16.0 を使用して director によりデプロイ、BlueStore はデフォルトの OSD バックエンド) |
以下の図は、参照アーキテクチャーの概要を示しています。
以下の表は、この参照アーキテクチャーのコンポーネントを説明しています。
表3.2 参照アーキテクチャーのコンポーネント
コンポーネント/サービス | 製品 |
---|---|
オブジェクトストレージ | Red Hat Ceph Object Gateway (RGW) (デフォルトの OpenStack Obect Storage (swift) を置き換える) |
ブロックストレージ | Red Hat Ceph Block Storage (RBD) が支援する Red Hat OpenStack Block Storage (cinder) |
イメージストレージ | Red Hat Ceph Block Devices (RBD) が支援する Red Hat OpenStack Image サービス (glance) |
Compute サービス | Red Hat Ceph Block Devices 『RBD) に支援された Red Hat OpenStack Compute (nova) |
ネットワーク - OpenStack | Open vSwitch (OVS) を使用した Red Hat OpenStack のネットワーク |
ネットワークサービス - OpenShift | Red Hat OpenShift ソフトウェア定義ネットワーク (SDN) |
Ignition | Red Hat OpenShift インストールプロセスで使用される Red Hat Enterprise Linux CoreOS (RHCOS) ツール |
主なリファレンスアーキテクチャー機能
- 参照アーキテクチャーは、外部エンドポイントの暗号化に TLS を使用します。
- Floating IP プールにルーティング可能な IP を持つパブリックの外部ネットワークが、すべてのテナントで利用できます。
- デフォルトのネットワークポリシーモードは OpenShift SDN に対して実装されます。
- 必要なドメインをホストするための DNS ゾーンへの管理者アクセスがある。
Red Hat OpenShift Container Platform デプロイメント
RHOCP では、RHOSP クラウドへの管理者アクセスは必要ありません。RHOSP 管理者は RHOCP に適したテナントを準備します。RHOCP は、Red Hat Enterprise Linux CoreOS (RHCOS) を実行している RHOSP インスタンスにテナントによってデプロイされます。
この参照アーキテクチャーは、RAW イメージからインストールされた RHCOS オペレーティングシステムを実行するインスタンスに RHOCP をデプロイします。
bootstrap ノードを作成するためにインストールプログラムによって生成される Ignition インストールファイルは Red Hat OpenStack Image サービス (glance) に保存されます。RHOCP ブートストラップノードは、RHOCP クラスターを設定するために外部 DNS 解決と外部のインターネットアクセスが必要です。
第4章 設計に関する考慮事項
本セクションでは、この参照アーキテクチャーが主要な設計上の考慮事項に対処する方法を説明します。この参照アーキテクチャーの推奨事項は、Red Hat Field Consultants、エンジニア、および製品チームとともに開発されました。
4.1. 接続性の実装
Red Hat OpenShift Container Platform (RHOCP) を異なるオンプレミスアーキテクチャーにデプロイできます。
この参照アーキテクチャーでは、director およびすべての RHOCP ノードの完全 DNS 解決を含む、インターネットへの直接接続を想定しています。
4.1.1. 直接のインターネット接続を使用した RHOCP のデプロイ
Red Hat OpenStack Platform (RHOSP) および RHOCP の両方のインストールプログラムは、インターネットへの直接アクセスと Red Hat 製品への有効なサブスクリプションを活用することができます。インストールプロセスは自己完結していないため、以下のようなコアアセットを取得するために外部ソースへのアクセスが必要になります。
- RHOSP コンテナー
- RHOCP コンテナー
- RHOCP イメージ
したがって、アクティブな動作中の DNS 解決が必要です。
4.1.2. 企業プロキシーサービスを使用した RHOCP のデプロイ
RHOCP インストーラーによってプロビジョニングされたインフラストラクチャーデプロイメントでは、構成ファイルを使用してインストール時に、またはクラスター全体の出力プロキシーを使用してインストール時に、HTTP または HTTPS クラスター全体のプロキシーの実装をサポートします。クラスター全体のプロキシーの設定方法は、『OpenShift Container Platform ネットワーク』ガイドの「クラスター全体のプロキシーの設定」を参照してください。
4.1.3. ネットワークが制限された環境での RHOCP のデプロイ
RHOSP 13 の RHOCP 4 はネットワークが制限されたデプロイメントを完全にサポートしますが、追加の手順およびこの参照アーキテクチャーでテストされていないコンポーネントが必要です。この参照アーキテクチャーをネットワークが制限された環境で実装する前に、『OpenShift Container Platform インストール』ガイドの「ネットワークが制限された環境でのインストール用のミラーレジストリーの作成」を参照してください。
4.2. インストール方法およびツール
Red Hat が推奨し、サポートしているツールを使用して、常に Red Hat 製品および製品統合をインストールすることが最善の方法です。
この参照アーキテクチャーについては、director を使用して Red Hat OpenStack Platform (RHOSP) をインストールします。インストールには、高可用性 (HA) コントロールプレーンとストレージレプリケーションに必要な Controller ノード、Compute ノード、Storage ノードの最小数が含まれます。
インストーラーでプロビジョニングされるインフラストラクチャー方法を使用して Red Hat OpenShift Container Platform (RHOCP) をインストールします。ガイド付きインストールを使用して、いくつかの基本的なカスタマイズで変更できるインストール設定ファイルを生成します。
非特権 RHOSP テナントを使用して、director ホストから RHOCP のインストールを実行します。
4.2.1. Red Hat OpenStack Platform director
RHOSP director は、OpenStack TripleO プロジェクトをベースとした管理およびインストールツールです。TripleO は「OpenStack on OpenStack」を表します。 この参照アーキテクチャーでは、director を使用して RHOSP をインストールします。
Director の背後にある基本的な概念は、2 つのクラウドがあるということです。アンダークラウドと呼ばれる最初のクラウドは、スタンドアロンの RHOSP デプロイメントです。アンダークラウドは、1 つの物理サーバーまたは仮想マシンにデプロイできます。管理者は、アンダークラウドの RHOSP サービスを使用して実稼働用の RHOSP クラウドを定義し、デプロイします。Director は、ソフトウェアの更新の適用や RHOSP バージョン間のアップグレードなど、2 つの管理操作にも使用されます。
2 つ目のクラウド (オーバークラウド) は、アンダークラウドによってデプロイされるフル機能の実稼働環境です。オーバークラウドは、さまざまなロールを持つ物理サーバーで構成されます。
- Controller ノードは OpenStack API エンドポイントを実行します。また、RHOSP のステートフル設定データベースおよびメッセージングキューも保管します。
- Compute ノードは仮想マシンのハイパーバイザーを実行します。これらは、ユーザーワークロードに割り当てられたコンピュートリソースをホストします。
- storage ノードは、ユーザーワークロード用にブロック、オブジェクト、またはソフトウェア定義のストレージを提供します。
RHOCP は、オーバークラウドのプロジェクト (またはテナント) 内で実行します。各テナントの RHOCP クラスターは、他のテナントクラスターから分離されます。
Director は、すべての実稼働 RHOSP デプロイメントに必要です。Red Hat エンジニアリングによりテストおよび検証される構成設定は、director が提供するデプロイメントツールに組み込まれています。
管理者は、director を使用して RHOSP クラウドのみをプロビジョニングし、管理する必要があります。カスタマイズは director を使用してのみ実行し、手動で追加しないでください。
4.2.2. Red Hat OpenShift Container Platform インストールプログラム
RHOCP 4 インストールプログラムは、インストーラーでプロビジョニングされるインフラストラクチャーと、ユーザーによってプロビジョニングされるインフラストラクチャーの 2 つの方法でのデプロイメントをサポートします。
RHOCP 4 インストールプログラムは、主にインフラストラクチャーを設定するための簡単なパスを確保することを検討しています。Day 2 操作は RHOCP 設定の大部分を処理します。インフラストラクチャーを設定するには、インストールプログラムは最小限の RHOCP クラスターを作成します。
4.2.2.1. インストーラーでプロビジョニングされるインフラストラクチャー
新しい RHOCP 4 のインストーラーでプロビジョニングされるインフラストラクチャーのデプロイメント方法の導入により、ユーザーは RHOSP リソースを事前プロビジョニングしたり、Ansible Playbook でそれらを記述する必要がなくなりました。
インストーラーでプロビジョニングされるインフラストラクチャーのデプロイメントは規定されており、インストールプロファイルの差異を制限します。これにより、大半のユースケースで管理が容易になり、サポート対象のデプロイメントが改善されます。
4.2.2.2. インストール設定ファイルの作成
RHOCPインストールプログラムは、要件の入力を求め、その応答を使用して、インストール構成ファイル install-config.yaml
を作成します。この設定ファイルは、インストールの最終状態を記述し、オペレーターがインストールに追加のカスタマイズを追加できるようにしますが、インストーラーによってプロビジョニングされたインフラストラクチャーのフットプリント内に残ります。
4.3. 高可用性の実装
高可用性 (HA) は、実稼働デプロイメントの要件です。HA の重要な考慮事項は、単一障害点を取り除くことです。この参照アーキテクチャーは、Red Hat OpenStack Platform (RHOSP)、Red Hat OpenShift Container Platform (RHOCP)、および Red Hat Ceph Storage レイヤーで可用性が高くなります。
この参照アーキテクチャーでは、RHOSP director を使用して以下をデプロイします。
- RHOSP コントローラーノード 3 つ
- OSD バックエンドに BlueStore を使用する 3 つの Red Hat Ceph Storage ノード
- RHOSP Compute ノード 3 つ
以下の図は、RHOSP デプロイメントの高可用性 RHOCP の例を示しています。各ベアメタルサーバーには、Controller、Storage、および Compute の 3 つの RHOSP ノードが含まれます。RHOCP master と worker は、ライブマイグレーションを使用して Compute ノード全体に分散されます。NIC はボンドされ、サーバーは必要に応じて RAID を使用します。
上記の図に示したように、コントロールプレーンを構成するマスターノードを同じ RHOSP Compute ノードに配置することはできません。これを確認するには、3 つの異なる Compute ノードをホストするために少なくとも 3 つのベアメタルサーバーを提供する必要があります。マスターが同じ Compute ノードでホストされないようにするには、ライブマイグレーションを使用する必要があります。詳細は、以下の参考資料を参照してください。
- RHOSP 13: Migrating virtual machines between Compute nodes.
- RHOSP 16.0: 「コンピュートノード間の仮想マシンの移行」
- ライブマイグレーションは管理機能であるため、これを実行するにはクラウド管理者が必要です。
- エフェメラル補助記憶をライブマイグレーションできないため、マスターインスタンスにエフェメラル補助記憶を使用することはできません。
この参照アーキテクチャーは、最小限の開始点を表します。すべての HA の可能性を説明しているわけではありません。そのため、独自の HA 実装を作成する場合は、すべてのレイヤーを考慮し、それに応じて計画します。たとえば、1 つが失われても、異なる Compute ノードで master ノードをホストするという RHOCP HA のベストプラクティスが損なわれないように、十分な Complete ノードを計画します。
4.3.1. RHOSP HA
RHOSP director により実施されるデフォルトの HA レベルは 3 つの Controller ノードをデプロイします。複数の RHOSP サービスおよび API は、3 つすべてのコントローラーノードで同時に実行されます。
HAProxy はコントローラー API エンドポイント全体の接続を負荷分散し、サービスの可用性を確保します。Controller ノードは、RHOSP 状態のデータベースおよびメッセージバスも実行します。Galera クラスターは状態データベースを保護します。RabbitMQ キューは、メッセージバスを保護するためにすべてのノードで複製されます。
4.3.2. RHOCP HA
RHOCP も HA 用にデプロイされます。コントロールプレーンは RHOCP クラスターを管理します。この参照アーキテクチャーは、マスターノード全体で etcd
状態のデータベースを配置します。etcd
には HA に最低 3 つのノードが必要であるため、3 つの master ノードをデプロイする必要があります。
RHOCP は、HA 用 3 つの master ノードで重要なコントロールプレーンコンポーネントをホストします。RHOCP 4.x では、ルーター Pod、コンテナーイメージレジストリー、メトリックスとモニタリングサービス、クラスター集約ログなどのさまざまなインフラストラクチャーサービスは、デフォルトでは個別のインフラストラクチャーノードで実行されなくなりました。代わりに、インフラストラクチャーサービスは worker ノードで実行されるようになりました。インフラストラクチャーサービスをデプロイして、Day 2 のインフラストラクチャーノードを分離することができます。詳細は、「インフラストラクチャー MachineSet の作成」を参照してください。
worker ノードは、実際のアプリケーションワークロードが実行される場所です。master は worker ノードを管理します。過剰な負荷とインフラストラクチャーの損失による障害を処理するのに十分な worker ノードがあることを確認する必要があります。
4.3.3. ストレージ HA
Red Hat Ceph Storage を使用する RHOCP および RHOSP サービスは、Red Hat Ceph Storage の組み込み HA 機能を活用することができます。デフォルトでは、Red Hat Ceph Storage と共に RHOSP をデプロイすると、Compute サービス、Image サービス、および Block Storage サービスの統合ストレージになります。
Ceph OSD を追加して、パフォーマンスと可用性を向上させることができます。Red Hat Ceph Storage クラスターのサイジングとカスタマイズには特別な注意が必要ですが、この参照アーキテクチャーの対象外となっています。Red Hat Ceph Storage のカスタマイズに関する情報は、以下の参考資料を参照してください。
- RHOSP 13: Customizing the Ceph Storage Cluster
- RHOSP 16.0: 「Customizing the Ceph Storage cluster」
- Red Hat Ceph Storage 3: 「Red Hat Ceph Storage Hardware Selection Guide」
- Red Hat Ceph Storage 4: 「ハードウェアガイド」
- Red Hat Ceph Storage でサポートされる構成
Red Hat Ceph Storage のカスタマイズを実装する方法については、Red Hat サポートを参照してください。
4.3.4. ハードウェア HA
ハードウェアレイヤーで単一障害点を排除する必要があります。ハードウェアフォールトトレランスには、以下が含まれる場合があります。
- サーバーの内部ハードディスクの RAID
- 異なる電源に接続されている冗長サーバー電源。
- 冗長ネットワークスイッチに接続されたボンディングされたネットワークインターフェース。
- RHOSP デプロイメントが複数のラックにまたがる場合には、ラックを別の PDU に接続する必要があります。
ハードウェアのフォールトトレランスの設定方法に関する詳細は、本書では扱いません。
4.4. ストレージ
Red Hat OpenStack Platform (RHOSP) と Red Hat OpenShift Container Platform (RHOCP) の両方には、独立して成熟したストレージソリューションがあります。これらのソリューションを組み合わせると、複雑性を高め、パフォーマンスのオーバーヘッドが発生する可能性があります。重複したストレージコンポーネントをデプロイしないように、ストレージを慎重に計画する必要があります。複雑さを最小限に抑えつつ、RHOCP アプリケーションのニーズに対応するストレージバックエンドを選択します。
4.4.1. Red Hat Ceph Storage
この参照アーキテクチャーでは、Red Hat Ceph Storage を使用します。Red Hat Ceph Storage はスケーラブルなブロック、オブジェクト、およびファイルストレージを提供し、Red Hat クラウドソフトウェアスタックと密接に統合されています。
Red Hat Ceph Storage は、優れたパフォーマンス、信頼性、スケーリングを提供するように設計された、分散型のデータオブジェクトストレージです。Red Hat Ceph Storage のデプロイメントはすべて、2 種類のデーモンで構成される Ceph Storage Cluster です。
- Ceph OSD (Object Storage Daemon)
- Ceph OSD は、Red Hat Ceph Storage クライアントの代わりにデータを格納します。Ceph OSD は、Red Hat Ceph Storage ノードの CPU およびメモリーを使用して、データのレプリケーション、リバランス、復旧、監視、レポート作成を実行します。
- Ceph モニター
- Ceph モニターは、ストレージクラスターの現在のステータスを含む Red Hat Ceph Storage クラスターのマッピングのマスターコピーを管理します。
RHOSP director は ceph-ansible.yaml
環境ファイルを使用して Red Hat Ceph Storage をデプロイします。この環境ファイルは、OpenStack Compute (nova) の一時ディスク、OpenStack Block Storage (cinder) ボリューム、OpenStack Image サービス (glance)、および OpenStack Telemetry (ceilometer) のバッキングストアとして、Red Hat Ceph Storage を自動的に設定します。
4.4.2. Red Hat Ceph Storage バックエンド
使用する Red Hat Ceph Storage のバージョンにより、使用するストレージバックエンドが決まります。
- Red Hat Ceph Storage 3.1 以前の場合は、バックエンドに FileStore を使用します。
- Red Hat Ceph Storage 3.2 以降の場合は、BlueStore をバックエンドとして使用します。
最高のパフォーマンスを得るため、すべての新規デプロイメントには BlueStore を使用する必要があります。RHOSP 13 は Red Hat Ceph Storage 3.3 と統合されており、director は BlueStore を使用した OSD の作成をサポートしています。RHOSP 16.0 は Red Hat Ceph Storage 4 を実装し、デフォルトでは BlueStore をバックエンドとして使用します。RHOSP 16.0 では、FileStore バックエンドのサポートが廃止されます。OSD ノードをデプロイしている Director はすべて専用の物理サーバーで実行する必要があります。
詳細は、以下の参考資料を参照してください。
- RHOSP 13: 「Ceph 3.2 以降での BlueStore の使用」
- RHOSP 16.0: 「Using BlueStore」
- Red Hat Ceph Storage 3: The ObjectStore Interface
- Red Hat Ceph Storage 4: 「Ceph ObjectStore」
4.4.3. RHOCP の永続ボリューム
Kubernetes 永続ボリューム (PV) フレームワークを使用すると、RHOCP ユーザーは、基盤となるストレージの知識がなくてもブロックストレージボリュームをリクエストできます。
RHOCP は、この機能のプロバイダーとして OpenStack Block Storage サービス (cinder) をサポートします。RHOCP ユーザーは、PersistentVolume オブジェクト定義を使用して RHOSP の OpenStack Block Storage ボリュームにアクセスできます。
RHOCP インストールプログラムは、kubernetes.io/cinder
ドライバーを使用して動的永続ボリューム作成用の OpenStack Block Storage ストレージクラスの作成を自動化します。
$ oc get storageclass NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE standard (default) kubernetes.io/cinder Delete WaitForFirstConsumer true 3d20h
OpenStack Block Storage ストレージクラスのアクセスモードは ReadWriteOnce (RWO
) です。これは、ほとんどのユースケースで十分です。ReadWriteMany (RWX
) アクセスモードは、今後の参照アーキテクチャーでサポートされます。
詳細は「Cinder を使用した永続ストレージ」を参照してください。
4.4.4. オブジェクトストレージ
director は RHOSP のインストール時にオブジェクトストレージを考慮しません。デフォルトでは、director は OpenStack Object Storage (swift) をコントローラーノードにインストールし、OpenStack Image サービス (glance) 用の使いやすい高可用性オブジェクトストレージバックエンドを提供します。これは、テナントが使用する場合には推奨されるオブジェクトストレージソリューションではなく、クラウド管理者がアクセスを明示的に付与する必要があります。
この参照アーキテクチャーでは、デフォルトの OpenStack Object Storage を Red Hat Ceph Object Gateway (RGW または radosgw
) に置き換え、Amazon S3 および OpenStack Object Storage RESTful API と互換性のある高可用性オブジェクトストレージバックエンドを提供することができます。
4.4.4.1. RHOSP レジストリーおよびオブジェクトストレージ
RHOCP インストールプログラムは、スケーリングされたレジストリーについての推奨プラクティスに従い、RHOSP オブジェクトストレージサービスを内部 RHOSP イメージレジストリーバックエンドの推奨される場所として使用しようとします。これには、RHOCP インストールプログラムがアクセス可能なオブジェクトストレージの場所を確認し、これを使用します。RHOCP インストーラーがアクセス可能なオブジェクトストレージの場所を検出できない場合は、スケーリングされていないレジストリーに推奨される方法に従い、代わりに ReadWriteOnce (RWO) OpenStack Block Storage (cinder) ボリュームを作成します。詳細は、「ストレージの最適化」を参照してください。
そのため、レジストリーに最適なデプロイメントパターンを確保するために、Red Hat は Red Hat Ceph Object Gateway (RGW) を使用して RHOSP をデプロイすることを推奨します。
4.4.5. イメージストレージ
director を使用して Red Hat Ceph Storage をデプロイする場合、OpenStack Image Service (glance) のデフォルトのインストールは、Red Hat Ceph Block Devices (RBD) によってサポートされます。RHOCP インストールプログラムは、以下の 2 つの目的で OpenStack Image サービスを使用します。
- ブートストラップノードおよびクラスターの起動に使用される RHOCP Ignition ファイルを保存する。
- Red Hat Enterprise Linux CoreOS (RHCOS) イメージを保存するため。
4.5. ネットワーク
デプロイメントのネットワーク要件を計画する必要があります。複雑さを最小限に抑えながら、コンテナーで実行されるアプリケーションのニーズに対応するネットワークバックエンドを選択します。Red Hat OpenStack Platform (RHOSP) と Red Hat OpenShift Container Platform (RHOCP) の両方には、独立して成熟したネットワークソリューションがあります。ただし、各プラットフォームのネイティブソリューションを単純に組み合わせると、複雑さと望ましくないパフォーマンスオーバーヘッドが増加する可能性があります。重複するネットワークコンポーネントを回避する必要のあるワークロードを考慮してください。たとえば、OpenStack SDN で OpenShift SDN を実行することの影響を検討してください。
4.5.1. OpenStack Networking (neutron)
OpenStack Networking (neutron) サービスは、さまざまなバックエンドネットワークプラグインに共通の抽象化層を提供します。RHOSP 13 および 16.0 では、以下のバックエンドネットワークプラグインがサポートされます。
- OVS
- RHOSP 13 と 16.0 の両方で、OpenStack ネットワークサービス用の Open vSwitch (OVS) バックエンドをデプロイします。OVS は、仮想化サーバー環境で使用する仮想スイッチとして設計された、オープンソースのマルチレイヤーのソフトウェアスイッチです。これは、複数の Red Hat 製品で使用されます。OVS は完全にテストされ、サポートされています。
- ML2/OVS
- RHOSP 13 はデフォルトで ML2 プラグインを使用します。ML2/OVS プラグインを使用する場合、VXLAN はノード間のレイヤー 2 トラフィックをカプセル化します。すべての L3 トラフィックは、VXLAN トンネルを介して、Controller ノード上で実行される中央の OpenStack Networking エージェントにルーティングされます。
- OVS-OVN
RHOSP 16.0 はデフォルトで Open vSwitch (OVS) の Open Virtual Network (OVN) コンポーネントを使用します。OVN は、OVS プロジェクトに構築されるネットワーク仮想化ソリューションです。OVN は Neutron API をサポートし、ブリッジ、ルーティング、セキュリティーグループ、NAT、Floating IP などの最も一般的なネットワーク機能をクリーンで分散された実装を提供します。
OVN をバックエンドとして使用する場合には、ネットワークのカプセル化に GENEVE (Generic Network Virtualization Encapsulation) が使用されます。GENEVE の詳細はこのドキュメントの範囲外ですが、OVN と GENEVE を使用する主な利点には、拡張可能なヘッダー形式とデフォルトでの L3 トラフィックの分散による柔軟性の向上が含まれます。
OVS-OVN は、RHOSP 16.0 を使用する場合のこの参照アーキテクチャーを含め、RHOSP 16.0 デプロイメントの RHOCP でテストされており、サポートされています。
- サードパーティーの SDN ソリューション
- 複数のネットワークベンダーは、OpenStack Networking 独自のプラグインをサポートします。RHOSP での RHOCP の将来の反復では、パートナーシップとテストを増やし、できるだけ多くのサードパーティーソリューションをサポートする予定です。
RHOSP 13 と 16.0 には、デフォルトのバックエンドネットワークプラグインが異なります。以下の参照アーキテクチャーは、実装された RHOSP バージョンのデフォルトのバックエンドを使用します。
- RHOSP 13: ML2/OVS
- RHOSP 16.0: OVS-OVN
RHOSP 16.0 にアップグレードする場合に限り、実行中の RHOSP 13 クラウドで OVS から OVN に移行することができます。
プロバイダーネットワークは、外部からアクセス可能な Floating IP アドレスの範囲をテナントインスタンスにブリッジします。リモートクライアントは Floating IP アドレスを使用して、公開された RHOCP サービス、OpenShift API エンドポイント、および Web コンソールにアクセスします。
OpenStack ネットワークサービスに関する詳しい説明は、本書の対象外となります。詳細は、以下の参考資料を参照してください。
- RHOSP 13: 「ネットワークガイド」
- RHOSP 16.0: 「ネットワークガイド」
4.5.2. Red Hat OpenShift Container Platform のネットワーク
Red Hat OpenShift Container Platform (RHOCP) のネットワークは複雑なトピックで、詳細なレビューは本書の範囲外です。詳細は「ネットワーク」を参照してください。
4.5.2.1. OpenShift SDN
OpenShift SDN は、RHOSP の RHOCP で完全に機能し、成熟し、サポートされている SDN ソリューションです。詳細は「OpenShift Kubernetes エンジンについて」を参照してください。
RHOSP デプロイメントで RHOCP について OpenShift SDN を選択する際には、ワークロードの一般的なネットワーク要件を考慮してください。標準の RHOSP デプロイメントで OpenShift SDN を実行する場合、ネットワークは「ダウブルカプセル化」の対象となります。これは、カプセル化された OpenShift SDN をすでにカプセル化された RHOSP ネットワークで実行する際に発生します。これは、OVS と OVN の両方の実装に該当します。
場合によっては、二重のカプセル化で実行していると、パフォーマンスと複雑さの問題が発生する可能性があります。したがって、自分のワークロードに関連するダブルカプセル化の実際の影響を最もよく理解するには、ワークロードの要件を詳細に確認する必要があります。
この参照アーキテクチャーは、RHOCP ネットワークに OpenShift SDN を使用します。
4.5.2.2. Kuryr
Kubernetes Container Networking Interface (CNI) 仕様は、RHOCP アプリケーションコンテナー用に汎用プラグインベースのネットワークソリューションを実装するメカニズムを提供します。デフォルトの RHOCP ネットワークプラグインは Kubernetes プラグインである Kuryrに 置き換えることができます。これにより、OpenStack Networking サービスソリューションは、2 つの SDN を上下に重ねるのではなく、OpenShift の Kubernetes コンテナーのネットワークを構成できます。Kuryr プラグインにより、同じ RHOSP ネットワーク上で RHOSP 仮想マシンおよび Kubernetes コンテナーの両方を実行できます。Kuryr は、Octavia を使用した Load Balancing as a Service (LBaaS) と共に OpenStack Networking コンポーネントを使用してこれを実現します。これにより、Pod とサービスのネットワークが組み合わされます。これは主に、RHOSP 仮想マシンで実行される RHOCP クラスター用に設計されています。Kuryr は、ネットワークパフォーマンスを改善することを目的としており、テストでパフォーマンスの結果が良好であることを示しています。詳細は「Accelerate your OpenShift Network Performance on OpenStack with Kuryr」を参照してください。
Kuryr は複雑なトピックであり、本書では扱いません。詳細は「Kuryr SDN について」を参照してください。
Kuryr は RHOSP インストールでの RHOCP 4.4 で完全にサポートされていますが、この参照アーキテクチャーではこれを使用しません。RHOSP 13 を使用する場合、Kuryr は多くの Octavia ロードバランサーを使用します。これにより、Compute ノードに追加のオーバーヘッドが追加されます。インストールで Kuryr を使用するべきかどうかを判断するには、以下を考慮する必要があります。
- ワークロードには二重カプセル化を削除する利点が必要ですか。
- RHOSP クラウドに Octavia をデプロイする必要があります。
- RHOSP インフラストラクチャーは Kuryr をサポートするために必要なスケーリングが必要です。詳細は「Kuryr を使用して OpenShift Container Platform を OpenStack にインストールするためのリソースガイドライン」を参照してください。
RHOSP 16.0 は Octavia 用のプラグイン octavia-ovn
を提供します。これは Octavia を OVN と統合し、RHOSP で RHOCP を使用して Kuryr を使用する場合のリソース要件を削減します。この参照アーキテクチャーの将来の計画された補足では、Kuryr がより詳細に扱われる予定です。
4.6. DNS
RHOCP 4 インストールプログラムは、RHOSP インストールの以前の RHOCP で確認された DNS 要件を大幅に単純化します。クラスタの内部 DNS 解決、証明書の検証、およびブートストラップはすべて、CoreDNS用 の mDNS プラグイン を使用したセルフホスティング型のインストーラー制御ソリューションで提供されます。このソリューションは、mDNS から検出可能な情報に基づいて DNS ルックアップを実行するために開発されました。このプラグインは、_etcd-server-ssl._tcp.SRV
レコードの両方を解決します。また、ノード名を解決することもできます。
このソリューションでは、手動または動的に master ノード、worker ノード、および bootstrap ノードの IP アドレスをパブリック DNS の任意の形式に追加する必要はありません。RHOSP インストールの RHOCP は、この点で完全に自己完結型です。
この参照アーキテクチャーは RHOCP インストールプログラムパラメーター externalDNS
を使用して、インストーラーで構築されたサブネットが外部 DNS 解決をインスタンスに提供できるようにします。
RHOSP 実装の RHOCP 4.3 には、externalDNS
パラメーターは存在しませんでした。これらのバージョンを使用する場合は、クラウド全体のデフォルトの DNS 解決を提供するか、作成後にサブネットを手動で更新する必要があります。
詳しい情報は、「OpenStack IPI Networking Infrastructure」を参照してください。
この新しいソリューションでは、RHOSP 参照アーキテクチャーの RHOCP 3.11 で必要となったセルフホストネームサーバーを実行する必要はありません。また、Designate DNSaaS プロジェクトなどの外部ソリューションには不要です。
4.6.1. DNS の設定
RHOSP デプロイメントの RHOCP には、インストール前およびインストール後に、以下の DNS 要件があります。
-
インストールホストは、OpenShift API アドレス (api.ocpra.example.com など) を、
install-config.yaml
のlbFloatingIP
パラメーターを使用して定義された RHOSP Floating IP に解決できるようにする必要があります。RHOCP 4 のガイド付きインストール中にAPIFloatingIPAddress
に入力する値は、install-config.yaml
にlbFloatingIP
パラメーターを設定します。 - ブートストラップノードが外部であるパブリックドメインを解決できる必要があります。
- ワイルドカードドメインは、追加の Floating IP を解決する必要があります。デプロイされたアプリケーションにアクセスできるように、Floating IP はインストールの Ingress ポートに手動で割り当てる必要があります。
4.6.1.1. OpenShift API DNS
クラスターのインストールには、OpenShift API の Floating IP アドレスを設定し、api.<cluster name>.<base domain>.
アドレス空間が解決されるようにする必要があります。
install-config.yaml
の RHOSP セクションで lbFloatingIP
パラメーターを使用して、この Floating IP を割り当てます。RHOCP 4 のインストール時に APIFloatingIPAddress
に入力する値は、lbFloatingIP
パラメーターを設定します。
以下は例になります。
platform: openstack: cloud: openstack computeFlavor: m1.large externalNetwork: public lbFloatingIP: 192.168.122.152 octaviaSupport: "1" region: "" trunkSupport: "1"
4.6.1.2. アプリケーション DNS
RHOCP 4 インストールプログラムは、RHOCP コンテナーで実行されるアプリケーションの Floating IP アドレスを設定しません。アプリケーションの Floating IP アドレスは、インストール後に適切なポートに手動で割り当てる必要があります。
この IP の解決には、以下の名前構造を解決するために DNS にワイルドカードエントリーが必要です。
*.apps.<cluster name>.<base domain>.
4.6.1.3. Bootstrap ノード
bootstrap ノードは外部ドメイン名を直接解決できる必要があります。RHOCP 4 インストールプログラムはこの名前解決を使用して外部に接続し、実稼働クラスターをインスタンス化するために使用されるブートストラップクラスターの設定に必要なコンテナーを取得します。この外部解決を必要とする他の RHOCP ノードはありません。
4.7. セキュリティーおよび認証
Red Hat OpenStack Platform (RHOSP) および Red Hat OpenShift Container Platform (RHOCP) は、オープンソースのエンタープライズソフトウェアです。いずれも、既存のユーザー認証システムと統合するためのロールベースのアクセス制御と柔軟なオプションをサポートします。また、どちらも SELinux などの Red Hat Enterprise Linux セキュリティー機能を継承します。
この参照アーキテクチャーでは、いくつかの RHOSP セキュリティー機能を使用して RHOCP のセキュリティーを保護することができます。
インストーラーによってプロビジョニングされるインフラストラクチャー方式では、RHOSP テナントのインストールを他のテナントから保護するために必要なすべての RHOSP セキュリティーグループを作成および管理します。これらのグループは、テナントの RHOCP インストールをクラウドの他のノードから分離します。
TLS SSL 証明書は、OpenStack パブリック API エンドポイントの暗号化に使用されます。この参照アーキテクチャーは、インストールホストの自己署名証明書とローカル認証局を使用します。これは、RHOSP TLS SSL パブリックエンドポイントの暗号化が有効にされている場合は、証明書をエンドポイントに対してコマンドを実行するホストにインポートする必要があります。この参照アーキテクチャーは、ディレクターホストを使用してインストールプログラムを実行します。つまり、暗号化されたエンドポイントとのすべてのやり取りは、director ホストから行われます。これは、RHOSP 13 および 16.0 で正式にサポートおよび文書化された手順に従います。
- RHOSP 13: 「SSL/TLS 証明書署名要求の作成」
- RHOSP 16.0: 「SSL/TLS 証明書署名要求の作成」
現時点では、内部 TLS (「TLS Everywhere」) は RHOSP インストールの RHOCP に対してテストされていません。
4.7.1. 認証
デフォルトで、RHOSP アイデンティティーサービスはユーザーの認証情報を状態データベースに保存するか、LDAP 準拠のディレクトリーサーバーを使用することができます。同様に、RHOSP の認証および認可は別のサービスに委譲できます。
RHOCP master ノードはトークンを発行し、API でユーザー要求を認証します。RHOCP は、HTPassword や LDAP を含むさまざまなアイデンティティープロバイダーをサポートします。
RHOCP 4.x 以降、RHOCP および RHOSP アイデンティティープロバイダーが統合されています。管理者は、OpenStack Identity (keystone) サービスを使用して RHOCP keystone アイデンティティープロバイダーを設定することができます。この設定により、ユーザーは OpenStack Identity (keystone) の認証情報を使用して RHOCP にログインすることができます。詳細は、「Keystone アイデンティティープロバイダーの設定」を参照してください。
4.7.2. セキュリティー
4.7.2.1. RHOSP のセキュリティー
RHOSP セキュリティーおよび強化機能ガイドでは、RHOSP のセキュリティー保護に関するベストプラクティスが推奨されます。詳細は、使用している RHOSP のバージョンについてのドキュメントを参照してください。
- RHOSP 13: Security and Hardening Guide
- RHOSP 16.0: 「セキュリティーおよび強化ガイド」
セキュリティーのベストプラクティスの多くは、デフォルトの RHOSP デプロイメントに組み込まれます。フィールドでは、RHOSP のセキュリティーを ANSSI や FedRamp などのさまざまなレベルの標準的なセキュリティーコンプライアンスに保護しています。この参照アーキテクチャーは、RHOSP のセキュリティー保護のための包括的なリソースではありません。
4.7.2.2. RHOCP セキュリティー
『OpenShift セキュリティーガイド』では、クラウドのセキュリティーに関する数多くの課題を、包括的で詳細に説明します。このガイドは、セキュリティーのトレードオフとリスクのトリアージ、ポリシーの適用、レポート、およびシステム構成の検証を支援します。このガイドは、Red Hat カスタマーポータル からダウンロードできます。
第5章 リソースの考慮事項および制限
5.1. ディスク
実装前に、「OpenShift Container Platform を OpenStack にインストールするリソースのガイドライン」でリソース要件を確認してください。本セクションでは、この参照アーキテクチャーに関連するディスクに関する追加の考慮事項を説明します。
Red Hat OpenShift Container Platform (RHOCP) インストールでは、高速で冗長ディスクを使用できるようにする必要があります。RHOSP の RHOCP でこれを可能にするには、etcd の最小ディスク要件と RHOCP ノードにディスクを提供する方法について考慮する必要があります。
5.1.1. etcd の最小ディスク要件
コントロールプレーンの仮想マシンは etcd のキーと値ストアを実行するため、既知のリソース要件を満たす必要があります。高速ディスクは、etcd の安定性とパフォーマンスにとって最も重要です。etcd はディスク書き込みレイテンシーの影響を受けます。
- 最小ディスク要件
- 50 連続 IOPS (例: 7200 RPM ディスク)
- 負荷の高いクラスターの最小ディスク要件
- 500 の連続 IOPS (通常のローカル SSD など) や高パフォーマンス仮想化ブロックデバイス。
etcd ディスク要件についての詳細は、「Hardware recommendations - Disks」を参照してください。
この参照アーキテクチャーでは、安定性と保証のサポート性を確保するために、すべてのマスターが高速なディスク (SSD 以上) にアクセスする必要があります。ディスクのパフォーマンスに関するニーズについては、Red Hat アカウントチームにお問い合わせください。
5.1.2. RHOCP ノードへのディスクの提供
クラスターにストレージを提供するすべてのオプションは本書の範囲外です。以下のセクションでは、最も一般的なオプションを簡単に分析する方法を説明します。
5.1.2.1. Compute ノード上の一時ストレージ
RHOSP または RHOCP の追加設定がないため、これはマスターにディスクを提供する最も簡単な方法です。すべてのインスタンスボリュームは、Compute サービスに対してローカルのディスクに直接保存されます。そのディスクが高速である限り、SSD 以上であれば、高速ディスクの要件は満たされます。
ただし、etcd には耐障害性が組み込まれていますが、ローカルの Complete ディスクを使用することを選択すると、基盤となる物理ノードが失われるとインスタンスと etcd メンバーが破壊され、保護層が削除されます。
5.1.2.2. Ceph が支援する一時ストレージ
これは、設定ファイル /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml
を使用した、director がデプロイした Red Hat Ceph Storage 環境のデフォルト設定です。これにより、NovaEnableRBDBackend
が True
に設定され、Compute サービスはインスタンスに Red Hat Ceph Block Device (RBD) を使用するようにします。ボリュームは一時的なものですが、Red Hat Ceph Storage クラスターから取得されます。その後、クラスター自体が耐障害性を提供できます。この要件を満たすために、高速ディスクに Red Hat Ceph Storage クラスターを構築することもできます。Red Hat Ceph Storage クラスターには、以下のドキュメントで説明されているように階層化オプションが含まれる場合があります。
- RHOSP 13: 「OpenStack への 2 層 Ceph Storage のデプロイ」
- RHOSP 16.0: 「Deploying second-tier Ceph storage on OpenStack」
この方法を使用すると、ボリュームの耐障害性を追加できます。さらに、Red Hat Ceph Storage でサポートされるインスタンスをライブマイグレーションできます。これにより、耐障害性が提供され、Compute ノード間での RHOCP マスターノードの正しい配置が保証されます。
このリファレンスアーキテクチャーは、提供されている Ceph-Backed Ephemeral のデフォルトを使用します。これにより、Red Hat Ceph Storage クラスターを etcd の高速ディスク要件に対応できるように適切に設定することができます。
5.1.2.3. Red Hat OpenStack Block Storage が提供するボリューム
Red Hat OpenStack Block Storage (cinder) は、Red Hat Ceph Storage を含む複数のバックエンドストレージプロバイダーを使用する API フロントエンドを提供します。Compute ノードインスタンスは、OpenStack Block Storage からボリュームを要求することができます。これにより、バックエンドプラグインからストレージを要求します。
Red Hat Ceph Storage を使用した RHOSP デプロイメントは、RHOCP インストールプログラムで使用できるデフォルトのセットアップを作成し、Red Hat Ceph ブロックデバイス (RBD) によってサポートされるOpenStack Block Storage (cinder) を RHOCP ノードに提供します。これは、マシンプールを使用して実現します。マシンプールを使用して、インストーラーでプロビジョニングされるインフラストラクチャーで各ノードタイプの一部をカスタマイズできます。
たとえば、RHOSP 13 のデフォルトのインストールでは、以下の事前設定済みの OpenStack Block Storage ボリュームタイプが提供されます。
$ openstack volume type list +---------------------------------------+---------+-------------------+ | ID | Name | Is Public | +---------------------------------------+---------+-------------------+ | 37c2ed76-c9f7-4b0d-9a35-ab02ca6bcbb2 | tripleo | True | +---------------------------------------+---------+-------------------+
このプールは、ノードタイプの install-config.yaml
ファイルのマシンプールサブセクションに手動で追加できます。以下の例では、RHOCP インストールプログラムがすべての master に 25GB ルートボリュームを作成するように要求しています。
controlPlane: hyperthreading: Enabled name: master platform: openstack: type: m1.large rootVolume: size: 25 type: tripleo replicas: 1
RHOCP インストールプログラムは、デプロイメント時に RHOSP インスタンスのボリュームを作成します。
$ openstack volume list--------------------------------------
-------------------------------
------------------------------------------------------
| ID | Name | Status | Size | Attached to |--------------------------------------
-------------------------------
------------------------------------------------------
| b555cc99-3317-4334-aa19-1184a78ee3f8 | ostest-8vt7s-master-0 | in-use | 25 | Attached to ostest-8vt7s-master-0 on /dev/vda |--------------------------------------
-------------------------------
------+-------------------------------------------------
インスタンスが構築され、ボリュームがインスタンスにより使用されます。
[core@ostest-8vt7s-master-0 ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.8G 0 7.8G 0% /dev tmpfs 7.9G 84K 7.9G 1% /dev/shm tmpfs 7.9G 18M 7.9G 1% /run tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup /dev/mapper/coreos-luks-root-nocrypt 25G 19G 6.2G 75% /sysroot none 2.0G 435M 1.6G 22% /var/lib/etcd /dev/vda1 364M 84M 257M 25% /boot /dev/vda2 127M 3.0M 124M 3% /boot/efi tmpfs 1.6G 4.0K 1.6G 1% /run/user/1000
インストーラーでプロビジョニングされるインフラストラクチャーメソッドと組み合わせたボリュームバックエンドに OpenStack Block Storage を使用すると、インストーラーでプロビジョニングされるすべてのインフラストラクチャーに対して柔軟なストレージバックエンドを簡単に使用できます。OpenStack Block Storage を使用すると、管理者はストレージの複雑で改良された層 (クラス) を作成して、異なるノードに表示することができます。たとえば、worker および master のマシンプールに異なる値を設定することができます。
compute: - hyperthreading: Enabled name: worker platform: openstack: type: m1.large rootVolume: size: 25 type: tripleo-ssd replicas: 3 controlPlane: hyperthreading: Enabled name: master platform: openstack: type: m1.large rootVolume: size: 25 type: tripleo-nvme replicas: 3
5.2. 制限
この参照アーキテクチャーは、意図的に主張され、規範的です。install-config.yaml
ファイルを使用してデプロイメントのみをカスタマイズし、デプロイメント後に手動でインフラストラクチャーのカスタマイズを追加しないでください。
この参照アーキテクチャーは、RHOSP の RHOCP に対するすべての使用を試行する訳ではありません。個々の要件を考慮し、インストーラーでプロビジョニングされるインフラストラクチャーベースのインストールの機能および制限について詳細な分析を行う必要があります。
次のセクションでは、インストーラーによってプロビジョニングされたインフラストラクチャーベースのインストールを使用する際の制限に関して、フィールドチームが受け取った FAQ について詳しく説明します。このリストは確定したものではなく、時間の経過とともに変更する可能性があります。特定の機能に関する質問がある場合は、この参照アーキテクチャーの実装に進む前に、Red Hat サポートまたは Red Hat Specialized Solutions Architect にお問い合わせください。
5.2.1. Red Hat Identity Management の内部 TLS (TLS Everywhere)
この参照アーキテクチャーは、以下の手順で説明する手順でテストされていません。
RHOSP で RHOCP でこの機能を使用する場合は、Red Hat サポートにお問い合わせください。
5.2.2. インストーラーでプロビジョニングされるインフラストラクチャーのサブネット
- サイジング
- インストーラーでプロビジョニングされるインフラストラクチャー方法では、ネットワークセクションに示されるネットワーク範囲を、デフォルトのサブネット値から編集することはできません。IPI のネットワーク構造に対する今後の変更により、この柔軟性が向上します。
- MTU
インストーラーでプロビジョニングされるインフラストラクチャーメソッドは、インストールに必要なすべてのネットワークを作成します。つまり、インストール後に手動で実行しない限り、特定の設定でネットワークを変更することはできません。
MTU などの値は、『RHOSP ネットワークガイド』で説明されているように RHOSP デプロイメントから設定する必要があります。
- RHOSP 13: 「Configure maximum transmission unit (MTU) settings」
- RHOSP 16.0: 「MTU の設定」
5.2.3. ReadWriteMany (RWX) PersistentVolume (PV)
RHOCP を RHOSP にデプロイする場合は、ReadWriteMany (RWX) PersistentVolume のサポートがありません。RWX ボリュームは、数多くのノードで読み取り/書き込みとしてマウントできるボリュームです。詳細は、「永続ストレージについて」を参照してください。
RHOCP には多くの PersistentVolume プラグインがありますが、現在 RHOSP で RHOCP 用にテストされているのは Red Hat OpenStack Block Storage (cinder) です。OpenStack Block Storage は、さまざまなストレージプロバイダーに便利なフロントエンドを提供します。OpenStack Block Storage を使用すると、他のすべてのクラウドリソースと同様に、基礎となるストレージ要求は OpenStack API を使用して管理されます。これにより、オンデマンドインフラストラクチャーのすべての要素にわたってインフラストラクチャー管理者に一貫した管理が提供され、リソース割り当ての管理と追跡が容易になります。
OpenStack Block Storage は RWX をサポートしないため、RHOSP デプロイメントでの RHOCP 4.4 では RWX PersistentVolume を提供することができません。RWX 永続ボリュームのサポートは、OpenStack Shared-Filesystems-as-a-Service (manila) CSI プラグインにより RHOSP 上の RHOCP の今後のリリースで提供されます。
5.2.4. Red Hat OpenShift Container Storage 4
Red Hat OpenShift Container Storage は永続的なソフトウェア定義のストレージで、RHOCP 向けに統合され、最適化されます。OpenShift Container Storage は、RHOCP 内で直接実行されるコンテナー化されたソリューションを使用して、RHOCP インストールへのストレージを提供します。
RHOCP の場合、OpenShift Container Storage は、基盤のストレージを使用して RHOCP で実行される一意の Red Hat Ceph Storage クラスターを作成することにより、完全に独立したコンテナー化された Red Hat Ceph Storage デプロイメントを提供します。OpenShift Container Storage はアップストリームの Rook-Ceph Operator を使用してこれを行います。
この記事の執筆時点では、RHOSP 環境の RHOSP で OpenShift Container Storage を使用することはサポートされていません。このシナリオのサポートは、OpenShift Container Storage の今後のリリースで予定されています。
第6章 参照アーキテクチャーの実装
ここでは、デプロイされたリファレンスアーキテクチャーを説明します。
参照アーキテクチャーには、Red Hat Openstack Platform (RHOSP) 13 または 16.0 に Red Hat Openshift Container Platform (RHOCP) 4.4 を導入するための段階的な手順は含まれていません。
インストールの詳細な手順は、『OpenStack へのインストール』を参照してください。
分かりやすくするため、この参照アーキテクチャーは director の stack ユーザーを使用して RHOCP インストールをホストします。以下のセクションで説明するファイルおよび操作はすべて、このホストで実行されています。RHOCP 3.11 の参照アーキテクチャーとは異なり、専用のインストール/bastion ホストは必要ありません。
6.1. Red Hat OpenStack Platform インストール
この参照アーキテクチャーでは、Red Hat OpenStack (RHOSP) の 13.0.11 リリースおよび 16.0 リリースを使用します。RHOSP 13 のデプロイメントでは、インストーラーでプロビジョニングされるインフラストラクチャーのデプロイメントに使用する Red Hat Ceph Object Gateway (RGW)、OpenStack Networking (neutron) サービス、および OpenStack Image サービス (glance) に必要な機能が追加されるため、特定の 13.0.11 メンテナンスリリースが必要です。RHOSP 16.0 には、これらのすべての拡張機能がデフォルトとして含まれています。
director およびオーバークラウドホスト上のリリースファイルを確認することで、リリースバージョンを確認することができます。
(overcloud) [stack@undercloud ]$ cat /etc/rhosp-release Red Hat OpenStack Platform release 13.0.11 (Queens)
6.1.1. RHOSP のデプロイメント
オーバークラウドのデプロイメントは、次のもので構成されています。
- 3 つのモノリシックな Controller ノード (カスタムロールなし)
- Compute ノード 3 台
- Ceph を実行している 3 つの SSD 対応ストレージノード
エンドポイント
パブリック API エンドポイントは、予測可能な仮想 IP (PublicVirtualFixedIP) を使用して作成されます。詳細は、以下のドキュメントを参照してください。
- RHOSP 13: 「Assigning Predictable Virtual IPs」
- RHOSP 16.0: 「予測可能な仮想 IP の割り当て」
次のドキュメントで説明されているように、エンドポイントは、SSL/TLS を介してオーバークラウドにアクセスするのに DNS ホスト名を使用しません。
- RHOSP 13: 「DNS エンドポイントの設定」
- RHOSP 16.0: 「DNS エンドポイントの設定」
SSL/TLS
外部 TLS 暗号化を実装するには、director ホストで自己署名の証明書と認証局を使用します。この参照アーキテクチャーは、以下の手順に従い、自己署名証明書および ca.crt.pem
という名前の認証局ファイルを作成します。
- RHOSP 13: 「オーバークラウドのパブリックエンドポイントでの SSL/TLS の有効化」
- RHOSP 16.0: 「オーバークラウドのパブリックエンドポイントでの SSL/TLS の有効化」
RHOCP インストールプログラムでは、IP ベースのエンドポイントの前にあるこれらの証明書を、SAN (Subject Alternative Name) の一部にする必要があります。
参照アーキテクチャーでは、以下の参考資料に従って、director ホストのローカル CA 信頼に ca.crt.pem
ファイルも追加します。
- RHOSP 13: 「クライアントへの認証局の追加」
- RHOSP 16.0: 「クライアントへの認証局の追加」
これにより、アンダークラウドはオーバークラウドエンドポイントの自己署名証明書と通信でき、RHOCP インストールプログラムが、インストール時に RHOCP に必要なコンポーネントとプライベート CA を共有できるようにします。
ストレージ
Director は、設定ファイル /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml
を使用してRed Hat Ceph Storageをデプロイします。このデフォルト設定により、Red Hat Ceph Storage が以下のサービスのバックエンドとして設定されます。
- OpenStack Image サービス (glance)
- OpenStack Compute (nova)
- OpenStack Block Storage (cinder)
この参照アーキテクチャーでは、完全に SSD でサポートされた 3 つの専用ストレージノードに Red Hat Ceph Storage をデプロイします。これは、この参照アーキテクチャーの RHOCP ノードで提供されるストレージが、追加の設定要件なしにも高速になるようにするために使用されます。上記のように、ストレージのセットアップは異なる場合があるため、個々の要件と一意のハードウェアに基づいて考慮する必要があります。
この参照アーキテクチャーでは、OSD バックエンドとして BlueStore を使用して Red Hat Ceph Storage がデプロイされます。Red Hat は、Red Hat Ceph Storage 3.3 以降を使用する RHOSP 13 のすべての新規デプロイメントの OSD バックエンドとして BlueStore を使用する Red Hat Ceph Storage を使用することを推奨します。OSD バックエンドとして BlueStore を使用する Red Hat Ceph Storage は、Ceph 4.x を使用する RHOSP 16.0 のデフォルトであるため、特定のアクションは必要ありません。
オブジェクトストレージ
この参照アーキテクチャーでは、Red Hat Ceph Storage がサポートするオブジェクトストレージには Red Hat Ceph Object Gateway (RGW) を使用します。この参照アーキテクチャーは、カスタマイズなしで director が提供する以下のデフォルトテンプレートと共に RGW をデプロイします。
/usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-rgw.yaml
このテンプレートを使用すると、Controller ノードへのデフォルトの OpenStack Object Storage (swift) のインストールが自動的に無効になります。
RHOSP クラウド管理者は、Object Storage へのアクセスを明示的に許可する必要があります。RGW へのアクセスを許可するには、管理者はテナントに「Member」ロールを付与します。
ロール
この参照アーキテクチャーでは、カスタムロールは使用されません。
ネットワーク
この参照アーキテクチャーは、/usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml
設定ファイルにより提供される標準のネットワーク分離を使用します。この設定により、Storage、StorageMgmt、InternalApi、Tenant、および External の 5 つのデフォルトネットワークが作成されます。この参照アーキテクチャーでは、追加のネットワークは作成されません。
Director はデフォルトの Open vSwitch/OVS プラグインバックエンドをデプロイします。
外部ネットワークは、DNS に追加でき、クライアント Web ブラウザーからアクセス可能なさまざまなルーティング可能なアドレスを提供するプロバイダーネットワークです。
この参照アーキテクチャーは、HostnameMap を使用し、設定ファイル ips-from-pool-all.yaml
を使用してすべてのノード種別に IP を事前割り当てます。
イメージストレージ
この参照アーキテクチャーでは、Red Hat Ceph Storage を OpenStack Image サービス (glance) のバックエンドとして使用します。これにより、冗長な高速ストレージにイメージを保存できるようになり、より高速なブートと最適なストレージのためのコピーオンライトクローニング (CoW) が提供されます。
ただし、これは QCOW2 形式のイメージの使用も推奨されないことを意味します。詳細は「RAW 形式へのイメージの変換」を参照してください。代わりに、一時バックエンドまたはボリュームから仮想マシンを起動する場合、イメージの形式は RAW にする必要があります。
RHOCP インストールプログラムは、公開されている QCOW2 形式イメージを自動的にダウンロードして使用します。clusterOSImage
インストール変数を外部の RAW 形式のイメージの URL、またはOpenStack Image Service にすでに格納されている既存の事前デプロイされた RAW 形式のイメージの名前に設定することで、これを変更できます。
clusterOSImage
変数は、ガイド付きインストールからは利用できません。これを install-config.yaml
ファイルに手動で追加する必要があります。
6.1.2. 環境の準備
オーバークラウドのデプロイ後に環境を準備するために、以下の操作を実施しました。
6.1.2.1. RHOSP 管理
本セクションで説明するタスクは、RHOSP 管理者と RHOCP デプロイヤ-および管理者の両方が参照アーキテクチャのすべての要素を理解できるようにするための例示のみを目的としています。手順は RHOSP 13 のインストールで実行されました。RHOSP クラウドへの管理者アクセスを使用して RHOCP をデプロイし、実行する必要はありません。
パブリックネットワークの作成
この参照アーキテクチャーは、外部アクセスとルーティング可能な Floating IP を提供する外部フラットネットワークを作成しました。
$ openstack network create public --external --provider-network-type flat --provider-physical-network datacentre $ openstack subnet create --dhcp --gateway 192.168.122.1 --network public --subnet-range 192.168.122.0/24 --allocation-pool start=192.168.122.151,end=192.168.122.200 public
このネットワークは API、アプリケーション、およびブートストラップ仮想 IP (VIP) に使用する IP のソースで、クラウドテナントからアクセスできるようにする必要があります。
フレーバーの作成
この参照アーキテクチャーは、「OpenShift Container Platform を OpenStack にインストールするリソースのガイドライン」に詳述されている最小要件に合わせて適切なフレーバーを作成しました。
$ openstack flavor create --ram 16384 --disk 25 --vcpu 4 --public m1.large
各ノード種別は、カスタムマシンプールを使用して設定できます。install-config.yaml
のノードマシンプールの openstack:
セクションで type: value
を設定することにより、マシンプールを使用してノードタイプごとに異なるフレーバーを設定できます。詳細は「Custom machine pools」を参照してください。
ユーザーおよびプロジェクトの作成
この参照アーキテクチャーは、「shiftstack」と呼ばれる単純なプロジェクト (テナント) を作成し、「shiftstack_user」というユーザーを作成しました。
$ openstack project create shiftstack $ openstack user create --password 'redhat' shiftstack_user
テナントを基本的なロールに追加して、それらがクラウドを使用できるようにします。
$ openstack role add --user shiftstack_user --project shiftstack _member_
RHOCP プロジェクトおよびユーザーは、クラウドにアクセスするのに admin ロールは必要ありません。
オブジェクトストレージを使用するためのテナントへのアクセスの付与
この参照リファレンスアーキテクチャーのクラウド管理者は、「メンバー」ロールを付与することにより、Red Hat Ceph Object Gateway (RGW) を使用するテナントへのアクセスを付与します。「Member」ロールは、RGW へのアクセスを付与するために、Red Hat Ceph Storage のインストール専用のロールです。
Cephの「メンバー」と、shiftstack_user の _member_
は異なり、明確な役割があり、どちらも目的に必要です。
$ openstack role add --user shiftstack_user --project shiftstack Member
クォータ
この参照アーキテクチャーは、RHOCP ノードのリソース要件に合わせてデフォルトのクォータを変更しました。各 RHOCP ノードには、4 つの VCPU と 16 GB の RAM が必要です。
$ openstack quota set --cores 28 --ram 120000 shiftstack
参照アーキテクチャーには、Ignition ファイルを RGW オブジェクトストアに保存し、ルーティング可能な Floating IP を使用し、十分なリソースを持つパブリックの外部プロバイダーネットワークを使用する RHOSP ユーザーおよびプロジェクトが含まれるようになりました。
6.2. RHOCP テナントの操作
RHOCP インストールプログラムを開始する前に、shiftstack_user は、director ホストから次のタスクを実行し、stack ユーザーとしてログインします。
OpenStack RC ファイルのダウンロード
OpenStack RC ファイルは、RHOSP コマンドラインクライアントの使用に必要な環境変数を設定する環境ファイルです。
参照アーキテクチャーは、OpenStack Dashboard (horizon) GUI からダウンロードして、デプロイメントホストに置かれた shiftstack_user の RC ファイルを使用します。このファイルはいかなる方法でも変更されませんでした。
clouds.yaml
のダウンロードおよび変更
clouds.yaml
ファイルには、1 つ以上のクラウドに接続するために必要な設定が含まれます。OpenStack RC ファイルと同じ場所からダウンロードします。
clouds.yaml
のデフォルトの場所は ~/.config/openstack/
で、これ以降のバージョンの RHOSP では、インストール時にこのファイルが作成されます。この参照アーキテクチャーでは、cloud.yaml
を、OpenStack RC ファイルと同じ場所にある director ホストのスタックユーザーのホームディレクトリーに置きます。このファイルを別の場所に配置することができます。詳細は、「OpenStack Credentials」を参照してください。
詳細は「clouds.yaml」を参照してください。
この参照アーキテクチャーにより、clouds.yaml
ファイルに以下の変更を加えます。
インストールプログラムはパスワードを必要とし、ダウンロードしたファイルにパスワードが存在しないため、パスワードを追加します。
password: "redhat"
認証局ファイル
ca.crt.pem
を追加して、自己署名の外部 TLS のサポートを追加します。cacert: /home/stack/ssl/ca.crt.pem
RHOCP インストールプログラムが以下の設定を使用するため、この変更は RHOCP インストールプログラムの実行前に必要です。
- 実行元のホストから RHOSP TLS 対応エンドポイントと直接対話します。
- インストール時に自己署名認証局をクラスターオペレーターの一部と共有します。
RHOCP テナントは、以下の参考資料に従って、認証局ファイルが置かれたホストから RHOCP インストールプログラムを実行する必要があります。
- RHOSP 13: 「クライアントへの認証局の追加」
- RHOSP 16.0: 「クライアントへの認証局の追加」
以下の例は、編集した clouds.yaml
ファイルを示しています。
# This is a clouds.yaml file, which can be used by OpenStack tools as a source # of configuration on how to connect to a cloud. If this is your only cloud, # just put this file in ~/.config/openstack/clouds.yaml and tools like # python-openstackclient will just work with no further config. (You will need # to add your password to the auth section) # If you have more than one cloud account, add the cloud entry to the clouds # section of your existing file and you can refer to them by name with # OS_CLOUD=openstack or --os-cloud=openstack clouds: openstack: auth: auth_url: http://192.168.122.150:5000/v3 username: "shiftstack_user" password: "redhat" project_id: 1bfe23368dc141068a79675b9dea3960 project_name: "shiftstack" user_domain_name: "Default" cacert: /home/stack/ssl/ca.crt.pem region_name: "regionOne" interface: "public" identity_api_version: 3
Floating IP の確保
以下の参照アーキテクチャーは、グローバルプールから 2 つの Floating IP を確保します。
- ingress (アプリケーション) の場合は 192.168.122.167
- API アクセスの場合は 192.168.122.152
RHOCP インストールプログラムでは、ブートストラップマシンに 3 番目の Floating IP も必要になります。ただし、ブートストラップホストは一時的なものであるため、このフローティング IP を事前に割り当てたり DNS に入れたりする必要はありません。代わりに、インストールプログラムはフローティングプールから IP を選択し、インストール時にトラブルシューティングのアクセスを許可するためにその IP をホストに割り当てます。ブートストラップが破棄されると、IP はプールに返されます。
インストールプログラムの取得およびプルシークレット
この参照アーキテクチャーは、Red Hat OpenShift Cluster Manager からダウンロードした RHOCP インストールプログラム、クライアント、およびプルシークレットを使用します。Red Hat カスタマーポータル から最新のイメージ、インストールプログラム、およびクライアントをダウンロードすることもできます。
新しいクラスターは、60 日間の評価サブスクリプションで自動的に登録されます。評価版サブスクリプションには、Red Hat からのサポートは含まれていません。評価されない場合は、サポートが含まれるサブスクリプションを関連付ける必要があります。詳細は「OpenShift Container Platform 3 から 4 へのクラスター移行時のオーバーサブスクリプションに関する説明」を参照してください。
6.3. Red Hat OpenShift Container Platform インストール
インストールプログラムを実行する前に、install-config.yaml
を格納するディレクトリーと、クラスターアセットを保存するディレクトリーを作成します。たとえば、以下の 2 つのディレクトリーは「ocpra」クラスターのディレクトリーになります。
-
「ocpra-config」:
install-config.yaml
の「マスターコピー」を保存します。 - 「ocpra」: クラスターのアセットディレクトリーです。
インストールプログラムは複数のクラスターを管理できるため、各クラスターで一意のディレクトリーを使用してアセットファイルを分離できます。
この参照アーキテクチャーでは、ガイド付きインストールを使用して install-config.yaml
ファイルを直接 ocpra-config
ディレクトリーに生成します。
$ openshift-install --dir=ocpra-config create install-config ? SSH Public Key /home/stack/.ssh/id_rsa.pub ? Platform openstack ? Cloud openstack ? ExternalNetwork public ? APIFloatingIPAddress 192.168.122.152 ? FlavorName m1.large ? Base Domain example.com ? Cluster Name ocpra ? Pull Secret [? for help] ******************************************
ガイド付きインストールでは、以下の変数を追加します。
- SSH Public Key: すべての RHOCP ノードの指定されたキー。「core」ユーザー (core@IP として接続) の下に保存されます。この例では、stack ユーザーの公開鍵を使用します。実稼働デプロイメントの場合は、適切なセキュリティープラクティスと会社のセキュリティーポリシーに基づいて、個別のキーを指定する必要があります。
- プラットフォーム: RHOCP をインストールしているクラウドプロバイダープラットフォームこの参照アーキテクチャーは、「openstack」にインストールします。
-
Cloud: これは、
clouds.yaml
で定義されているように、使用するクラウドです。 - ExternalNetwork: 「 --external」フラグで定義されるネットワーク。インストールプログラムには、選択可能なオプションが表示されます。
- APIFloatingIPAddress: API に指定された Floating IPインストールプログラムは、選択するプロジェクトに割り当てられた Floating IP をすべて表示します。この参照アーキテクチャーでは、192.168.122.152 を割り当てます。この Floating IP はクラスターの前にロードバランサー (haproxy) に割り当てられます。物理ノードではありません。
-
FlavorName: すべてのインスタンスに使用するフレーバー。この参照アーキテクチャーでは、必要なリソース制限で以前に作成した
m1.large
フレーバーを使用します。 -
ベースドメイン: クラスターのベースドメイン名。この参照アーキテクチャーは
example.com
を使用します。 -
Cluster Name: クラスターの名前。この名前は、ベースドメイン名の接頭辞として
<clustername>.<basedomain>
として追加されます。この参照アーキテクチャーは「ocpra」を使用します。 - プルシークレット: 「Install OpenShift on Red Hat OpenStack Platform with installer-provisioned infrastructure」の「Pull Secret」セクションからコピーした一意の値。
以下のコマンドを実行して、実行中のクラスターの install-config.yaml
を再生成できます。
$ openshift-install --dir=<asset directory of the cluster> create install-config
以下は例になります。
$ openshift-install --dir=ocpra create install-config
install-config.yaml のカスタマイズ
ガイド付きインストールを使用すると、完全にサポートされている実稼働クラスターが作成されます。ただし、特定の追加の値を手動で install-config.yaml
に追加して、実稼働環境で使用できる、サポートされるデプロイメントを作成できます。この参照アーキテクチャーにより、platform の openstack:
セクションに以下の値が追加されます。
-
externalDNS
: この参照アーキテクチャーが作成する RHOSP クラウドは、デフォルトでテナントが作成したサブネットに DNS を提供しません。代わりに、この参照アーキテクチャーは、インストーラーが作成するサブネットに特定の DNS を自動的に追加できるように、externalDNS
値を手動で設定します。 clusterOSImage
: この参照アーキテクチャーは、この値を RHCOS QCOW2 イメージの RAW 形式のバージョンを参照する URL に設定します。これにより、インストールプログラムがダウンロードしたデフォルトの QCOW2 の使用が上書きされますが、これは Ceph バックエンドには適していません。この RAW イメージは内部 Web サーバーでホストされます。詳細は「RAW 形式へのイメージの変換」を参照してください。注記未解決の問題により、RHOCP インストールプログラムによってアップロードされたイメージには QCOW ラベルがあり、「disk_format」フィールドが「qcow2」として返されます。これは誤りです。アップロードされたイメージが RAW であることを確認するには、インストールプログラムがアップロードしたキャッシュファイルを使用して、実際にアップロードされたイメージを確認できます。
$ qemu-img info ~/.cache/openshift-installer/image_cache/7efb520ee8eb9ccb339fa223329f8b69 image: /home/stack/.cache/openshift-installer/image_cache/7efb520ee8eb9ccb339fa223329f8b69 file format: raw virtual size: 16G (17179869184 bytes) disk size: 16G
この参照アーキテクチャーの install-config.yaml
ファイルは次のとおりです。
$ cat ocpra-config/install-config.yaml apiVersion: v1 baseDomain: example.com compute: - hyperthreading: Enabled name: worker platform: {} replicas: 3 controlPlane: hyperthreading: Enabled name: master platform: {} replicas: 3 metadata: creationTimestamp: null name: ocpra networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 machineCIDR: 10.0.0.0/16 # The networkType is set by default to OpenShiftSDN, even if Octavia # is detected and you plan to use Kuryr. Set to "Kuryr" to use Kuryr. networkType: OpenShiftSDN serviceNetwork: - 172.30.0.0/16 platform: openstack: cloud: openstack computeFlavor: m1.large externalDNS: ['8.8.8.8'] externalNetwork: public # lbFloatingIP is populated with the APIFloatingIPAddress value # specified in the guided installation. lbFloatingIP: 192.168.122.152 # octaviaSupport is set to '0' by the installation program # as Octavia was not detected. octaviaSupport: "0" region: "" trunkSupport: "1" clusterOSImage: http://10.11.173.1/pub/rhcos-4.4.0-rc.1-x86_64-openstack.x86_64.raw publish: External pullSecret: ‘xxx' sshKey: | ssh-rsa AAAAB3NzaC1yc2EsdfsdfsdsfewX0lTpqvkL/rIk5dGYVZGCHYse65W8tKT... stack@undercloud.redhat.local
インストールプログラムは、worker と master の両方の レプリカ
数を「3」にデフォルト設定します。本番環境では、HA および無線アップデートには 3 つのマスターが必要なため、3 つ以上またはそれ以下のマスターを使用することはサポートされていません。
DNS 設定の準備
この参照アーキテクチャーは、以下のように DNS エントリーを準備します。
-
api.ocpra.example.com
は 192.168.122.152 に解決 -
*.apps.ocpra.example.com
は 192.168.122.167 に解決
特定の DNS サーバー管理は、本書では扱いません。
RHOCP のインストール
インストールの前に、install-confg.yaml
ファイルをインストール用のアセットディレクトリーにコピーしました。
$ cp ocpra-config/install-config.yaml ocpra/
RHOCP インストールプログラムを実行し、install-config.yaml
ファイルのコピーを含むアセットディレクトリーを指定する準備が整いました。
$ openshift-install --dir=ocpra create cluster --log-level=debug
インストールには --log-level=debug
を使用する必要はありません。この参照アーキテクチャーでは、これを使用してインストールプロセスの最も詳細な出力が明確に確認できます。
6.4. Red Hat OpenStack Platform のデプロイメントにおける Red Hat OpenShift Container Platform
以下の図は、OpenStack Dashboard を使用した RHOSP デプロイメントで動作中の RHOCP を示しています。
master および worker ノードインスタンス
RHCOS イメージ
ネットワーク
セキュリティーグループ
オブジェクトストレージレジストリー
6.5. インストール後
RHOSP デプロイメントの RHOCP を実稼働環境で利用可能にするために、参照アーキテクチャーが以下のインストール後のタスクを実行しました。
- Ingress Floating IP を ingress ポートに割り当てて利用できるようにします。
- master ノードを別の Compute ノードに配置します。
- クラスターのステータスの確認
6.5.1. Ingress Floating IP を利用できるようにする
RHOCP で実行しているアプリケーションが使用する Ingress Floating IP は、インストールの一部として 192.168.122.167 に割り当てられ、DNS にエントリーがあります。
RHOCP Ingress アクセスを使用可能にするには、クラスターが作成されたら、「Floating IP アドレスを使用したアプリケーションアクセスの設定」のガイダンスに従って、Ingress フローティング IP を手動で入力 Ingress ポートに接続する必要があります。
Ingress IP は、keepalived によって管理される固定 IP アドレスです。OpenStack Network データベースにレコードがなく、RHOSP には表示されないため、クエリーを行う際には「DOWN」の状態のままになります。
以下のコマンドを実行して Ingress ポート ID を確認します。
$ openstack port list | grep ingress | 28282230-f90e-4b63-a5c3-a6e2faddbd15 | ocpra-6blbm-ingress-port | fa:16:3e:4e:b8:bc | ip_address='10.0.0.7', subnet_id='cb3dbf4a-8fb3-4b2e-bc2d-ad12606d849a' | DOWN |
以下のコマンドを実行して、ポートを IP アドレスに割り当てます。
$ openstack floating ip set --port 28282230-f90e-4b63-a5c3-a6e2faddbd15 192.168.122.167
6.5.2. master ノードを別の Compute ノードに配置する
RHOCP インストールプログラムには、RHOSP の非アフィニティールールまたはアベイラビリティーゾーンのサポートが含まれません。したがって、インストール後に各 master ノードを独自の Complete ノードに移行する必要があります。この参照アーキテクチャーはライブマイグレーションを使用して、Compute ノード 1 つにつき 1 つのマスターを確保します。詳細は、以下の参考資料を参照してください。
- RHOSP 13: Live Migrate a Virtual Machine
- RHOSP 16.0: 「仮想マシンのライブマイグレーション」
今後のリリースでは、RHOSP の非アフィニティールールおよびアベイラビリティーゾーンがサポートされる予定です。
6.5.3. クラスターのステータスの確認
この参照アーキテクチャーは、「クラスターのステータスの確認」で説明されている手順に従って、クラスターが正常に実行されていることを確認します。
DNS に関連付けられた URL を使用して RHOCP コンソールにアクセスできます。この参照アーキテクチャーでは、コンソールは https://console-openshift-console.apps.ocpra.example.com/ にデプロイされます。
第7章 概要
Red Hat OpenShift Platform 4.4 では、Red Hat OpenStack Platform 13 および 16.0、および Red Hat Ceph Storage 3 および 4 は、オンプレミスのコンテナーインフラストラクチャー向けに、包括的で規定されたインストールエクスペリエンスを利用できます。
Red Hat OpenStack Platform 13 と 16.0、および Red Hat Ceph Storage 3 および 4 の統合ですでに認定および成功した状態で構築され、IT Operations は OpenShift のインストールを確実にし、パブリッククラウドのインストールと同様の Day 2 運用エクスペリエンスを保証できます。これにより、選択したインフラストラクチャーソリューションに関係なく、組織がいかなる妥協も受け入れる必要がないことを保証することにより、真のハイブリッドクラウドのビジョンと配信がさらに強力で魅力的なものになります。
この参照アーキテクチャーは、Red Hat の規範的かつ事前検証済みのプライベートクラウドソリューションを紹介します。これにより、IT as a Service (ITaaS) を実行して、コンテナー化されたインフラストラクチャー、仮想マシン、および関連アプリケーションとインフラストラクチャーサービスの迅速なプロビジョニングとライフサイクル管理を提供します。
Red Hat OpenShift Container Platform、Red Hat OpenStack Platform、および Red Hat Ceph Storage は、このソリューションの主要アーキテクチャーのコンポーネントです。Red Hat OpenShift Container Platform をすべてのクラウドで共通のコンテナーおよび kubernetes プラットフォームとして機能させることで、ハイブリッドおよびマルチクラウドに簡単に拡張できます。
Red Hat Quality Engineering Team (QE) は、このソリューションで説明されているように実装をテストおよび検証しています。これにより、この参照アーキテクチャーの運用を迅速に実現しようとしている組織は、表示されているすべてのオプションが完全にテストされているだけでなく、Red Hat によって完全にサポートされていることが保証されます。
第8章 参考資料
Red Hat OpenShift Container Platform 4.4
docs.openshift.com および access.redhat.com にあるドキュメントは同じで、いずれも Red Hat でサポートされています。https://github.com/openshift/installer に関するドキュメントは、アップストリームコミュニティーのドキュメントとみなされ、Red Hat ではサポートされていません。
Red Hat OpenStack Platform 13
Red Hat OpenStack Platform 16.0
Red Hat Ceph Storage 3
Red Hat Ceph Storage 4
install_config.yaml
apiVersion: v1 baseDomain: augusts.be compute: - architecture: amd64 hyperthreading: Enabled name: worker platform: {} replicas: 3 controlPlane: architecture: amd64 hyperthreading: Enabled name: master platform: {} replicas: 3 metadata: creationTimestamp: null name: ocpra networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 machineNetwork: - cidr: 10.0.0.0/16 networkType: OpenShiftSDN serviceNetwork: - 172.30.0.0/16 platform: openstack: cloud: openstack computeFlavor: m1.large externalDNS: null externalNetwork: public lbFloatingIP: 192.168.122.152 octaviaSupport: "0" region: "" trunkSupport: "1" externalDNS: ['8.8.8.8'] clusterOSImage: http://10.11.173.1/pub/rhcos-4.4.0-rc.1-x86_64-openstack.x86_64.raw publish: External pullSecret: '{"auths":{"cloud.openshift.com":{"auth":"b3BlbnNoaW … "}}}' sshKey: | ssh-rsa AAAAB3NzaC1yc2 …
第9章 貢献者
以下に示す項目は、この参照アーキテクチャーの実稼働環境に向けています。
August Simonelli | プロジェクトおよびコンテンツのリード |
Ramon Acedo Rodriguez | テクニカルレビュー/プロジェクト管理 |
Luis Tomas Bolivar | テクニカルレビュー/エンジニアリング |
Martin André | テクニカルレビュー/エンジニアリング |
Jon Uriarte | テクニカルレビュー/QE |
Katherine Dube | テクニカルレビュー/OpenShift |
Eric Duen | エンジニアリングの監視/スタックのシフト |
Greg Charot | テクニカルレビュー/ストレージ |
Tom Barron | テクニカルレビュー/ストレージ |
Giulio Fidente | テクニカルレビュー/ストレージ |
Robert Heinzmann | コンテンツのレビュー |
Benjamin Cohen | コンテンツのレビュー |
Steven Ellis | コンテンツのレビュー |
Mohammad Ahmad | コンテンツのレビュー |
Irina Gallagher | ドキュメントレビューおよび公開担当 |
Jess Schaefer | グラフィック |