11.7. GCP のインストール設定ファイルの作成
user-provisioned infrastructure を使用して OpenShift Container Platform を Google Cloud Platform (GCP) にインストールするには、インストールプログラムがクラスターをデプロイするために必要なファイルを生成し、クラスターが使用するマシンのみを作成するようにそれらのファイルを変更する必要があります。install-config.yaml ファイル、Kubernetes マニフェスト、および Ignition 設定ファイルを生成し、カスタマイズします。また、インストールの準備フェーズ時にまず別の var パーティションを設定するオプションもあります。
11.7.1. インストール設定ファイルの手動作成 リンクのコピーリンクがクリップボードにコピーされました!
クラスターをインストールするには、インストール設定ファイルを手動で作成する必要があります。
前提条件
- インストールプログラムで使用するための SSH 公開鍵がローカルマシン上に存在する。この鍵は、デバッグや障害復旧のために、クラスターノードへの SSH 認証に使用できます。
- OpenShift Container Platform インストールプログラムとクラスターのプルシークレットを取得している。
手順
必要なインストールアセットを保存するためのインストールディレクトリーを作成します。
mkdir <installation_directory>
$ mkdir <installation_directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要このディレクトリーは必ず作成してください。ブートストラップ X.509 証明書などの一部のインストールアセットは、有効期限が短いため、インストールディレクトリーを再利用しないでください。別のクラスターインストールの個別のファイルを再利用する必要がある場合は、それらをディレクトリーにコピーすることができます。ただし、インストールアセットのファイル名はリリース間で変更される可能性があります。インストールファイルを以前のバージョンの OpenShift Container Platform からコピーする場合は注意してください。
提供されているサンプルの
install-config.yamlファイルテンプレートをカスタマイズし、ファイルを<installation_directory>に保存します。注記この設定ファイルの名前を
install-config.yamlと付ける必要があります。多くのクラスターのインストールに使用できるように、
install-config.yamlファイルをバックアップします。重要インストールプロセスの次のステップで
install-config.yamlファイルを使用するため、今すぐこのファイルをバックアップしてください。
11.7.2. Shielded VM の有効化 リンクのコピーリンクがクリップボードにコピーされました!
クラスターをインストールする場合は、Shielded VM を使用できます。Shielded VM には、セキュアブート、ファームウェアと整合性の監視、ルートキット検出などの追加のセキュリティー機能があります。詳細は、Shielded VM に関する Google のドキュメントを参照してください。
Shielded VM は現在、64 ビット ARM インフラストラクチャーを備えたクラスターではサポートされていません。
手順
クラスターをデプロイする前に、テキストエディターを使用して、
install-config.yamlファイルを編集し、次のいずれかのスタンザを追加します。コントロールプレーンマシンのみに Shielded VM を使用するには:
controlPlane: platform: gcp: secureBoot: EnabledcontrolPlane: platform: gcp: secureBoot: EnabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンピューティングマシンのみに Shielded VM を使用するには:
compute: - platform: gcp: secureBoot: Enabledcompute: - platform: gcp: secureBoot: EnabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのマシンに Shielded VM を使用するには:
platform: gcp: defaultMachinePlatform: secureBoot: Enabledplatform: gcp: defaultMachinePlatform: secureBoot: EnabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.7.3. Confidential 仮想マシンの有効化 リンクのコピーリンクがクリップボードにコピーされました!
クラスターをインストールする場合は、Confidential 仮想マシンを使用できます。Confidential 仮想マシンは処理中のデータを暗号化します。詳細は、Confidential Computing に関する Google のドキュメントを参照してください。Confidential 仮想マシンと Shielded VM を同時に有効にすることができますが、それらは互いに依存していません。
現在、Confidential 仮想マシンは 64 ビット ARM アーキテクチャーではサポートされていません。
手順
クラスターをデプロイする前に、テキストエディターを使用して、
install-config.yamlファイルを編集し、次のいずれかのスタンザを追加します。コントロールプレーンマシンのみに Confidential 仮想マシンを使用するには:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Confidential 仮想マシンを有効にします。
- 2
- Confidential 仮想マシンをサポートするマシンタイプを指定します。Confidential 仮想マシンには、N2D または C2D シリーズのマシンタイプが必要です。サポートされているマシンタイプの詳細は、サポートされているオペレーティングシステムとマシンタイプ を参照してください。
- 3
- ハードウェアやソフトウェアの更新など、ホストのメンテナンスイベント中の VM の動作を指定します。Confidential 仮想マシンを使用するマシンの場合は、この値を
Terminateに設定する必要があります。これにより、VM が停止します。Confidential 仮想マシンはライブ VM 移行をサポートしていません。
コンピューティングマシンのみに Confidential 仮想マシンを使用するには:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのマシンに Confidential 仮想マシンを使用するには:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.7.5. インストール時のクラスター全体のプロキシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
実稼働環境では、インターネットへの直接アクセスを拒否し、代わりに HTTP または HTTPS プロキシーを使用することができます。プロキシー設定を install-config.yaml ファイルで行うことにより、新規の OpenShift Container Platform クラスターをプロキシーを使用するように設定できます。
前提条件
クラスターがアクセスする必要のあるサイトを確認済みで、それらのいずれかがプロキシーをバイパスする必要があるかどうかを判別している。デフォルトで、すべてのクラスター 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-confignamespace に生成します。次に 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 debugCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ファイルを保存し、OpenShift Container Platform のインストール時にこれを参照します。
インストールプログラムは、指定の install-config.yaml ファイルのプロキシー設定を使用する cluster という名前のクラスター全体のプロキシーを作成します。プロキシー設定が指定されていない場合、cluster Proxy オブジェクトが依然として作成されますが、これには spec がありません。
cluster という名前の Proxy オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。
11.7.6. Kubernetes マニフェストおよび Ignition 設定ファイルの作成 リンクのコピーリンクがクリップボードにコピーされました!
一部のクラスター定義ファイルを変更し、クラスターマシンを手動で起動する必要があるため、クラスターがマシンを設定するために必要な Kubernetes マニフェストと Ignition 設定ファイルを生成する必要があります。
インストール設定ファイルは Kubernetes マニフェストに変換されます。マニフェストは Ignition 設定ファイルにラップされます。これはクラスターマシンを設定するために後で使用されます。
-
OpenShift Container Platform のインストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の
node-bootstrapper証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。 - 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
手順
OpenShift Container Platform のインストールプログラムが含まれるディレクトリーに切り替え、クラスターの Kubernetes マニフェストを生成します。
./openshift-install create manifests --dir <installation_directory>
$ ./openshift-install create manifests --dir <installation_directory>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<installation_directory>には、作成したinstall-config.yamlファイルが含まれるインストールディレクトリーを指定します。
コントロールプレーンマシンを定義する Kubernetes マニフェストファイルを削除します。
rm -f <installation_directory>/openshift/99_openshift-cluster-api_master-machines-*.yaml
$ rm -f <installation_directory>/openshift/99_openshift-cluster-api_master-machines-*.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow これらのファイルを削除することで、クラスターがコントロールプレーンマシンを自動的に生成するのを防ぐことができます。
コントロールプレーンマシンセットを定義する Kubernetes マニフェストファイルを削除します。
rm -f <installation_directory>/openshift/99_openshift-machine-api_master-control-plane-machine-set.yaml
$ rm -f <installation_directory>/openshift/99_openshift-machine-api_master-control-plane-machine-set.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow ワーカーマシンを定義する Kubernetes マニフェストファイルを削除します。
rm -f <installation_directory>/openshift/99_openshift-cluster-api_worker-machineset-*.yaml
$ rm -f <installation_directory>/openshift/99_openshift-cluster-api_worker-machineset-*.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow ワーカーマシンは独自に作成し、管理するため、これらのマシンを初期化する必要はありません。
<installation_directory>/manifests/cluster-scheduler-02-config.ymlKubernetes マニフェストファイルのmastersSchedulableパラメーターがfalseに設定されていることを確認します。この設定により、Pod がコントロールプレーンマシンにスケジュールされなくなります。-
<installation_directory>/manifests/cluster-scheduler-02-config.ymlファイルを開きます。 -
mastersSchedulableパラメーターを見つけ、これがfalseに設定されていることを確認します。 - ファイルを保存し、終了します。
-
<installation_directory>/manifests/cluster-dns-02-config.ymlDNS 設定ファイルからprivateZoneセクションを削除します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- このセクションを完全に削除します。
VPC のクラウドプロバイダーを設定します。
-
<installation_directory>/manifests/cloud-provider-config.yamlファイルを開きます。 -
network-project-idパラメーターを追加し、その値を共有 VPC ネットワークをホストするプロジェクトの ID に設定します。 -
network-nameパラメーターを追加し、その値を OpenShift Container Platform クラスターをホストする共有 VPC ネットワークの名前に設定します。 -
subnetwork-nameパラメーターの値を、コンピュートマシンをホストする共有 VPC サブネットの値に置き換えます。
<installation_directory>/manifests/cloud-provider-config.yamlの内容は以下の例のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
プライベートネットワーク上にないクラスターをデプロイする場合は、
<installation_directory>/manifests/cluster-ingress-default-ingresscontroller.yamlファイルを開き、scopeパラメーターの値をExternalに置き換えます。ファイルの内容は以下の例のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ignition 設定ファイルを作成するには、インストールプログラムが含まれるディレクトリーから以下のコマンドを実行します。
./openshift-install create ignition-configs --dir <installation_directory>
$ ./openshift-install create ignition-configs --dir <installation_directory>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<installation_directory>には、同じインストールディレクトリーを指定します。
Ignition 設定ファイルは、インストールディレクトリー内のブートストラップ、コントロールプレーン、およびコンピュートノード用に作成されます。
kubeadmin-passwordおよびkubeconfigファイルが./<installation_directory>/authディレクトリーに作成されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow