9.7. インストール設定ファイルの手動作成
クラスターをインストールするには、インストール設定ファイルを手動で作成する必要があります。
前提条件
- OpenShift Container Platform インストールプログラムおよびクラスターのプルシークレットを取得しています。
-
レジストリーをミラーリングしたときに作成された
imageContentSourcePolicy.yaml
ファイルを用意する。 - ミラーレジストリーの証明書の内容を取得している。
手順
必要なインストールアセットを保存するためのインストールディレクトリーを作成します。
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
と付ける必要があります。サンプルテンプレートをカスタマイズするときは、ネットワークが制限された環境でのインストールに必要な情報を必ず指定してください。
pullSecret
の値を更新して、レジストリーの認証情報を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow pullSecret: '{"auths":{"<mirror_host_name>:5000": {"auth": "<credentials>","email": "you@example.com"}}}'
pullSecret: '{"auths":{"<mirror_host_name>:5000": {"auth": "<credentials>","email": "you@example.com"}}}'
<mirror_host_name>
の場合、ミラーレジストリーの証明書で指定したレジストリードメイン名を指定し、<credentials>
の場合は、ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードを指定します。additionalTrustBundle
パラメーターおよび値を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow additionalTrustBundle: | -----BEGIN CERTIFICATE----- ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ -----END CERTIFICATE-----
additionalTrustBundle: | -----BEGIN CERTIFICATE----- ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ -----END CERTIFICATE-----
この値は、ミラーレジストリーに使用した証明書ファイルの内容である必要があります。証明書ファイルは、既存の信頼できる認証局、またはミラーレジストリー用に生成した自己署名証明書のいずれかです。
親の
platform.ibmcloud
フィールドで、クラスターをインストールする VPC のネットワークとサブネットを定義します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow vpcName: <existing_vpc> controlPlaneSubnets: <control_plane_subnet> computeSubnets: <compute_subnet>
vpcName: <existing_vpc> controlPlaneSubnets: <control_plane_subnet> computeSubnets: <compute_subnet>
platform.ibmcloud.vpcName
には、既存の IBM Cloud Virtual Private Cloud (VPC) ネットワークの名前を指定します。platform.ibmcloud.controlPlaneSubnets
およびplatform.ibmcloud.computeSubnets
には、それぞれコントロールプレーンマシンおよびコンピュートマシンをデプロイする既存のサブネットを指定します。次の YAML の抜粋のようなイメージコンテンツリソースを追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow imageContentSources: - mirrors: - <mirror_host_name>:5000/<repo_name>/release source: quay.io/openshift-release-dev/ocp-release - mirrors: - <mirror_host_name>:5000/<repo_name>/release source: registry.redhat.io/ocp/release
imageContentSources: - mirrors: - <mirror_host_name>:5000/<repo_name>/release source: quay.io/openshift-release-dev/ocp-release - mirrors: - <mirror_host_name>:5000/<repo_name>/release source: registry.redhat.io/ocp/release
これらの値には、レジストリーをミラーリングしたときに作成された
imageContentSourcePolicy.yaml
ファイルを使用します。ネットワーク制限により、必要な IBM Cloud® サービスにアクセスするためのパブリックエンドポイントの使用が制限されている場合は、
serviceEndpoints
スタンザをplatform.ibmcloud
に追加して、代替サービスエンドポイントを指定します。注記指定できる代替サービスエンドポイントは、各サービスに 1 つだけです。
代替サービスエンドポイントの使用例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ... ...
# ... serviceEndpoints: - name: IAM url: <iam_alternate_endpoint_url> - name: VPC url: <vpc_alternate_endpoint_url> - name: ResourceController url: <resource_controller_alternate_endpoint_url> - name: ResourceManager url: <resource_manager_alternate_endpoint_url> - name: DNSServices url: <dns_services_alternate_endpoint_url> - name: COS url: <cos_alternate_endpoint_url> - name: GlobalSearch url: <global_search_alternate_endpoint_url> - name: GlobalTagging url: <global_tagging_alternate_endpoint_url> # ...
オプション: パブリッシュストラテジーを
Internal
に設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow publish: Internal
publish: Internal
このオプションを設定すると、内部 Ingress コントローラーおよびプライベートロードバランサーを作成します。
注記デフォルト値の
External
を使用する場合、IBM Cloud® Internet Services (CIS) のパブリックエンドポイントにネットワークがアクセスできる必要があります。CIS は Virtual Private Endpoints に対して有効ではありません。
install-config.yaml
ファイルをバックアップし、複数のクラスターをインストールするのに使用できるようにします。重要install-config.yaml
ファイルは、インストールプロセスの次の手順で使用されます。この時点でこれをバックアップする必要があります。
9.7.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 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
には一致しません。*
を使用し、すべての宛先のプロキシーをバイパスします。 - 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
config map を参照するための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
オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。
9.7.2. クラスターインストールの最小リソース要件
それぞれのクラスターマシンは、以下の最小要件を満たしている必要があります。
マシン | オペレーティングシステム | 仮想 CPU | 仮想 RAM | ストレージ | 1 秒あたりの入出力 (IOPS) |
---|---|---|---|---|---|
ブートストラップ | RHCOS | 4 | 16 GB | 100 GB | 300 |
コントロールプレーン | RHCOS | 4 | 16 GB | 100 GB | 300 |
Compute | RHCOS | 2 | 8 GB | 100 GB | 300 |
OpenShift Container Platform バージョン 4.13 の時点で、RHCOS は RHEL バージョン 9.2 に基づいており、マイクロアーキテクチャーの要件を更新します。次のリストには、各アーキテクチャーに必要な最小限の命令セットアーキテクチャー (ISA) が含まれています。
- x86-64 アーキテクチャーには x86-64-v2 ISA が必要
- ARM64 アーキテクチャーには ARMv8.0-A ISA が必要
- IBM Power アーキテクチャーには Power 9 ISA が必要
- s390x アーキテクチャーには z14 ISA が必要
詳細は、アーキテクチャー (RHEL ドキュメント) を参照してください。
プラットフォームのインスタンスタイプがクラスターマシンの最小要件を満たす場合、これは OpenShift Container Platform で使用することがサポートされます。
9.7.3. IBM Cloud のテスト済みインスタンスタイプ
次の IBM Cloud® インスタンスタイプは、OpenShift Container Platform でテストされています。
例9.1 マシンのシリーズ
-
bx2-8x32
-
bx2d-4x16
-
bx3d-4x20
-
cx2-8x16
-
cx2d-4x8
-
cx3d-8x20
-
gx2-8x64x1v100
-
gx3-16x80x1l4
-
gx3d-160x1792x8h100
-
mx2-8x64
-
mx2d-4x32
-
mx3d-4x40
-
ox2-8x64
-
ux2d-2x56
-
vx2d-4x56
9.7.4. IBM Cloud 用にカスタマイズされた install-config.yaml ファイルのサンプル
install-config.yaml
ファイルをカスタマイズして、OpenShift Container Platform クラスターのプラットフォームに関する詳細を指定するか、必要なパラメーターの値を変更することができます。
このサンプルの YAML ファイルは参照用にのみ提供されます。インストールプログラムを使用して install-config.yaml
ファイルを取得し、変更する必要があります。
apiVersion: v1 baseDomain: example.com controlPlane: hyperthreading: Enabled name: master platform: ibm-cloud: {} replicas: 3 compute: - hyperthreading: Enabled name: worker platform: ibmcloud: {} replicas: 3 metadata: name: test-cluster networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 machineNetwork: - cidr: 10.0.0.0/16 networkType: OVNKubernetes serviceNetwork: - 172.30.0.0/16 platform: ibmcloud: region: us-east resourceGroupName: us-east-example-cluster-rg serviceEndpoints: - name: IAM url: https://private.us-east.iam.cloud.ibm.com - name: VPC url: https://us-east.private.iaas.cloud.ibm.com/v1 - name: ResourceController url: https://private.us-east.resource-controller.cloud.ibm.com - name: ResourceManager url: https://private.us-east.resource-controller.cloud.ibm.com - name: DNSServices url: https://api.private.dns-svcs.cloud.ibm.com/v1 - name: COS url: https://s3.direct.us-east.cloud-object-storage.appdomain.cloud - name: GlobalSearch url: https://api.private.global-search-tagging.cloud.ibm.com - name: GlobalTagging url: https://tags.private.global-search-tagging.cloud.ibm.com networkResourceGroupName: us-east-example-existing-network-rg vpcName: us-east-example-network-1 controlPlaneSubnets: - us-east-example-network-1-cp-us-east-1 - us-east-example-network-1-cp-us-east-2 - us-east-example-network-1-cp-us-east-3 computeSubnets: - us-east-example-network-1-compute-us-east-1 - us-east-example-network-1-compute-us-east-2 - us-east-example-network-1-compute-us-east-3 credentialsMode: Manual pullSecret: '{"auths":{"<local_registry>": {"auth": "<credentials>","email": "you@example.com"}}}' fips: false sshKey: ssh-ed25519 AAAA... additionalTrustBundle: | -----BEGIN CERTIFICATE----- <MY_TRUSTED_CA_CERT> -----END CERTIFICATE----- imageContentSources: - mirrors: - <local_registry>/<local_repository_name>/release source: quay.io/openshift-release-dev/ocp-release - mirrors: - <local_registry>/<local_repository_name>/release source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
apiVersion: v1
baseDomain: example.com
controlPlane:
hyperthreading: Enabled
name: master
platform:
ibm-cloud: {}
replicas: 3
compute:
- hyperthreading: Enabled
name: worker
platform:
ibmcloud: {}
replicas: 3
metadata:
name: test-cluster
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
machineNetwork:
- cidr: 10.0.0.0/16
networkType: OVNKubernetes
serviceNetwork:
- 172.30.0.0/16
platform:
ibmcloud:
region: us-east
resourceGroupName: us-east-example-cluster-rg
serviceEndpoints:
- name: IAM
url: https://private.us-east.iam.cloud.ibm.com
- name: VPC
url: https://us-east.private.iaas.cloud.ibm.com/v1
- name: ResourceController
url: https://private.us-east.resource-controller.cloud.ibm.com
- name: ResourceManager
url: https://private.us-east.resource-controller.cloud.ibm.com
- name: DNSServices
url: https://api.private.dns-svcs.cloud.ibm.com/v1
- name: COS
url: https://s3.direct.us-east.cloud-object-storage.appdomain.cloud
- name: GlobalSearch
url: https://api.private.global-search-tagging.cloud.ibm.com
- name: GlobalTagging
url: https://tags.private.global-search-tagging.cloud.ibm.com
networkResourceGroupName: us-east-example-existing-network-rg
vpcName: us-east-example-network-1
controlPlaneSubnets:
- us-east-example-network-1-cp-us-east-1
- us-east-example-network-1-cp-us-east-2
- us-east-example-network-1-cp-us-east-3
computeSubnets:
- us-east-example-network-1-compute-us-east-1
- us-east-example-network-1-compute-us-east-2
- us-east-example-network-1-compute-us-east-3
credentialsMode: Manual
pullSecret: '{"auths":{"<local_registry>": {"auth": "<credentials>","email": "you@example.com"}}}'
fips: false
sshKey: ssh-ed25519 AAAA...
additionalTrustBundle: |
-----BEGIN CERTIFICATE-----
<MY_TRUSTED_CA_CERT>
-----END CERTIFICATE-----
imageContentSources:
- mirrors:
- <local_registry>/<local_repository_name>/release
source: quay.io/openshift-release-dev/ocp-release
- mirrors:
- <local_registry>/<local_repository_name>/release
source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
- 1 8 12
- 必須。
- 2 5
- これらのパラメーターおよび値を指定しない場合、インストールプログラムはデフォルトの値を指定します。
- 3 6
controlPlane
セクションは単一マッピングですが、compute
セクションはマッピングのシーケンスになります。複数の異なるデータ構造の要件を満たすには、compute
セクションの最初の行はハイフン-
で始め、controlPlane
セクションの最初の行はハイフンで始めることができません。1 つのコントロールプレーンプールのみが使用されます。- 4 7
- ハイパースレッディングとも呼ばれる同時マルチスレッドを有効または無効にします。デフォルトでは、同時スレッドはマシンのコアのパフォーマンスを上げるために有効にされます。パラメーター値を
Disabled
に設定するとこれを無効にすることができます。一部のクラスターマシンで同時マルチスレッドを無効にする場合は、これをすべてのクラスターマシンで無効にする必要があります。重要同時スレッドを無効にする場合は、容量計画においてマシンパフォーマンスの大幅な低下が考慮に入れられていることを確認します。同時マルチスレッドを無効にする場合は、マシンに対して
n1-standard-8
などの大規模なマシンタイプを使用します。 - 9
- マシン CIDR にはコンピュートマシンおよびコントロールプレーンマシンのサブネットが含まれている必要があります。
- 10
- CIDR には、
platform.ibmcloud.controlPlaneSubnets
およびplatform.ibmcloud.computeSubnets
で定義されたサブネットが含まれている必要があります。 - 11
- インストールするクラスターネットワークプラグイン。サポートされる値はデフォルト値の
OVNKubernetes
のみです。 - 13
- 既存のリソースグループの名前。すべての installer-provisioned クラスターリソースは、このリソースグループにデプロイされます。定義されていない場合は、クラスターに新しいリソースグループが作成されます。
- 14
- VPC のネットワーク制限に基づいて、必要に応じて代替サービスエンドポイントを指定します。これにより、サービスのデフォルトのパブリックエンドポイントがオーバーライドされます。
- 15
- 既存の Virtual Private Cloud (VPC) を含むリソースグループの名前を指定します。既存の VPC およびサブネットはこのリソースグループにある必要があります。クラスターはこの VPC にインストールされます。
- 16
- 既存 VPC の名前を指定します。
- 17
- コントロールプレーンマシンをデプロイする既存のサブネット名を指定します。サブネットは、指定した VPC に属している必要があります。リージョン内の各アベイラビリティーゾーンのサブネットを指定します。
- 18
- コンピュートマシンをデプロイする既存のサブネット名を指定します。サブネットは、指定した VPC に属している必要があります。リージョン内の各アベイラビリティーゾーンのサブネットを指定します。
- 19
<local_registry>
には、レジストリードメイン名と、ミラーレジストリーがコンテンツを提供するために使用するポートをオプションで指定します。例: registry.example.com または registry.example.com:5000<credentials>
について、ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードを指定します。- 20
- FIPS モードを有効または無効にします。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。重要
プロセス暗号化ライブラリーでの FIPS 検証済みまたはモジュールの使用は、
x86_64
アーキテクチャーでの OpenShift Container Platform デプロイメントでのみサポートされます。 - 21
- オプション: クラスター内のマシンにアクセスするのに使用する
sshKey
値をオプションで指定できます。 - 22
- ミラーレジストリーに使用した証明書ファイルの内容を指定します。
- 23
- レジストリーをミラーリングしたときに作成された
imageContentSourcePolicy.yaml
ファイルのmetadata.name: release-0
セクションからこれらの値を指定します。注記インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、
ssh-agent
プロセスが使用する SSH キーを指定します。