8.12. インストール設定ファイルの手動作成
クラスターをインストールするには、インストール設定ファイルを手動で作成する必要があります。
前提条件
- ローカルマシンには、インストールプログラムに提供する SSH 公開鍵があります。このキーは、デバッグおよび障害復旧のためにクラスターノードへの SSH 認証に使用されます。
- OpenShift Container Platform インストールプログラムおよびクラスターのプルシークレットを取得しています。
-
リポジトリーのミラーリングに使用するコマンドの出力で
imageContentSources
セクションを取得します。 - ミラーレジストリーの証明書の内容を取得する。
手順
必要なインストールアセットを保存するためのインストールディレクトリーを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir <installation_directory>
$ mkdir <installation_directory>
重要ディレクトリーを作成する必要があります。ブートストラップ X.509 証明書などの一部のインストールアセットの有効期限は短く設定されているため、インストールディレクトリーを再利用することができません。別のクラスターインストールの個別のファイルを再利用する必要がある場合は、それらをディレクトリーにコピーすることができます。ただし、インストールアセットのファイル名はリリース間で変更される可能性があります。インストールファイルを以前のバージョンの OpenShift Container Platform からコピーする場合は注意してコピーを行ってください。
提供されるサンプルの
install-config.yaml
ファイルテンプレートをカスタマイズし、これを<installation_directory>
に保存します。注記この設定ファイルの名前を
install-config.yaml
と付ける必要があります。-
docker.io
などの、RHCOS がデフォルトで信頼するレジストリーを使用しない限り、additionalTrustBundle
セクションにミラーリポジトリーの証明書の内容を指定する必要があります。ほとんどの場合、ミラーの証明書を指定する必要があります。 -
リポジトリーのミラーリングに使用するコマンドの出力の
imageContentSources
セクションを組み込む必要があります。
-
install-config.yaml
ファイルをバックアップし、複数のクラスターをインストールするのに使用できるようにします。重要install-config.yaml
ファイルは、インストールプロセスの次の手順で使用されます。この時点でこれをバックアップする必要があります。
8.12.1. VMware vSphere のサンプル install-config.yaml
ファイル
install-config.yaml
ファイルをカスタマイズして、OpenShift Container Platform クラスターのプラットフォームに関する詳細を指定するか、必要なパラメーターの値を変更することができます。
apiVersion: v1 baseDomain: example.com compute: name: worker replicas: 0 controlPlane: name: master replicas: 3 metadata: name: test platform: vsphere: vcenter: your.vcenter.server username: username password: password datacenter: datacenter defaultDatastore: datastore folder: "/<datacenter_name>/vm/<folder_name>/<subfolder_name>" resourcePool: "/<datacenter_name>/host/<cluster_name>/Resources/<resource_pool_name>" diskType: thin fips: false pullSecret: '{"auths":{"<local_registry>": {"auth": "<credentials>","email": "you@example.com"}}}' sshKey: 'ssh-ed25519 AAAA...' additionalTrustBundle: | -----BEGIN CERTIFICATE----- ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ -----END CERTIFICATE----- imageContentSources: - mirrors: - <mirror_host_name>:<mirror_port>/<repo_name>/release source: <source_image_1> - mirrors: - <mirror_host_name>:<mirror_port>/<repo_name>/release-images source: <source_image_2>
apiVersion: v1
baseDomain: example.com
compute:
name: worker
replicas: 0
controlPlane:
name: master
replicas: 3
metadata:
name: test
platform:
vsphere:
vcenter: your.vcenter.server
username: username
password: password
datacenter: datacenter
defaultDatastore: datastore
folder: "/<datacenter_name>/vm/<folder_name>/<subfolder_name>"
resourcePool: "/<datacenter_name>/host/<cluster_name>/Resources/<resource_pool_name>"
diskType: thin
fips: false
pullSecret: '{"auths":{"<local_registry>": {"auth": "<credentials>","email": "you@example.com"}}}'
sshKey: 'ssh-ed25519 AAAA...'
additionalTrustBundle: |
-----BEGIN CERTIFICATE-----
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
-----END CERTIFICATE-----
imageContentSources:
- mirrors:
- <mirror_host_name>:<mirror_port>/<repo_name>/release
source: <source_image_1>
- mirrors:
- <mirror_host_name>:<mirror_port>/<repo_name>/release-images
source: <source_image_2>
- 1
- クラスターのベースドメイン。すべての DNS レコードはこのベースのサブドメインである必要があり、クラスター名が含まれる必要があります。
- 2 4
controlPlane
セクションは単一マッピングですが、コンピュートセクションはマッピングのシーケンスになります。異なるデータ構造の要件を満たすには、compute
セクションの最初の行はハイフン (-
) で始まり、controlPlane
セクションの最初の行はハイフン以外で始まる必要があります。どちらのセクションも、現時点では単一のマシンプールを定義しますが、OpenShift Container Platform の今後のバージョンでは、インストール時の複数のコンピュートプールの定義をサポートする可能性があります。1 つのコントロールプレーンプールのみが使用されます。- 3
replicas
パラメーターの値を0
に設定する必要があります。このパラメーターはクラスターが作成し、管理するワーカーの数を制御します。これは、user-provisioned infrastructure を使用する場合にクラスターが実行しない機能です。OpenShift Container Platform のインストールが終了する前に、クラスターが使用するワーカーマシンを手動でデプロイする必要があります。- 5
- クラスターに追加するコントロールプレーンマシンの数。クラスターをこの値をクラスターの etcd エンドポイント数として使用するため、値はデプロイするコントロールプレーンマシンの数に一致する必要があります。
- 6
- DNS レコードに指定したクラスター名。
- 7
- vCenter サーバーの完全修飾ホスト名または IP アドレス。重要
Cluster Cloud Controller Manager Operator は、指定されたホスト名または IP アドレスに対して接続チェックを行います。到達可能な vCenter サーバーに対して、ホスト名または IP アドレスを指定していることを確認してください。存在しない vCenter サーバーにメタデータを提供すると、クラスターのインストールはブートストラップ段階で失敗します。
- 8
- サーバーにアクセスするユーザーの名前。
- 9
- vSphere ユーザーに関連付けられたパスワード。
- 10
- vSphere データセンター。
- 11
- 使用するデフォルトの vSphere データストア。
- 12
- オプションのパラメーター: インストーラーでプロビジョニングされるインフラストラクチャーの場合、インストールプログラムが仮想マシンを作成する既存フォルダーの絶対パス (例:
/<datacenter_name>/vm/<folder_name>/<subfolder_name>
)。この値を指定しない場合、インストールプログラムは、データセンターの仮想マシンフォルダーにインフラストラクチャー ID を使用して名前が付けられる上位レベルのフォルダーを作成します。クラスターのインフラストラクチャーを提供していて、thin
という名前のデフォルトのStorageClass
オブジェクトを使用したくない場合は、install-config.yaml
ファイルからfolder
パラメーターを省略できます。 - 13
- オプションのパラメーター: インストーラーでプロビジョニングされるインフラストラクチャーの場合、インストールプログラムが仮想マシンを作成する既存フォルダーの絶対パス (例:
/<datacenter_name>/vm/<folder_name>/<subfolder_name>
)。この値を指定しない場合、インストールプログラムは、データセンターの仮想マシンフォルダーにインフラストラクチャー ID を使用して名前が付けられる上位レベルのフォルダーを作成します。クラスターのインフラストラクチャーを提供する場合は、このパラメーターを省略します。 - 14
- vSphere ディスクのプロビジョニング方法。
- 15
- FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。重要
クラスターで FIPS モードを有効にするには、FIPS モードで動作するように設定された Red Hat Enterprise Linux (RHEL) コンピューターからインストールプログラムを実行する必要があります。RHEL での FIPS モードの設定の詳細は、FIPS モードでのシステムのインストール を参照してください。FIPS 検証済み/Modules In Process 暗号ライブラリーの使用は、
x86_64
、ppc64le
、およびs390x
アーキテクチャー上の OpenShift Container Platform デプロイメントでのみサポートされます。 - 16
<local_registry>
については、レジストリードメイン名と、ミラーレジストリーがコンテンツを提供するために使用するポートをオプションで指定します。例:registry.example.com
またはregistry.example.com:5000
<credentials>
について、ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードを指定します。- 17
- Red Hat Enterprise Linux CoreOS (RHCOS) の
core
ユーザーのデフォルト SSH キーの公開部分。注記インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、
ssh-agent
プロセスが使用する SSH キーを指定します。 - 18
- ミラーレジストリーに使用した証明書ファイルの内容を指定します。
- 19
- リポジトリーのミラーリングに使用するコマンドの出力の
imageContentSources
セクションを指定します。
8.12.2. インストール時のクラスター全体のプロキシーの設定
実稼働環境では、インターネットへの直接アクセスを拒否し、代わりに 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 apiVersion: v1 baseDomain: my.domain.com proxy: httpProxy: http://<username>:<pswd>@<ip>:<port> httpsProxy: https://<username>:<pswd>@<ip>:<port> noProxy: example.com additionalTrustBundle: | -----BEGIN CERTIFICATE----- <MY_TRUSTED_CA_CERT> -----END CERTIFICATE----- additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle>
apiVersion: v1 baseDomain: my.domain.com proxy: httpProxy: http://<username>:<pswd>@<ip>:<port>
1 httpsProxy: https://<username>:<pswd>@<ip>:<port>
2 noProxy: example.com
3 additionalTrustBundle: |
4 -----BEGIN CERTIFICATE----- <MY_TRUSTED_CA_CERT> -----END CERTIFICATE----- additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle>
5 - 1
- クラスター外の HTTP 接続を作成するために使用するプロキシー URL。URL スキームは
http
である必要があります。 - 2
- クラスター外で HTTPS 接続を作成するために使用するプロキシー URL。
- 3
- プロキシーから除外するための宛先ドメイン名、IP アドレス、または他のネットワーク CIDR のコンマ区切りのリスト。サブドメインのみと一致するように、ドメインの前に
.
を付けます。たとえば、.y.com
はx.y.com
に一致しますが、y.com
には一致しません。*
を使用し、すべての宛先のプロキシーをバイパスします。vCenter の IP アドレスと、そのマシンに使用する IP 範囲を含める必要があります。 - 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
コマンドを使用してデプロイメントを再起動してからデプロイメントを完了します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ./openshift-install wait-for install-complete --log-level debug
$ ./openshift-install wait-for install-complete --log-level debug
- ファイルを保存し、OpenShift Container Platform のインストール時にこれを参照します。
インストールプログラムは、指定の install-config.yaml
ファイルのプロキシー設定を使用する cluster
という名前のクラスター全体のプロキシーを作成します。プロキシー設定が指定されていない場合、cluster
Proxy
オブジェクトが依然として作成されますが、これには spec
がありません。
cluster
という名前の Proxy
オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。
8.12.3. VMware vCenter のリージョンとゾーンの設定
デフォルトのインストール設定ファイルを変更して、単一の VMware vCenter で実行される複数の vSphere データセンターに OpenShift Container Platform クラスターをデプロイできるようにします。
VMware vSphere のリージョンとゾーンの有効化は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
この例では、govc
コマンドを使用します。govc
コマンドは、VMware から入手できるオープンソースコマンドです。govc
コマンドは Red Hat からは入手できません。Red Hat サポートは govc
コマンドを保守しません。govc
のダウンロードおよびインストール手順は、VMware ドキュメントの Web サイト を参照してください。
前提条件
既存の
install-config.yaml
インストール設定ファイルがあります。重要VMware vCenter Server のデータセンターオブジェクトをプロビジョニングできるように、OpenShift Container Platform クラスターに少なくとも 1 つの障害ドメインを指定する必要があります。異なるデータセンター、クラスター、データストア、その他のコンポーネントに仮想マシンノードをプロビジョニングする必要がある場合は、複数の障害ドメインを指定することを検討してください。リージョンとゾーンを有効にするには、OpenShift Container Platform クラスターに複数の障害ドメインを定義する必要があります。
注記VMware vSphere プラットフォームに OpenShift Container Platform クラスターをインストールした後は、障害ドメインを変更できません。クラスターのインストール後に、障害ドメインを追加できます。
手順
次の
govc
コマンドラインツールコマンドを入力して、openshift-region
およびopenshift-zone
vCenter タグカテゴリーを作成します。重要openshift-region
およびopenshift-zone
vCenter タグカテゴリーに異なる名前を指定すると、OpenShift Container Platform クラスターのインストールは失敗します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow govc tags.category.create -d "OpenShift region" openshift-region
$ govc tags.category.create -d "OpenShift region" openshift-region
Copy to Clipboard Copied! Toggle word wrap Toggle overflow govc tags.category.create -d "OpenShift zone" openshift-zone
$ govc tags.category.create -d "OpenShift zone" openshift-zone
クラスターをデプロイする各リージョン vSphere データセンターのリージョンタグを作成するには、ターミナルで次のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow govc tags.create -c <region_tag_category> <region_tag>
$ govc tags.create -c <region_tag_category> <region_tag>
クラスターをデプロイする vSphere クラスターごとにゾーンタグを作成するには、次のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow govc tags.create -c <zone_tag_category> <zone_tag>
$ govc tags.create -c <zone_tag_category> <zone_tag>
次のコマンドを入力して、各 vCenter データセンターオブジェクトにリージョンタグをアタッチします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow govc tags.attach -c <region_tag_category> <region_tag_1> /<datacenter_1>
$ govc tags.attach -c <region_tag_category> <region_tag_1> /<datacenter_1>
次のコマンドを入力して、各 vCenter データセンターオブジェクトにゾーンタグをアタッチします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow govc tags.attach -c <zone_tag_category> <zone_tag_1> /<datacenter_1>/host/vcs-mdcnc-workload-1
$ govc tags.attach -c <zone_tag_category> <zone_tag_1> /<datacenter_1>/host/vcs-mdcnc-workload-1
- インストールプログラムが含まれるディレクトリーに移動し、選択したインストール要件に従ってクラスターデプロイメントを初期化します。
vSphere センターで定義された複数のデータセンターを含むサンプル install-config.yaml
ファイル
apiVersion: v1 baseDomain: example.com featureSet: TechPreviewNoUpgrade compute: name: worker replicas: 3 vsphere: zones: - "<machine_pool_zone_1>" - "<machine_pool_zone_2>" controlPlane: name: master replicas: 3 vsphere: zones: - "<machine_pool_zone_1>" - "<machine_pool_zone_2>" metadata: name: cluster platform: vsphere: vcenter: <vcenter_server> username: <username> password: <password> datacenter: datacenter defaultDatastore: datastore folder: "/<datacenter_name>/vm/<folder_name>/<subfolder_name>" cluster: cluster resourcePool: "/<datacenter_name>/host/<cluster_name>/Resources/<resource_pool_name>" diskType: thin failureDomains: - name: <machine_pool_zone_1> region: <region_tag_1> zone: <zone_tag_1> topology: datacenter: <datacenter1> computeCluster: "/<datacenter1>/host/<cluster1>" resourcePool: "/<datacenter1>/host/<cluster1>/Resources/<resourcePool1>" networks: - <VM_Network1_name> datastore: "/<datacenter1>/datastore/<datastore1>" - name: <machine_pool_zone_2> region: <region_tag_2> zone: <zone_tag_2> topology: datacenter: <datacenter2> computeCluster: "/<datacenter2>/host/<cluster2>" networks: - <VM_Network2_name> datastore: "/<datacenter2>/datastore/<datastore2>" resourcePool: "/<datacenter2>/host/<cluster2>/Resources/<resourcePool2>" folder: "/<datacenter2>/vm/<folder2>" # ...
apiVersion: v1
baseDomain: example.com
featureSet: TechPreviewNoUpgrade
compute:
name: worker
replicas: 3
vsphere:
zones:
- "<machine_pool_zone_1>"
- "<machine_pool_zone_2>"
controlPlane:
name: master
replicas: 3
vsphere:
zones:
- "<machine_pool_zone_1>"
- "<machine_pool_zone_2>"
metadata:
name: cluster
platform:
vsphere:
vcenter: <vcenter_server>
username: <username>
password: <password>
datacenter: datacenter
defaultDatastore: datastore
folder: "/<datacenter_name>/vm/<folder_name>/<subfolder_name>"
cluster: cluster
resourcePool: "/<datacenter_name>/host/<cluster_name>/Resources/<resource_pool_name>"
diskType: thin
failureDomains:
- name: <machine_pool_zone_1>
region: <region_tag_1>
zone: <zone_tag_1>
topology:
datacenter: <datacenter1>
computeCluster: "/<datacenter1>/host/<cluster1>"
resourcePool: "/<datacenter1>/host/<cluster1>/Resources/<resourcePool1>"
networks:
- <VM_Network1_name>
datastore: "/<datacenter1>/datastore/<datastore1>"
- name: <machine_pool_zone_2>
region: <region_tag_2>
zone: <zone_tag_2>
topology:
datacenter: <datacenter2>
computeCluster: "/<datacenter2>/host/<cluster2>"
networks:
- <VM_Network2_name>
datastore: "/<datacenter2>/datastore/<datastore2>"
resourcePool: "/<datacenter2>/host/<cluster2>/Resources/<resourcePool2>"
folder: "/<datacenter2>/vm/<folder2>"
# ...
- 1
- VMware vSphere リージョンおよびゾーン有効化機能を使用できるように、このパラメーターの値として
TechPreviewNoUpgrade
を設定するように定義する必要があります。 - 2 3
- vCenter クラスターを指定するためのオプションのパラメーター。ゾーンを定義するには、
openshift-zone
タグカテゴリーのタグを使用します。このパラメーターを定義しない場合、ノードは定義されているすべての障害ドメインに分散されます。 - 4 5 6 7 8 9 10 11
- デフォルトの vCenter トポロジー。インストールプログラムは、このトポロジー情報を使用してブートストラップノードをデプロイメントします。さらに、トポロジーは vSphere 永続ボリュームのデフォルトデータストアを定義します。
- 12
- リージョンとゾーン間の関係を確立します。障害ドメインは、datastore オブジェクトなどの vCenter オブジェクトを使用して定義します。障害ドメインは、OpenShift Container Platform クラスターノードの vCenter の場所を定義します。このパラメーターを定義しない場合、インストールプログラムはデフォルトの vCenter トポロジーを使用します。
- 13
- 障害ドメインの名前を定義します。各障害ドメインは
zones
パラメーターで参照され、マシンプールの範囲が障害ドメインに設定されます。 - 14
- リージョンを定義するには、
openshift-region
タグカテゴリーのタグを使用します。タグは vCenter データセンターに添付する必要があります。 - 15
- ゾーンを定義するには、
openshift-zone
タグカテゴリーのタグを使用します。タグは vCenter データセンターに添付する必要があります。 - 16
- 障害ドメインに関連付けられた vCenter リソースを指定します。
- 17
- 障害ドメインに関連付けられた vSphere データセンターを定義するためのオプションのパラメーター。このパラメーターを定義しない場合、インストールプログラムはデフォルトの vCenter トポロジーを使用します。
- 18
- 障害ドメインに関連付けられた計算クラスターの絶対ファイルパスを指定するためのオプションのパラメーター。このパラメーターを定義しない場合、インストールプログラムはデフォルトの vCenter トポロジーを使用します。
- 19
- インストーラーがプロビジョニングするインフラストラクチャーのオプションのパラメーター。このパラメーターは、インストールプログラムが仮想マシンを作成する既存のリソースプールの絶対パスを設定します (例:
/<datacenter_name>/host/<cluster_name>/Resources/<resource_pool_name>/<optional_nested_resource_pool_name>
)。値を指定しない場合、リソースはクラスターのルート/example_datacenter/host/example_cluster/Resources
にインストールされます。 - 20
- 設定した仮想 IP アドレスと DNS レコードを含む vCenter インスタンス内のネットワークをリストするオプションのパラメーター。このパラメーターを定義しない場合、インストールプログラムはデフォルトの vCenter トポロジーを使用します。
- 21
- ボリュームのプロビジョニングに使用するデータストアを指定するためのオプションのパラメーター。このパラメーターを定義しない場合、インストールプログラムはデフォルトの vCenter トポロジーを使用します。