3.10. インストール設定ファイルの作成
Red Hat OpenStack Platform (RHOSP) にインストールする OpenShift Container Platform クラスターをカスタマイズできます。
前提条件
- OpenShift Container Platform インストールプログラムおよびクラスターのプルシークレットがある。
手順
install-config.yaml
ファイルを作成します。インストールプログラムが含まれるディレクトリーに切り替え、以下のコマンドを実行します。
./openshift-install create install-config --dir <installation_directory>
$ ./openshift-install create install-config --dir <installation_directory>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<installation_directory>
の場合、インストールプログラムが作成するファイルを保存するためにディレクトリー名を指定します。
ディレクトリーを指定する場合:
-
ディレクトリーに
execute
権限があることを確認します。この権限は、インストールディレクトリーで Terraform バイナリーを実行するために必要です。 - 空のディレクトリーを使用します。ブートストラップ X.509 証明書などの一部のインストールアセットは有効期限が短いため、インストールディレクトリーを再利用しないでください。別のクラスターインストールの個別のファイルを再利用する必要がある場合は、それらをディレクトリーにコピーすることができます。ただし、インストールアセットのファイル名はリリース間で変更される可能性があります。インストールファイルを以前のバージョンの OpenShift Container Platform からコピーする場合は注意してコピーを行ってください。
プロンプト時に、クラウドの設定の詳細情報を指定します。
オプション: クラスターマシンにアクセスするために使用する SSH キーを選択します。
注記インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、
ssh-agent
プロセスが使用する SSH キーを指定します。- ターゲットに設定するプラットフォームとして openstack を選択します。
- クラスターのインストールに使用する Red Hat OpenStack Platform (RHOSP) の外部ネットワーク名を指定します。
- OpenShift API への外部アクセスに使用する floating IP アドレスを指定します。
- コントロールプレーンノードに使用する少なくとも 16 GB の RAM とコンピュートノードに使用する 8 GB の RAM を持つ RHOSP フレーバーを指定します。
- クラスターをデプロイするベースドメインを選択します。すべての DNS レコードはこのベースのサブドメインとなり、クラスター名も含まれます。
- クラスターの名前を入力します。名前は 14 文字以下でなければなりません。
-
install-config.yaml
ファイルを変更します。利用可能なパラメーターの詳細は、「インストール設定パラメーター」のセクションを参照してください。 install-config.yaml
ファイルをバックアップし、複数のクラスターをインストールするのに使用できるようにします。重要install-config.yaml
ファイルはインストールプロセス時に使用されます。このファイルを再利用する必要がある場合は、この段階でこれをバックアップしてください。
3.10.1. インストール時のクラスター全体のプロキシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
実稼働環境では、インターネットへの直接アクセスを拒否し、代わりに HTTP または HTTPS プロキシーを使用することができます。プロキシー設定を install-config.yaml
ファイルで行うことにより、新規の OpenShift Container Platform クラスターをプロキシーを使用するように設定できます。
前提条件
-
既存の
install-config.yaml
ファイルがある。 クラスターがアクセスする必要のあるサイトを確認済みで、それらのいずれかがプロキシーをバイパスする必要があるかどうかを判別している。デフォルトで、すべてのクラスター Egress トラフィック (クラスターをホストするクラウドに関するクラウドプロバイダー API に対する呼び出しを含む) はプロキシーされます。プロキシーを必要に応じてバイパスするために、サイトを
Proxy
オブジェクトのspec.noProxy
フィールドに追加している。注記Proxy
オブジェクトのstatus.noProxy
フィールドには、インストール設定のnetworking.machineNetwork[].cidr
、networking.clusterNetwork[].cidr
、およびnetworking.serviceNetwork[]
フィールドの値が設定されます。Amazon Web Services (AWS)、Google Cloud Platform (GCP)、Microsoft Azure、および Red Hat OpenStack Platform (RHOSP) へのインストールの場合、
Proxy
オブジェクトのstatus.noProxy
フィールドには、インスタンスメタデータのエンドポイント (169.254.169.254
) も設定されます。
手順
install-config.yaml
ファイルを編集し、プロキシー設定を追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- クラスター外の HTTP 接続を作成するために使用するプロキシー URL。URL スキームは
http
である必要があります。 - 2
- クラスター外で HTTPS 接続を作成するために使用するプロキシー URL。
- 3
- プロキシーから除外するための宛先ドメイン名、IP アドレス、または他のネットワーク CIDR のコンマ区切りのリスト。サブドメインのみと一致するように、ドメインの前に
.
を付けます。たとえば、.y.com
はx.y.com
に一致しますが、y.com
には一致しません。*
を使用し、すべての宛先のプロキシーをバイパスします。 - 4
- 指定されている場合、インストールプログラムは HTTPS 接続のプロキシーに必要な 1 つ以上の追加の CA 証明書が含まれる
user-ca-bundle
という名前の設定マップをopenshift-config
namespace に生成します。次に Cluster Network Operator は、これらのコンテンツを Red Hat Enterprise Linux CoreOS (RHCOS) 信頼バンドルにマージするtrusted-ca-bundle
設定マップを作成し、この設定マップはProxy
オブジェクトのtrustedCA
フィールドで参照されます。additionalTrustBundle
フィールドは、プロキシーのアイデンティティー証明書が RHCOS 信頼バンドルからの認証局によって署名されない限り必要になります。 - 5
- オプション:
trustedCA
フィールドのuser-ca-bundle
設定マップを参照するProxy
オブジェクトの設定を決定するポリシー。許可される値はProxyonly
およびAlways
です。Proxyonly
を使用して、http/https
プロキシーが設定されている場合にのみuser-ca-bundle
設定マップを参照します。Always
を使用して、常にuser-ca-bundle
設定マップを参照します。デフォルト値はProxyonly
です。
注記インストールプログラムは、プロキシーの
readinessEndpoints
フィールドをサポートしません。注記インストーラーがタイムアウトした場合は、インストーラーの
wait-for
コマンドを使用してデプロイメントを再起動してからデプロイメントを完了します。以下に例を示します。./openshift-install wait-for install-complete --log-level debug
$ ./openshift-install wait-for install-complete --log-level debug
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ファイルを保存し、OpenShift Container Platform のインストール時にこれを参照します。
インストールプログラムは、指定の install-config.yaml
ファイルのプロキシー設定を使用する cluster
という名前のクラスター全体のプロキシーを作成します。プロキシー設定が指定されていない場合、cluster
Proxy
オブジェクトが依然として作成されますが、これには spec
がありません。
cluster
という名前の Proxy
オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。
3.10.2. RHOSP デプロイメントでのカスタムサブネット リンクのコピーリンクがクリップボードにコピーされました!
オプションで、選択する Red Hat OpenStack Platform (RHOSP) サブネットにクラスターをデプロイすることができます。サブネットの GUID は、install-config.yaml
ファイルの platform.openstack.machinesSubnet
の値として渡されます。
このサブネットはクラスターのプライマリーサブネットとして使用されます。デフォルトで、ノードおよびポートはこの上に作成されます。platform.openstack.machinesSubnet
プロパティーの値をサブネットの UUID に設定すると、異なる RHOSP サブネットにノードおよびポートを作成することができます。
カスタムサブネットを使用して OpenShift Container Platform インストーラーを実行する前に、設定が以下の要件を満たしていることを確認してください。
-
platform.openstack.machinesSubnet
で使用されるサブネットで DHCP が有効にされている。 -
platform.openstack.machinesSubnet
の CIDR はnetworking.machineNetwork
の CIDR に一致する。 - インストールプログラムのユーザーには、固定 IP アドレスを持つポートなど、このネットワークでポートを作成するパーミッションがある。
カスタムサブネットを使用するクラスターには、以下の制限があります。
-
Floating IP アドレスを使用するクラスターをインストールする予定の場合には、
platform.openstack.machinesSubnet
サブネットをexternalNetwork
ネットワークに接続されているルーターに接続する必要があります。 -
platform.openstack.machinesSubnet
の値がinstall-config.yaml
ファイルに設定されている場合、インストールプログラムは RHOSP マシンのプライベートネットワークまたはサブネットを作成しません。 -
platform.openstack.externalDNS
プロパティーは、カスタムサブネットと同時に使用することはできません。カスタムサブネットを使用するクラスターに DNS を追加するには、RHOSP ネットワークで DNS を設定します。
デフォルトでは、API VIP は x.x.x.5 を取得し、Ingress VIP はネットワークの CIDR ブロックから x.x.x.7 を取得します。これらのデフォルト値を上書きするには、DHCP 割り当てプール外の platform.openstack.apiVIPs
および platform.openstack.ingressVIPs
の値を設定します。
ネットワークの CIDR 範囲は、クラスターのインストール後に調整できません。Red Hat は、namespace ごとに作成される Pod の数を慎重に検討する必要があるため、クラスターのインストール時に範囲を決定するための直接的なガイダンスを提供していません。
3.10.3. ベアメタルマシンを使用したクラスターのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
クラスターでベアメタルマシンを使用する必要がある場合は、install-config.yaml
ファイルを変更します。クラスターには、ベアメタル上でコントロールプレーンとコンピュートマシンの両方を実行させることも、コンピュートマシンのみを実行させることもできます。
install-config.yaml
ファイルで、ベアメタルワーカーに使用する RHOSP ネットワークが Floating IP アドレスをサポートするかどうかが反映されていることを確認します。
前提条件
- RHOSP Bare Metal サービス (Ironic) が有効になっており、RHOSP Compute API 経由でアクセスできる。
- ベアメタルを RHOSP フレーバー として利用できる。
- クラスターが 16.1.6 以降、16.2.4 未満の RHOSP バージョンで実行している場合は、メタデータサービスが OpenShift Container Platform ノード上のサービスで使用できなくなる 既知の問題 により、ベアメタルワーカーは機能しません。
- RHOSP ネットワークが、仮想マシンとベアメタルサーバーの両方の接続をサポートしている。
- 既存のネットワークにマシンをデプロイする場合、RHOSP サブネットがプロビジョニングされている。
- インストーラーによってプロビジョニングされるネットワークにマシンをデプロイする場合、RHOSP Bare Metal サービス (Ironic) が、テナントネットワークで実行される Preboot eXecution Environment (PXE) ブートマシンをリッスンして通信することができる。
-
OpenShift Container Platform インストールプロセスの一環として、
install-config.yaml
ファイルを作成した。
手順
install-config.yaml
ファイルで、マシンのフレーバーを編集します。-
ベアメタルのコントロールプレーンマシンを使用する必要がある場合は、
controlPlane.platform.openstack.type
の値をベアメタルフレーバーに変更します。 -
compute.platform.openstack.type
の値をベアメタルフレーバーに変更します。 既存のネットワークにマシンをデプロイする場合は、
platform.openstack.machinesSubnet
の値をネットワークの RHOSP サブネット UUID に変更します。コントロールプレーンおよびコンピュートマシンは同じサブネットを使用する必要があります。ベアメタルの
install-config.yaml
のサンプルファイルCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
ベアメタルのコントロールプレーンマシンを使用する必要がある場合は、
更新された install-config.yaml
ファイルを使用してインストールプロセスを完了します。デプロイメント時に作成されるコンピュートマシンは、ファイルに追加したフレーバーを使用します。
インストーラーは、ベアメタルマシンの起動中にタイムアウトする可能性があります。
インストーラーがタイムアウトした場合は、インストーラーの wait-for
コマンドを使用してデプロイメントを再起動してからデプロイメントを完了します。以下に例を示します。
./openshift-install wait-for install-complete --log-level debug
$ ./openshift-install wait-for install-complete --log-level debug
3.10.4. RHOSP プロバイダーネットワーク上のクラスターデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
プロバイダーネットワーク上のプライマリーネットワークインターフェイスを使用して、OpenShift Container Platform クラスターを Red Hat OpenStack Platform (RHOSP) にデプロイできます。プロバイダーネットワークは一般的に、インターネットへの到達に使用可能なパブリックネットワークに、プロジェクトが直接アクセスできるように使用します。ネットワーク作成プロセスの一環として、プロバイダーネットワークをプロジェクト間で共有することもできます。
RHOSP プロバイダーネットワークは、データセンター内の既存の物理ネットワークに直接マップします。RHOSP 管理者はこれらを作成する必要があります。
以下の例では、OpenShift Container Platform ワークロードはプロバイダーネットワークを使用してデータセンターに接続されます。
プロバイダーネットワークにインストールされている OpenShift Container Platform クラスターは、テナントネットワークまたは Floating IP アドレスを必要としません。インストーラーは、インストール中にこれらのリソースを作成しません。
プロバイダーネットワークタイプの例には、フラット (タグなし) および VLAN (802.1Q タグ付き) が含まれます。
クラスターは、ネットワークタイプが許可する限り多くのプロバイダーネットワーク接続をサポートできます。たとえば、VLAN ネットワークは、通常最大 4096 の接続をサポートします。
プロバイダーネットワークおよびテナントネットワークの詳細は、RHOSP のドキュメント を参照してください。
3.10.4.1. クラスターのインストールにおける RHOSP プロバイダーネットワーク要件 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターをインストールする前に、Red Hat OpenStack Platform (RHOSP) のデプロイメントおよびプロバイダーネットワークは、さまざまな条件を満たす必要があります。
- RHOSP ネットワークサービス (Neutron) が有効化され、RHOSP ネットワーク API 経由でアクセス可能であること。
- RHOSP ネットワークサービスでは、ポートセキュリティーと許可するアドレスペアの機能拡張が有効化 されていること。
プロバイダーネットワークは他のテナントと共有できます。
ヒント--share
フラグを指定してopenstack network create
コマンドを使用して、共有できるネットワークを作成します。クラスターのインストールに使用する RHOSP プロジェクトは、プロバイダーネットワークと適切なサブネットを所有する必要があります。
ヒント- "openshift" という名前のプロジェクトのネットワークを作成するには、以下のコマンドを入力します。
openstack network create --project openshift
$ openstack network create --project openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - "openshift" という名前のプロジェクトのサブネットを作成するには、以下のコマンドを入力します。
openstack subnet create --project openshift
$ openstack subnet create --project openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHOSP でのネットワークの作成に関する詳細は、プロバイダーネットワークに関するドキュメント を参照してください。
クラスターが
admin
ユーザーによって所有されている場合、そのユーザーとしてインストーラーを実行してネットワーク上でポートを作成する必要があります。重要プロバイダーネットワークは、クラスターの作成に使用される RHOSP プロジェクトによって所有されている必要があります。所有されていない場合は、RHOSP Compute サービス (Nova) はそのネットワークからポートを要求できません。
プロバイダーネットワークが、デフォルトで
169.254.169.254
である RHOSP メタデータサービスの IP アドレスに到達できることを確認します。RHOSP SDN とネットワークサービス設定によっては、サブネットを作成する際に、ルートを提供しなければならない場合があります。以下に例を示します。
openstack subnet create --dhcp --host-route destination=169.254.169.254/32,gateway=192.0.2.2 ...
$ openstack subnet create --dhcp --host-route destination=169.254.169.254/32,gateway=192.0.2.2 ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - オプション: ネットワークのセキュリティーを保護するには、単一のプロジェクトへのネットワークアクセスを制限する ロールベースのアクセス制御 (RBAC) ルールを作成します。
3.10.4.2. プロバイダーネットワークにプライマリーインターフェイスを持つクラスターのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform (RHOSP) プロバイダーネットワーク上にプライマリーネットワークインターフェイスを持つ OpenShift Container Platform クラスターをデプロイすることができます。
前提条件
- 「クラスターのインストールにおける RHOSP プロバイダーネットワーク要件」に記載されているとおりに、お使いの Red Hat OpenStack Platform (RHOSP) のデプロイメントが設定されています。
手順
-
テキストエディターで
install-config.yaml
ファイルを開きます。 -
platform.openstack.apiVIPs
プロパティーの値を API VIP の IP アドレスに設定します。 -
platform.openstack.ingressVIPs
プロパティーの値を Ingress VIP の IP アドレスに設定します。 -
platform.openstack.machinesSubnet
プロパティーの値をプロバイダーネットワークサブネットの UUID に設定します。 -
networking.machineNetwork.cidr
プロパティーの値をプロバイダーネットワークサブネットの CIDR ブロックに設定します。
platform.openstack.apiVIPs
プロパティーおよび platform.openstack.ingressVIPs
プロパティーはいずれも、networking.machineNetwork.cidr
ブロックから割り当てられていない IP アドレスである必要があります。
RHOSP プロバイダーネットワークに依存するクラスターのインストール設定ファイルのセクション
プライマリーネットワークインターフェイスにプロバイダーネットワークを使用している間は、platform.openstack.externalNetwork
パラメーターまたは platform.openstack.externalDNS
パラメーターを設定することはできません。
クラスターをデプロイする際に、インストーラーは install-config.yaml
ファイルを使用してプロバイダーネットワークにクラスターをデプロイします。
プロバイダーネットワークを含むネットワークを platform.openstack.additionalNetworkIDs
リストに追加できます。
クラスターのデプロイ後に、Pod を追加のネットワークに接続することができます。詳細は、複数ネットワークについて を参照してください。
3.10.5. RHOSP のカスタマイズされた install-config.yaml ファイルのサンプル リンクのコピーリンクがクリップボードにコピーされました!
次の install-config.yaml
ファイルの例は、すべての可能な Red Hat OpenStack Platform (RHOSP) カスタマイズオプションを示しています。
このサンプルファイルは参照用にのみ提供されます。インストールプログラムを使用して install-config.yaml
ファイルを取得する必要があります。
例3.2 シングルスタックの install-config.yaml
ファイルの例
例3.3 デュアルスタックの install-config.yaml
ファイルの例
3.10.6. デュアルスタックネットワークを使用したクラスターの設定 リンクのコピーリンクがクリップボードにコピーされました!
RHOSP 上にデュアルスタッククラスターを作成できます。ただし、デュアルスタック設定は、IPv4 および IPv6 サブネットを持つ RHOSP ネットワークを使用している場合にのみ有効になります。
RHOSP は、IPv4 シングルスタッククラスターからデュアルスタッククラスターネットワークへの変換をサポートしていません。
3.10.6.1. デュアルスタッククラスターの導入 リンクのコピーリンクがクリップボードにコピーされました!
手順
IPv4 および IPv6 サブネットを含むネットワークを作成します。
ipv6-ra-mode
およびipv6-address-mode
フィールドで使用可能なアドレスモードは、dhcpv6-stateful
、dhcpv6-stateless
、およびslaac
です。注記デュアルスタックネットワーク MTU は、IPv6 の最小 MTU (1280) と OVN-Kubernetes カプセル化オーバーヘッド (100) の両方に対応する必要があります。
注記DHCP はサブネット上で有効にする必要があります。
- API ポートと Ingress VIP ポートを作成します。
- IPv6 サブネットをルーターに追加して、ルーターのアドバタイズメントを有効にします。プロバイダーネットワークを使用している場合は、ネットワークを外部ゲートウェイとして追加することでルーターのアドバタイズメントを有効にすることができ、これにより外部接続も有効になります。
クラスターノードの IPv4 および IPv6 アドレスエンドポイントを設定するには、
install-config.yaml
ファイルを編集します。以下は、install-config.yaml
ファイルの例です。install-config.yaml
の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1 2 3
- IPv4 と IPv6 の両方のアドレスファミリーの IP アドレス範囲を指定する必要があります。
- 4
- クラスターにインターフェイスを提供するための Ingress VIP サービスの仮想 IP (VIP) アドレスエンドポイントを指定します。
- 5
- API VIP サービスの仮想 IP (VIP) アドレスエンドポイントを指定して、クラスターにインターフェイスを提供します。
- 6
- クラスター内のすべてのノードで使用されるデュアルスタックネットワークの詳細を指定します。
- 7
- このフィールドで指定されたサブネットの CIDR は、
network.machineNetwork
にリストされている CIDR と一致する必要があります。 - 8 9
name
またはid
のいずれか、または両方の値を指定できます。- 10
ControlPlanePort
フィールドでのnetwork
の指定は任意です。
あるいは、IPv6 プライマリーデュアルスタッククラスターが必要な場合は、以下の例に従って
install-config.yaml
ファイルを編集します。install-config.yaml
の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1 2 3
- IPv4 と IPv6 の両方のアドレスファミリーの IP アドレス範囲を指定する必要があります。
- 4
- クラスターにインターフェイスを提供するための Ingress VIP サービスの仮想 IP (VIP) アドレスエンドポイントを指定します。
- 5
- API VIP サービスの仮想 IP (VIP) アドレスエンドポイントを指定して、クラスターにインターフェイスを提供します。
- 6
- クラスター内のすべてのノードで使用されるデュアルスタックネットワークの詳細を指定します。
- 7
- このフィールドで指定されたサブネットの CIDR は、
network.machineNetwork
にリストされている CIDR と一致する必要があります。 - 8 9
name
またはid
のいずれか、または両方の値を指定できます。- 10
ControlPlanePort
フィールドでのnetwork
の指定は任意です。
隔離されたデュアルスタックネットワークでインストールホストを使用する場合、再起動時に IPv6 アドレスが正しく再割り当てされない場合があります。
Red Hat Enterprise Linux (RHEL) 8 でこの問題を解決するには、次の設定を含む /etc/NetworkManager/system-connections/required-rhel8-ipv6.conf
という名前のファイルを作成します。
[connection] type=ethernet [ipv6] addr-gen-mode=eui64 method=auto
[connection]
type=ethernet
[ipv6]
addr-gen-mode=eui64
method=auto
RHEL 9 でこの問題を解決するには、次の設定を含む /etc/NetworkManager/conf.d/required-rhel9-ipv6.conf
という名前のファイルを作成します。
[connection] ipv6.addr-gen-mode=0
[connection]
ipv6.addr-gen-mode=0
ファイルを作成して編集したら、インストールホストを再起動します。
3.10.7. ユーザー管理のロードバランサーを使用した OpenStack 上のクラスターのインストール設定 リンクのコピーリンクがクリップボードにコピーされました!
次の install-config.yaml
ファイルの例は、デフォルトの内部ロードバランサーではなく、ユーザー管理の外部ロードバランサーを使用するクラスターを設定する方法を示しています。