第3章 installer-provisioned infrastructure
3.1. Azure にクラスターをインストールする準備 リンクのコピーリンクがクリップボードにコピーされました!
Azure に OpenShift Container Platform クラスターをインストールする準備をするには、次の手順を実行します。
- クラスターのインストール方法を選択 した。
- クラスターをホストするための Azure アカウントを設定 し、クラスターをデプロイするテスト済みおよび検証済みのリージョンを決定した。
- ファイアウォールを使用する場合は、クラスターがアクセスする必要がある サイトを許可するようにファイアウォールを設定 した。
3.1.1. OpenShift Container Platform のインターネットアクセス リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform 4.20 では、クラスターをインストールするためにインターネットアクセスが必要です。
次のアクションを実行するには、インターネットにアクセスできる必要があります。
- OpenShift Cluster Manager にアクセスし、インストールプログラムをダウンロードし、サブスクリプション管理を実行します。クラスターがインターネットにアクセスでき、Telemetry を無効にしていない場合、そのサービスによってクラスターのサブスクリプションが自動的に有効化されます。
- クラスターのインストールに必要なパッケージを取得するために Quay.io にアクセスします。
- クラスターの更新を実行するために必要なパッケージを取得します。
クラスターでインターネットに直接アクセスできない場合、プロビジョニングする一部のタイプのインフラストラクチャーでネットワークが制限されたインストールを実行できます。このプロセスで、必要なコンテンツをダウンロードし、これを使用してミラーレジストリーにインストールパッケージを設定します。インストールタイプに応じて、クラスターのインストール環境でインターネットアクセスが不要となる場合があります。クラスターを更新する前に、ミラーレジストリーのコンテンツを更新します。
3.1.2. クラスターノードの SSH アクセス用のキーペアの生成 リンクのコピーリンクがクリップボードにコピーされました!
クラスターノードへの安全なパスワードなし SSH アクセスを有効にするには、OpenShift Container Platform のインストール時に SSH 公開鍵を指定してください。これにより、インストールプログラムが Red Hat Enterprise Linux CoreOS(RHCOS) ノードを コア ユーザーを介したリモート認証用に自動的に設定することが保証されます。
SSH 公開鍵は、各ノードの コア ユーザーの ~/.ssh/authorized_keys リストに追加されます。キーが Ignition 設定ファイルを通じて Red Hat Enterprise Linux CoreOS (RHCOS) ノードに渡された後、キーペアを使用して、ユーザー core として RHCOS ノードに SSH 接続できます。SSH 経由でノードにアクセスするには、秘密鍵のアイデンティティーをローカルユーザーの SSH で管理する必要があります。
インストールのデバッグまたは障害復旧を実行するためにクラスターノードに対して SSH を実行する場合は、インストールプロセスの間に SSH 公開鍵を指定する必要があります。./openshift-install gather コマンドでは、SSH 公開鍵がクラスターノードに配置されている必要もあります。
障害復旧およびデバッグが必要な実稼働環境では、この手順を省略しないでください。
プラットフォーム固有の方法で設定した鍵ではなく、ローカルの鍵を使用する必要があります。
手順
クラスターノードへの認証に使用するローカルマシンに既存の SSH キーペアがない場合は、これを作成します。たとえば、Linux オペレーティングシステムを使用するコンピューターで以下のコマンドを実行します。
$ ssh-keygen -t ed25519 -N '' -f <path>/<file_name>新しい SSH 鍵のパスとファイル名を指定します (例:
~/.ssh/id_ed25519)。既存のキーペアがある場合は、公開鍵が~/.sshディレクトリーにあることを確認します。注記x86_64、ppc64le、およびs390xアーキテクチャーのみで FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用する OpenShift Container Platform クラスターをインストールする予定がある場合は、ed25519アルゴリズムを使用するキーを作成しないでください。代わりに、rsaアルゴリズムまたはecdsaアルゴリズムを使用するキーを作成します。SSH 公開鍵を表示します。
$ cat <path>/<file_name>.pubたとえば、次のコマンドを実行して
~/.ssh/id_ed25519.pub公開鍵を表示します。$ cat ~/.ssh/id_ed25519.pubローカルユーザーの SSH エージェントに SSH 秘密鍵 ID が追加されていない場合は、それを追加します。キーの SSH エージェント管理は、クラスターノードへのパスワードなしの SSH 認証、または
./openshift-install gatherコマンドを使用する場合は必要になります。注記一部のディストリビューションでは、
~/.ssh/id_rsaおよび~/.ssh/id_dsaなどのデフォルトの SSH 秘密鍵のアイデンティティーは自動的に管理されます。ssh-agentプロセスがローカルユーザーに対して実行されていない場合は、バックグラウンドタスクとして開始します。$ eval "$(ssh-agent -s)"出力例
Agent pid 31874注記クラスターが FIPS モードにある場合は、FIPS 準拠のアルゴリズムのみを使用して SSH キーを生成します。鍵は RSA または ECDSA のいずれかである必要があります。
SSH プライベートキーを
ssh-agentに追加します。$ ssh-add <path>/<file_name>SSH 秘密鍵のパスとファイル名を指定します。例:
~/.ssh/id_ed25519出力例
Identity added: /home/<you>/<path>/<file_name> (<computer_name>)
次のステップ
- OpenShift Container Platform をインストールする際に、SSH パブリックキーをインストールプログラムに指定します。
3.1.3. インストールプログラムの取得 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform をインストールする前に、インストールに使用しているホストにインストールファイルをダウンロードします。
前提条件
- 500 MB のローカルディスク領域がある Linux または macOS を実行するコンピューターが必要です。
手順
Red Hat Hybrid Cloud Console の Cluster Type ページに移動します。Red Hat アカウントがある場合は、認証情報を使用してログインします。アカウントがない場合はこれを作成します。
ヒント- ページの Run it yourself セクションからインフラストラクチャープロバイダーを選択します。
- OpenShift Installer のドロップダウンメニューからホストオペレーティングシステムとアーキテクチャーを選択し、Download Installer をクリックします。
ダウンロードしたファイルを、インストール設定ファイルを保存するディレクトリーに配置します。
重要- インストールプログラムは、クラスターのインストールに使用するコンピューターにいくつかのファイルを作成します。クラスターのインストール完了後は、インストールプログラムおよびインストールプログラムが作成するファイルを保持する必要があります。クラスターを削除するには、両方のファイルが必要です。
- インストールプログラムで作成されたファイルを削除しても、クラスターがインストール時に失敗した場合でもクラスターは削除されません。クラスターを削除するには、特定のクラウドプロバイダー用の OpenShift Container Platform のアンインストール手順を実行します。
インストールプログラムを展開します。たとえば、Linux オペレーティングシステムを使用するコンピューターで以下のコマンドを実行します。
$ tar -xvf openshift-install-linux.tar.gzRed Hat OpenShift Cluster Manager からインストールプルシークレット をダウンロードします。このプルシークレットを使用し、OpenShift Container Platform コンポーネントのコンテナーイメージを提供する Quay.io など、組み込まれた各種の認証局によって提供されるサービスで認証できます。
ヒントRed Hat カスタマーポータル からインストールプログラムを取得することもできます。このページでは、ダウンロードするインストールプログラムのバージョンを指定できます。ただし、このページにアクセスするには、有効なサブスクリプションが必要です。
3.1.4. Linux への OpenShift CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインからクラスターを管理し、アプリケーションをデプロイするには、Linux に OpenShift CLI (oc) バイナリーをインストールしてください。
以前のバージョンの oc をインストールした場合、それを使用して OpenShift Container Platform のすべてのコマンドを実行することはできません。
新しいバージョンの oc をダウンロードしてインストールしてください。
手順
- Red Hat カスタマーポータルの Download OpenShift Container Platform ページに移動します。
- Product Variant リストからアーキテクチャーを選択します。
- Version リストから適切なバージョンを選択します。
- OpenShift v4.20 Linux Clients エントリーの横にある Download Now をクリックして、ファイルを保存します。
アーカイブを展開します。
$ tar xvf <file>ocバイナリーを、PATHにあるディレクトリーに配置します。PATHを確認するには、以下のコマンドを実行します。$ echo $PATH
検証
OpenShift CLI のインストール後に、
ocコマンドを使用して利用できます。$ oc <command>
3.1.5. Windows への OpenShift CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインからクラスターを管理し、アプリケーションをデプロイするには、Windows に OpenShift CLI (oc) バイナリーをインストールしてください。
以前のバージョンの oc をインストールした場合、それを使用して OpenShift Container Platform のすべてのコマンドを実行することはできません。
新しいバージョンの oc をダウンロードしてインストールしてください。
手順
- Red Hat カスタマーポータルの Download OpenShift Container Platform ページに移動します。
- Version リストから適切なバージョンを選択します。
- OpenShift v4.20 Windows Client エントリーの横にある Download Now をクリックして、ファイルを保存します。
- ZIP プログラムでアーカイブを展開します。
ocバイナリーを、PATH 環境変数に含まれるディレクトリーに移動してください。PATH環境変数を確認するには、コマンドプロンプトを開き、次のコマンドを実行してください。C:\> path
検証
OpenShift CLI のインストール後に、
ocコマンドを使用して利用できます。C:\> oc <command>
3.1.6. macOS への OpenShift CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインからクラスターを管理し、アプリケーションをデプロイするには、macOS に OpenShift CLI (oc) バイナリーをインストールしてください。
以前のバージョンの oc をインストールした場合、それを使用して OpenShift Container Platform のすべてのコマンドを実行することはできません。
新しいバージョンの oc をダウンロードしてインストールしてください。
手順
- Red Hat カスタマーポータルの Download OpenShift Container Platform ページに移動します。
- Product Variant リストからアーキテクチャーを選択します。
- Version リストから適切なバージョンを選択します。
OpenShift v4.20 macOS Clients エントリーの横にある Download Now をクリックして、ファイルを保存します。
注記macOS arm64 の場合は、OpenShift v4.20 macOS arm64 Client エントリーを選択します。
- アーカイブを展開し、解凍します。
ocバイナリーをPATH 環境変数で指定したディレクトリーに移動してください。PATH環境変数を確認するには、ターミナルを開いて次のコマンドを実行してください。$ echo $PATH
検証
ocコマンドを使用してインストールを確認します。$ oc <command>
3.1.7. OpenShift Container Platform の Telemetry アクセス リンクのコピーリンクがクリップボードにコピーされました!
クラスターの状態やアップデートの成功に関するメトリクスを提供するため、Telemetry サービスにはインターネットアクセスが必要です。接続されると、このサービスはデフォルトで自動的に実行され、クラスターを OpenShift Cluster Manager に登録します。
テレメトリーによって自動的に、または OpenShift Cluster Manager を使用して手動で維持される OpenShift Cluster Manager インベントリーが正しいことを確認したら、subscription watch を使用して、アカウントまたはマルチクラスターレベルで OpenShift Container Platform のサブスクリプションを追跡します。サブスクリプション監視の詳細は、関連情報 セクションの Red Hat のサブスクリプションサービスによって収集および使用されるデータを参照してください。
3.1.8. Day2 Operator 用の Azure ディスク暗号化セットの準備 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform のインストールプログラムは、ユーザーが管理するキーを使用した既存のディスク暗号化セットを使用できます。この機能を有効にするには、Azure で DiskEncryptionSet オブジェクトを作成し、インストールプログラムにキーを指定します。
前提条件
Azure サブスクリプションで
EncryptionAtHost機能を有効にしました。詳細は、Azure ポータルを使用してホストでの暗号化によるエンドツーエンド暗号化を有効にするを参照してください。手順以下のコマンドを使用して、
encryptionAtHostクラスターリソースグループ内のノードをスケジュール不可としてマークします。$ oc adm cordon <node_name>コンピュートノードから Pod を退避します。これにはいくつかの方法があります。たとえば、ノード上のすべての Pod、または選択した Pod を退避させることができます。
$ oc adm drain <compute_node> [--pod-selector=<pod_selector>]注記ノードから Pod を退避させるその他の方法については、ノード上の Pod を退避させる方法を理解するセクションを参照してください。
以下のコマンドを実行して、ノードの割り当てを解除します。
$ az vm deallocate -n <node_name> -g <cluster_resource_group>以下のコマンドを実行して、
encryptionAtHostプロパティーをtrueに設定します。$ az vm update -n <node_name> -g <cluster_resource_group> --set securityProfile.encryptionAtHost=true以下のコマンドを実行してノードを起動します。
$ az vm start -n <node_name> -g <cluster_resource_group>以下のコマンドを使用して、ノードをスケジューリング可能としてマークします。
$ oc adm uncordon <node_name>すべてのクラスター Operator ーが利用可能であることを確認してください。
$ oc get clusteroperatorsすべての Operator は
、AVAILABLE=True、PROGRESSING=False、DEGRADED=Falseと表示される必要があります。-
encryptionAtHost を実行するすべてのノードで上記の手順を繰り返します。
クラスターのインストール中にホストの暗号化を有効にする場合は、install-config.yaml ファイルに次のパラメーターを指定します。* compute.platform.azure.encryptionAtHost * controlPlane.platform.azure.encryptionAtHost * platform.azure.defaultMachinePlatform.encryptionAtHost
3.1.9. Azure ディスク暗号化セットの準備 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform インストーラーは、ユーザー管理のキーで既存のディスク暗号化セットを使用できます。この機能を有効にするには、Azure でディスク暗号化セットを作成し、インストーラーにキーを提供します。
手順
次のコマンドを実行して、Azure リソースグループの環境変数を設定します。
$ export RESOURCEGROUP="<resource_group>" \1 LOCATION="<location>"2 次のコマンドを実行して、Azure Key Vault およびディスク暗号化セットの環境変数を設定します。
$ export KEYVAULT_NAME="<keyvault_name>" \1 KEYVAULT_KEY_NAME="<keyvault_key_name>" \2 DISK_ENCRYPTION_SET_NAME="<disk_encryption_set_name>"3 次のコマンドを実行して、Azure サービスプリンシパルの ID の環境変数を設定します。
$ export CLUSTER_SP_ID="<service_principal_id>"1 - 1
- インストールに使用するサービスプリンシパルの ID を指定します。
次のコマンドを実行して、Azure でホストレベルの暗号化を有効にします。
$ az feature register --namespace "Microsoft.Compute" --name "EncryptionAtHost"$ az feature show --namespace Microsoft.Compute --name EncryptionAtHost$ az provider register -n Microsoft.Compute次のコマンドを実行して、ディスク暗号化セットと関連リソースを保持する Azure リソースグループを作成します。
$ az group create --name $RESOURCEGROUP --location $LOCATION次のコマンドを実行して、Azure Key Vault を作成します。
$ az keyvault create -n $KEYVAULT_NAME -g $RESOURCEGROUP -l $LOCATION \ --enable-purge-protection true次のコマンドを実行して、Key Vault に暗号鍵を作成します。
$ az keyvault key create --vault-name $KEYVAULT_NAME -n $KEYVAULT_KEY_NAME \ --protection software次のコマンドを実行して、Key Vault の ID を取得します。
$ KEYVAULT_ID=$(az keyvault show --name $KEYVAULT_NAME --query "[id]" -o tsv)次のコマンドを実行して、Key Vault 内の鍵 URL をキャプチャーします。
$ KEYVAULT_KEY_URL=$(az keyvault key show --vault-name $KEYVAULT_NAME --name \ $KEYVAULT_KEY_NAME --query "[key.kid]" -o tsv)次のコマンドを実行して、ディスク暗号化セットを作成します。
$ az disk-encryption-set create -n $DISK_ENCRYPTION_SET_NAME -l $LOCATION -g \ $RESOURCEGROUP --source-vault $KEYVAULT_ID --key-url $KEYVAULT_KEY_URL次のコマンドを実行して、
DiskEncryptionSetリソースに Key Vault へのアクセス権を付与します。$ DES_IDENTITY=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g \ $RESOURCEGROUP --query "[identity.principalId]" -o tsv)$ az keyvault set-policy -n $KEYVAULT_NAME -g $RESOURCEGROUP --object-id \ $DES_IDENTITY --key-permissions wrapkey unwrapkey get次のコマンドを実行して、Azure サービスプリンシパルにディスク暗号化セットを読み取る権限を付与します。
$ DES_RESOURCE_ID=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g \ $RESOURCEGROUP --query "[id]" -o tsv)$ az role assignment create --assignee $CLUSTER_SP_ID --role "<reader_role>" \1 --scope $DES_RESOURCE_ID -o jsonc- 1
- ディスク暗号化セットへの読み取りパーミッションを持つ Azure ロールを指定します。
Ownerロールまたは必要な権限を持つカスタムロールを使用できます。
次のステップ
OpenShift Container Platform クラスターをインストールします。