7.5. Google Cloud のインストールファイルの作成
OpenShift Container Platform on Google Cloud を共有 VPC にインストールするには、install-config.yaml ファイルを生成し、クラスターが正しい VPC ネットワーク、DNS ゾーン、およびプロジェクト名を使用するように変更する必要があります。
7.5.1. インストール設定ファイルの手動作成 リンクのコピーリンクがクリップボードにコピーされました!
クラスターをインストールするには、インストール設定ファイルを手動で作成する必要があります。
前提条件
- インストールプログラムで使用するための SSH 公開鍵がローカルマシン上に存在する。この鍵は、デバッグや障害復旧のために、クラスターノードへの SSH 認証に使用できます。
- OpenShift Container Platform インストールプログラムとクラスターのプルシークレットを取得している。
手順
必要なインストールアセットを保存するためのインストールディレクトリーを作成します。
$ mkdir <installation_directory>重要このディレクトリーは必ず作成してください。ブートストラップ X.509 証明書などの一部のインストールアセットは、有効期限が短いため、インストールディレクトリーを再利用しないでください。別のクラスターインストールの個別のファイルを再利用する必要がある場合は、それらをディレクトリーにコピーすることができます。ただし、インストールアセットのファイル名はリリース間で変更される可能性があります。インストールファイルを以前のバージョンの OpenShift Container Platform からコピーする場合は注意してください。
提供されているサンプルの
install-config.yamlファイルテンプレートをカスタマイズし、ファイルを<installation_directory>に保存します。注記この設定ファイルの名前を
install-config.yamlと付ける必要があります。多くのクラスターのインストールに使用できるように、
install-config.yamlファイルをバックアップします。重要インストールプロセスの次のステップで
install-config.yamlファイルを使用するため、今すぐこのファイルをバックアップしてください。
7.5.2. Shielded VM の有効化 リンクのコピーリンクがクリップボードにコピーされました!
クラスターをインストールする場合は、Shielded VM を使用できます。Shielded VM には、セキュアブート、ファームウェアと整合性の監視、ルートキット検出などの追加のセキュリティー機能があります。詳細は、Shielded VM に関する Google のドキュメントを参照してください。
Shielded VM は現在、64 ビット ARM インフラストラクチャーを備えたクラスターではサポートされていません。
手順
クラスターをデプロイする前に、テキストエディターを使用して、
install-config.yamlファイルを編集し、次のいずれかのスタンザを追加します。コントロールプレーンマシンのみに Shielded VM を使用するには:
controlPlane: platform: gcp: secureBoot: Enabledコンピューティングマシンのみに Shielded VM を使用するには:
compute: - platform: gcp: secureBoot: Enabledすべてのマシンに Shielded VM を使用するには:
platform: gcp: defaultMachinePlatform: secureBoot: Enabled
7.5.3. Confidential 仮想マシンの有効化 リンクのコピーリンクがクリップボードにコピーされました!
クラスターをインストールする場合は、Confidential 仮想マシンを使用できます。Confidential 仮想マシンは処理中のデータを暗号化します。詳細は、Confidential Computing に関する Google のドキュメントを参照してください。Confidential 仮想マシンと Shielded VM を同時に有効にすることができますが、それらは互いに依存していません。
現在、Confidential 仮想マシンは 64 ビット ARM アーキテクチャーではサポートされていません。
手順
クラスターをデプロイする前に、テキストエディターを使用して、
install-config.yamlファイルを編集し、次のいずれかのスタンザを追加します。コントロールプレーンマシンのみに Confidential 仮想マシンを使用するには:
controlPlane: platform: gcp: confidentialCompute: AMDEncryptedVirtualizationNestedPaging1 type: n2d-standard-82 onHostMaintenance: Terminate3 - 1
- AMD Secure Encrypted Virtualization Secure Nested Paging (AMD SEV-SNP) を使用して Confidential 仮想マシンを有効にします。利用可能なオプションの詳細は、「追加の Google Cloud 設定パラメーター」を参照してください。
- 2
- Confidential 仮想マシンをサポートするマシンタイプを指定します。Confidential 仮想マシンには、N2D、C2D、C3D、または C3 シリーズのマシンタイプが必要です。サポートされているマシンタイプの詳細は、サポートされているオペレーティングシステムとマシンタイプ を参照してください。
- 3
- ハードウェアやソフトウェアの更新など、ホストのメンテナンスイベント中の VM の動作を指定します。Confidential 仮想マシンを使用するマシンの場合は、この値を
Terminateに設定する必要があります。これにより、VM が停止します。Confidential 仮想マシンはライブ VM 移行をサポートしていません。
コンピューティングマシンのみに Confidential 仮想マシンを使用するには:
compute: - platform: gcp: confidentialCompute: AMDEncryptedVirtualizationNestedPaging type: n2d-standard-8 onHostMaintenance: Terminateすべてのマシンに Confidential 仮想マシンを使用するには:
platform: gcp: defaultMachinePlatform: confidentialCompute: AMDEncryptedVirtualizationNestedPaging type: n2d-standard-8 onHostMaintenance: Terminate
7.5.4. ユーザー管理 DNS の有効化 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトの cluster-provisioned DNS ソリューションの代わりに、ユーザーが管理するドメインネームサーバー (DNS) ソリューションを使用してクラスターをインストールできます。その結果、クラウドの DNS にレコードを追加するのではなく、独自のシステムで API および Ingress DNS レコードを管理できるようになります。たとえば、組織のセキュリティーポリシーにより、Google Cloud DNS などのパブリック DNS サービスの使用が許可されていない場合があります。このようなシナリオでは、独自の DNS サービスを使用してパブリック DNS サービスをバイパスし、API および Ingress サービスの IP アドレスに対して独自の DNS を管理できます。
インストール中にユーザー管理 DNS を有効にすると、インストールプログラムは、クラスター内のみで API および Ingress サービスの DNS レコードをプロビジョニングします。クラスター外部からのアクセスを確保するには、インストール後に API および Ingress サービス用に選択した外部 DNS サービスで DNS レコードをプロビジョニングする必要があります。
user-provisioned DNS は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
-
jqパッケージがインストールされている。
手順
クラスターをデプロイする前に、テキストエディターを使用して
install-config.yamlファイルを開き、次のスタンザを追加します。ユーザー管理 DNS を有効にする場合:
featureSet: CustomNoUpgrade featureGates: ["GCPClusterHostedDNS=true"] # ... platform: gcp: userProvisionedDNS: Enabled1 - 1
- DNS 管理を有効にします。
API サーバーおよび Ingress サービスの DNS レコードをプロビジョニングする方法は、「独自の DNS レコードのプロビジョニング」を参照してください。
7.5.5. 共有 VPC インストール用にカスタマイズされた install-config.yaml ファイルのサンプル リンクのコピーリンクがクリップボードにコピーされました!
共有 VPC を使用して OpenShift Container Platform を Google Cloud にインストールするために必要な設定パラメーターがいくつかあります。以下は、これらのフィールドを示すサンプルの install-config.yaml ファイルです。
このサンプルの YAML ファイルは参照用にのみ提供されます。このファイルを変更して、ご使用の環境とクラスターに適した値にする必要があります。
apiVersion: v1
baseDomain: example.com
credentialsMode: Passthrough
metadata:
name: cluster_name
platform:
gcp:
computeSubnet: shared-vpc-subnet-1
controlPlaneSubnet: shared-vpc-subnet-2
network: shared-vpc
networkProjectID: host-project-name
projectID: service-project-name
region: us-east1
defaultMachinePlatform:
tags:
- global-tag1
controlPlane:
name: master
platform:
gcp:
tags:
- control-plane-tag1
type: n2-standard-4
zones:
- us-central1-a
- us-central1-c
replicas: 3
compute:
- name: worker
platform:
gcp:
tags:
- compute-tag1
type: n2-standard-4
zones:
- us-central1-a
- us-central1-c
replicas: 3
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
machineNetwork:
- cidr: 10.0.0.0/16
pullSecret: '{"auths": ...}'
sshKey: ssh-ed25519 AAAA...
- 1
credentialsModeはPassthroughまたはManualに設定する必要があります。サービスアカウントに必要な Google Cloud 権限は、「前提条件」セクションを参照してください。- 2
- コンピュートマシンが使用する共有 VPC 内のサブネットの名前。
- 3
- コントロールプレーンマシンが使用する共有 VPC 内のサブネットの名前。
- 4
- 共有 VPC の名前。
- 5
- 共有 VPC が存在するホストプロジェクトの名前。
- 6
- クラスターをインストールする Google Cloud プロジェクトの名前。
- 7 8 9
- 任意。コンピューティングマシン、コントロールプレーンマシン、またはすべてのマシンに適用する 1 つ以上のネットワークタグ。
- 10
- クラスター内のマシンにアクセスするために使用する
sshKey値をオプションで指定できます。
7.5.6. インストール時のクラスター全体のプロキシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
実稼働環境では、インターネットへの直接アクセスを拒否し、代わりに 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)、Microsoft Azure、および Red Hat OpenStack Platform (RHOSP) へのインストールの場合、
Proxyオブジェクトのstatus.noProxyフィールドには、インスタンスメタデータのエンドポイント (169.254.169.254) も設定されます。
手順
install-config.yamlファイルを編集し、プロキシー設定を追加します。以下に例を示します。apiVersion: v1 baseDomain: my.domain.com proxy: httpProxy: http://<username>:<pswd>@<ip>:<port>1 httpsProxy: https://<username>:<pswd>@<ip>:<port>2 noProxy: example.com3 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-confignamespace に生成します。次に Cluster Network Operator は、これらのコンテンツを Red Hat Enterprise Linux CoreOS (RHCOS) 信頼バンドルにマージするtrusted-ca-bundleconfig map を作成し、この config map は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 Container Platform のインストール時にこれを参照します。
インストールプログラムは、指定の install-config.yaml ファイルのプロキシー設定を使用する cluster という名前のクラスター全体のプロキシーを作成します。プロキシー設定が指定されていない場合、cluster Proxy オブジェクトが依然として作成されますが、これには spec がありません。
cluster という名前の Proxy オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。