4.13. インストール設定ファイルの作成
Red Hat OpenStack Platform (RHOSP) にインストールする OpenShift Container Platform クラスターをカスタマイズできます。
前提条件
- OpenShift Container Platform インストールプログラムおよびクラスターのプルシークレットがある。
手順
install-config.yamlファイルを作成します。インストールプログラムが含まれるディレクトリーに切り替え、以下のコマンドを実行します。
$ ./openshift-install create install-config --dir <installation_directory>1 - 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ファイルはインストールプロセス時に使用されます。このファイルを再利用する必要がある場合は、この段階でこれをバックアップしてください。
これで、指定したディレクトリーに install-config.yaml ファイルが作成されます。
4.13.1. 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 の数を慎重に検討する必要があるため、クラスターのインストール時に範囲を決定するための直接的なガイダンスを提供していません。
4.13.2. RHOSP のカスタマイズされた install-config.yaml ファイルのサンプル リンクのコピーリンクがクリップボードにコピーされました!
次の install-config.yaml ファイルの例は、すべての可能な Red Hat OpenStack Platform (RHOSP) カスタマイズオプションを示しています。
このサンプルファイルは参照用にのみ提供されます。インストールプログラムを使用して install-config.yaml ファイルを取得する必要があります。
例4.1 シングルスタックの install-config.yaml ファイルの例
apiVersion: v1
baseDomain: example.com
controlPlane:
name: master
platform: {}
replicas: 3
compute:
- name: worker
platform:
openstack:
type: ml.large
replicas: 3
metadata:
name: example
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
machineNetwork:
- cidr: 10.0.0.0/16
serviceNetwork:
- 172.30.0.0/16
networkType: OVNKubernetes
platform:
openstack:
cloud: mycloud
externalNetwork: external
computeFlavor: m1.xlarge
apiFloatingIP: 128.0.0.1
fips: false
pullSecret: '{"auths": ...}'
sshKey: ssh-ed25519 AAAA...
例4.2 デュアルスタックの install-config.yaml ファイルの例
apiVersion: v1
baseDomain: example.com
controlPlane:
name: master
platform: {}
replicas: 3
compute:
- name: worker
platform:
openstack:
type: ml.large
replicas: 3
metadata:
name: example
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
- cidr: fd01::/48
hostPrefix: 64
machineNetwork:
- cidr: 192.168.25.0/24
- cidr: fd2e:6f44:5dd8:c956::/64
serviceNetwork:
- 172.30.0.0/16
- fd02::/112
networkType: OVNKubernetes
platform:
openstack:
cloud: mycloud
externalNetwork: external
computeFlavor: m1.xlarge
apiVIPs:
- 192.168.25.10
- fd2e:6f44:5dd8:c956:f816:3eff:fec3:5955
ingressVIPs:
- 192.168.25.132
- fd2e:6f44:5dd8:c956:f816:3eff:fe40:aecb
controlPlanePort:
fixedIPs:
- subnet:
name: openshift-dual4
- subnet:
name: openshift-dual6
network:
name: openshift-dual
fips: false
pullSecret: '{"auths": ...}'
sshKey: ssh-ed25519 AAAA...
4.13.3. マシンのカスタムサブネットの設定 リンクのコピーリンクがクリップボードにコピーされました!
インストールプログラムがデフォルトで使用する IP 範囲は、OpenShift Container Platform のインストール時に作成する Neutron サブネットと一致しない可能性があります。必要な場合は、インストール設定ファイルを編集して、新規マシンの CIDR 値を更新します。
前提条件
-
OpenShift Container Platform インストールプログラムで生成された
install-config.yamlファイルがあります。 - Python 3 がインストールされている。
手順
-
コマンドラインで、
install-config.yamlファイルとinventory.yamlファイルが含まれるディレクトリーを参照します。 そのディレクトリーからスクリプトを実行して
install-config.yamlファイルを編集するか、手動でファイルを更新します。スクリプトを使用して値を設定するには、次のコマンドを実行します。
$ python -c 'import yaml path = "install-config.yaml" data = yaml.safe_load(open(path)) inventory = yaml.safe_load(open("inventory.yaml"))["all"]["hosts"]["localhost"] machine_net = [{"cidr": inventory["os_subnet_range"]}] api_vips = [inventory["os_apiVIP"]] ingress_vips = [inventory["os_ingressVIP"]] ctrl_plane_port = {"network": {"name": inventory["os_network"]}, "fixedIPs": [{"subnet": {"name": inventory["os_subnet"]}}]} if inventory.get("os_subnet6"):1 machine_net.append({"cidr": inventory["os_subnet6_range"]}) api_vips.append(inventory["os_apiVIP6"]) ingress_vips.append(inventory["os_ingressVIP6"]) data["networking"]["networkType"] = "OVNKubernetes" data["networking"]["clusterNetwork"].append({"cidr": inventory["cluster_network6_cidr"], "hostPrefix": inventory["cluster_network6_prefix"]}) data["networking"]["serviceNetwork"].append(inventory["service_subnet6_range"]) ctrl_plane_port["fixedIPs"].append({"subnet": {"name": inventory["os_subnet6"]}}) data["networking"]["machineNetwork"] = machine_net data["platform"]["openstack"]["apiVIPs"] = api_vips data["platform"]["openstack"]["ingressVIPs"] = ingress_vips data["platform"]["openstack"]["controlPlanePort"] = ctrl_plane_port del data["platform"]["openstack"]["externalDNS"] open(path, "w").write(yaml.dump(data, default_flow_style=False))'- 1
- デュアルスタック (IPv4/IPv6) 環境に適用されます。
4.13.4. コンピュートマシンプールを空にする リンクのコピーリンクがクリップボードにコピーされました!
独自のインフラストラクチャーを使用するインストールを実行するには、インストール設定ファイルのコンピュートマシンの数をゼロに設定します。その後、これらのマシンを手動で作成します。
前提条件
-
OpenShift Container Platform インストールプログラムで生成された
install-config.yamlファイルがあります。
手順
-
コマンドラインで、
install-config.yamlが含まれるディレクトリーを参照します。 そのディレクトリーからスクリプトを実行して
install-config.yamlファイルを編集するか、手動でファイルを更新します。スクリプトを使用して値を設定するには、以下を実行します。
$ python -c ' import yaml; path = "install-config.yaml"; data = yaml.safe_load(open(path)); data["compute"][0]["replicas"] = 0; open(path, "w").write(yaml.dump(data, default_flow_style=False))'-
値を手動で設定するには、ファイルを開き、
compute.<first entry>.replicasの値を0に設定します。
4.13.5. 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 のドキュメント を参照してください。
4.13.5.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- "openshift" という名前のプロジェクトのサブネットを作成するには、以下のコマンドを入力します。
$ openstack subnet create --project openshiftRHOSP でのネットワークの作成に関する詳細は、プロバイダーネットワークに関するドキュメント を参照してください。
クラスターが
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 ...- オプション: ネットワークのセキュリティーを保護するには、単一のプロジェクトへのネットワークアクセスを制限する ロールベースのアクセス制御 (RBAC) ルールを作成します。
4.13.5.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:
apiVIPs:
- 192.0.2.13
ingressVIPs:
- 192.0.2.23
machinesSubnet: fa806b2f-ac49-4bce-b9db-124bc64209bf
# ...
networking:
machineNetwork:
- cidr: 192.0.2.0/24
プライマリーネットワークインターフェイスにプロバイダーネットワークを使用している間は、platform.openstack.externalNetwork パラメーターまたは platform.openstack.externalDNS パラメーターを設定することはできません。
クラスターをデプロイする際に、インストーラーは install-config.yaml ファイルを使用してプロバイダーネットワークにクラスターをデプロイします。
プロバイダーネットワークを含むネットワークを platform.openstack.additionalNetworkIDs リストに追加できます。
クラスターのデプロイ後に、Pod を追加のネットワークに接続することができます。詳細は、複数ネットワークについて を参照してください。