IBM Z および IBM LinuxONE へのインストール


OpenShift Container Platform 4.20

IBM Z および IBM LinuxONE への OpenShift Container Platform のインストール

Red Hat OpenShift Documentation Team

概要

このドキュメントでは、IBM Z および IBM LinuxONE に OpenShift Container Platform をインストールする方法を説明します。

第1章 インストール方法

さまざまなインストール方法を使用して、OpenShift Container Platform クラスターを IBM Z® および IBM® LinuxONE にインストールできます。それぞれの方法は、その特質上、適しているユースケース (非接続環境にクラスターをインストールする場合や、最小限の設定とプロビジョニングでクラスターをインストールする場合など) が異なります。

注記

このドキュメントは IBM Z® のみを参照しますが、これに含まれるすべての情報は IBM® LinuxONE にも適用されます。

1.1. OpenShift Container Platform の IBM Z または IBM LinuxONE へのインストール方法の選択

OpenShift Container Platform インストールプログラムでは、次の方法で IBM Z® にクラスターをデプロイできます。

  • インタラクティブ: Web ベースの Assisted Installer を使用してクラスターをデプロイできます。この方法はインストーラーのセットアップを必要とせず、IBM Z® のような接続された環境に最適です。
  • ローカルエージェントベース: Agent-based Installer を使用してクラスターをローカルにデプロイできます。この方法では、Assisted Installer の多くの利点を得られますが、最初に Agent-based Installer をダウンロードして設定する必要があります。設定はコマンドラインインターフェイス (CLI) で行います。このアプローチは、非接続ネットワークに最適です。
  • 完全な制御: お客様が準備および保守するインフラストラクチャーにクラスターをデプロイメントできます。これにより、最大限のカスタマイズ性が提供されます。接続環境または非接続環境でクラスターをデプロイできます。
Expand
表1.1 IBM Z(R) のインストール方法
 Assisted InstallerAgent-based Installeruser-provisioned installationinstaller-provisioned installation

z/VM を使用した IBM Z®

 

ネットワークが制限された環境の z/VM を使用した IBM Z®

 

 

RHEL KVM を使用した IBM Z®

 

ネットワークが制限された環境の RHEL KVM を使用した IBM Z®

 

 

IBM Z® の LPAR 内

 

ネットワークが制限された環境の IBM Z® の LPAR 内

 

 

インストールプロセスの詳細は、インストールプロセス を参照してください。

1.2. user-provisioned infrastructure での IBM Z への OpenShift Container Platform のインストール

user-provisioned infrastructure では、ユーザーは OpenShift Container Platform に必要なすべてのリソースをプロビジョニングする必要があります。

重要

user-provisioned infrastructure のインストールする手順は、例としてのみ提供されます。独自に提供するインフラストラクチャーでクラスターをインストールするには、IBM Z® プラットフォームおよび OpenShift Container Platform のインストールプロセスを理解している必要があります。user-provisioned infrastructure のインストール手順をガイドとして使用します。他の方法で必要なリソースを作成することもできます。

  • z/VM を使用したクラスターの IBM Z® および IBM® LinuxONE へのインストール: 独自にプロビジョニングする IBM Z® または IBM® LinuxONE インフラストラクチャーに、z/VM を使用した OpenShift Container Platform をインストールできます。
  • 非接続環境で IBM Z および IBM LinuxONE に z/VM を使用したクラスターをインストールする: インストールリリースコンテンツの内部ミラーを使用して、制限されたネットワークまたは非接続ネットワーク内で、独自にプロビジョニングする IBM Z® または IBM® LinuxONE インフラストラクチャーに z/VM を使用した OpenShift Container Platform をインストールできます。この方法を使用して、ソフトウェアコンポーネントを取得するためにアクティブなインターネット接続を必要としないクラスターをインストールできます。また、このインストール方法を使用して、クラスターが外部コンテンツに対する組織の制御の条件を満たすコンテナーイメージのみを使用するようにすることもできます。
  • RHEL KVM を使用したクラスターの IBM Z® および IBM® LinuxONE へのインストール: 独自にプロビジョニングする IBM Z® または IBM® LinuxONE インフラストラクチャーに、KVM を使用した OpenShift Container Platform をインストールできます。
  • 非接続環境で IBM Z® および IBM® LinuxONE に RHEL KVM を使用したクラスターをインストールする: インストールリリースコンテンツの内部ミラーを使用して、制限されたネットワークまたは非接続ネットワーク内で、独自にプロビジョニングする IBM Z® または IBM® LinuxONE インフラストラクチャーに RHEL KVM を使用して OpenShift Container Platform をインストールできます。この方法を使用して、ソフトウェアコンポーネントを取得するためにアクティブなインターネット接続を必要としないクラスターをインストールできます。また、このインストール方法を使用して、クラスターが外部コンテンツに対する組織の制御の条件を満たすコンテナーイメージのみを使用するようにすることもできます。
  • IBM Z® および IBM® LinuxONE 上の LPAR へのクラスターのインストール: 独自にプロビジョニングする IBM Z® または IBM® LinuxONE インフラストラクチャー上の論理パーティション (LPAR) に OpenShift Container Platform をインストールできます。
  • 非接続環境の IBM Z® および IBM® LinuxONE 上の LPAR にクラスターをインストールする: インストールリリースコンテンツの内部ミラーを使用して、制限されたネットワークまたは非接続ネットワーク内で、独自にプロビジョニングする IBM Z® または IBM® LinuxONE インフラストラクチャー上の LPAR に OpenShift Container Platform をインストールできます。この方法を使用して、ソフトウェアコンポーネントを取得するためにアクティブなインターネット接続を必要としないクラスターをインストールできます。また、このインストール方法を使用して、クラスターが外部コンテンツに対する組織の制御の条件を満たすコンテナーイメージのみを使用するようにすることもできます。

第2章 user-provisioned infrastructure

2.1. IBM Z および IBM LinuxONE インフラストラクチャーのインストール要件

IBM Z® インフラストラクチャーへのインストールを開始する前に、IBM Z® 環境が次のインストール要件を満たしていることを確認してください。

user-provisioned infrastructure を含むクラスターの場合、必要なマシンすべてをデプロイする必要があります。

2.1.1. クラスターのインストールに必要なマシン

最小の OpenShift Container Platform クラスターでは以下のホストが必要です。

Expand
表2.1 最低限必要なホスト
ホスト説明

1 つの一時的なブートストラップマシン

クラスターでは、ブートストラップマシンが OpenShift Container Platform クラスターを 3 つのコントロールプレーンマシンにデプロイする必要があります。クラスターのインストール後にブートストラップマシンを削除できます。

3 つのコントロールプレーンマシン

コントロールプレーンマシンは、コントロールプレーンを設定する Kubernetes および OpenShift Container Platform サービスを実行します。

少なくとも 2 つのコンピュートマシン (ワーカーマシンとしても知られる)。

OpenShift Container Platform ユーザーが要求するワークロードは、コンピュートマシンで実行されます。

重要

クラスターの高可用性を向上させるには、少なくとも 2 台の物理マシン上の異なるハイパーバイザーインスタンスにコントロールプレーンマシンを分散してください。

ブートストラップ、コントロールプレーンおよびコンピュートマシンでは、Red Hat Enterprise Linux CoreOS (RHCOS) をオペレーティングシステムとして使用する必要があります。

RHCOS は Red Hat Enterprise Linux (RHEL) 9.2 をベースとしており、そのハードウェア認定および要件がすべて継承されることに注意してください。Red Hat Enterprise Linux テクノロジーの機能と制限 を参照してください。

2.1.1.1. クラスターインストールの最小リソース要件

それぞれのクラスターマシンは、以下の最小要件を満たしている必要があります。

Expand
表2.2 最小リソース要件
マシンオペレーティングシステムvCPU [1]仮想 RAMストレージ1 秒あたりの入出力 (IOPS)

ブートストラップ

RHCOS

4

16 GB

100 GB

該当なし

コントロールプレーン

RHCOS

4

16 GB

100 GB

該当なし

Compute

RHCOS

2

8 GB

100 GB

該当なし

  1. 1 つの物理コア (IFL) は、SMT-2 が有効な場合に 2 つの論理コア (スレッド) を提供します。ハイパーバイザーは、2 つ以上の仮想 CPU を提供できます。
注記

OpenShift Container Platform バージョン 4.19 の場合、RHCOS は RHEL バージョン 9.6 に基づいています。これは、マイクロアーキテクチャー要件を更新します。次のリストには、各アーキテクチャーに必要な最小限の命令セットアーキテクチャー (ISA) が含まれています。

  • x86-64 アーキテクチャーには x86-64-v2 ISA が必要
  • ARM64 アーキテクチャーには ARMv8.0-A ISA が必要
  • IBM Power アーキテクチャーには Power 9 ISA が必要
  • s390x アーキテクチャーには z14 ISA が必要

詳細は、アーキテクチャー (RHEL ドキュメント) を参照してください。

プラットフォームのインスタンスタイプがクラスターマシンの最小要件を満たす場合、これは OpenShift Container Platform で使用することがサポートされます。

2.1.1.2. 最小の IBM Z システム環境

OpenShift Container Platform バージョン 4.20 では、次の IBM® ハードウェアがサポートされています。

Expand
表2.3 サポートされている IBM(R) ハードウェア
 z/VMLPAR [1]RHEL KVM [2]

IBM® z17 (全モデル)

supported

supported

supported

IBM® z16 (全モデル)

supported

supported

supported

IBM® z15 (全モデル)

supported

supported

supported

IBM® z14 (全モデル)

supported

supported

supported

IBM® LinuxONE 4 (全モデル)

supported

supported

supported

IBM® LinuxONE 5 (全モデル)

supported

supported

supported

IBM® LinuxONE III (全モデル)

supported

supported

supported

IBM® LinuxONE Emperor II

supported

supported

supported

IBM® LinuxONE Rockhopper II

supported

supported

supported

  1. ハイパーバイザーなしで IBM Z® 上で OpenShift Container Platform を実行する場合は、Dynamic Partition Manager (DPM) を使用してマシンを管理します。
  2. OpenShift Container Platform 環境用に計画している仮想マシンをホストするには、ご使用の環境内の RHEL KVM ホストが特定の要件を満たしている必要があります。IBM Z® での仮想化の有効化 を参照してください。
注記

詳細なシステム要件は、Linux on IBM Z®/IBM® LinuxONE tested platforms (IBM サポート) を参照してください。

2.1.1.2.1. ハードウェア要件
  • クラスターごとに、SMT2 対応の 6 つの Integrated Facilities for Linux (IFL) に相当します。
  • 最低でもネットワーク接続 1 つ。これで、LoadBalancer サービスに接続するだけでなく、クラスター外のトラッフィクに関するデータを提供します。
重要
  • 専用または共有 IFL を使用して、十分なコンピューティングリソースを割り当てることができます。リソース共有は IBM Z® の重要な強みの 1 つです。ただし、各ハイパーバイザーレイヤーで容量を正しく調整し、すべての OpenShift Container Platform クラスターに十分なリソースがあることを確認する必要があります。
  • クラスターの全体的なパフォーマンスに影響を与える可能性があるため、OpenShift Container Platform クラスターの設定に使用される LPAR には十分なコンピューティング能力が必要です。このコンテキストでは、ハイパーバイザーレベルでの LPAR のウェイト管理、エンタイトルメント、および CPU 共有が重要な役割を果たします。詳細は、「IBM Z および IBM LinuxONE 環境での推奨されるホストプラクティス」を参照してください。
2.1.1.2.2. IBM Z オペレーティングシステム要件
Expand
表2.4 オペレーティングシステム要件
 z/VMLPARRHEL KVM

ハイパーバイザー

z/VM 7.2 以降のインスタンス 1 つ

IBM® z14 以降 (DPM または PR/SM 搭載)

libvirt で管理される、KVM を使用する RHEL 8.6 以降で実行する 1 つの LPAR。

OpenShift Container Platform コントロールプレーンマシン

3 つのゲスト仮想マシン

3 つの LPAR

3 つのゲスト仮想マシン

OpenShift Container Platform コンピュートマシン

2 つのゲスト仮想マシン

2 つの LPAR

2 つのゲスト仮想マシン

一時的な OpenShift Container Platform ブートストラップマシン

1 つのマシン

1 つのマシン

1 つのマシン

2.1.1.2.3. IBM Z のネットワーク接続
Expand
表2.5 ネットワーク接続の要件
 z/VMLPARRHEL KVM

ネットワークインターフェイスカード (NIC)

レイヤー 2 モードの単一の z/VM 仮想 NIC

-

-

仮想スイッチ (vSwitch)

レイヤー 2 イーサネットモードの z/VM VSWITCH

-

-

ネットワークアダプター

直接アタッチされた OSA、RoCE、または HiperSockets

直接アタッチされた OSA、RoCE、または HiperSockets

OSA、RoCE、または HiperSockets を使用して設定された RHEL KVM ホスト

libvirt または MacVTap のブリッジネットワークを使用してネットワークをゲストに接続するように設定されているいずれかの RHEL KVM ホスト。

仮想ネットワーク接続の種類 を参照してください。

2.1.1.2.3.1. Disk storage
Expand
表2.6 ディスクストレージ要件
 z/VMLPARRHEL KVM

ファイバー接続 (FICON)

z/VM ミニディスク、フルパックミニディスク、または専用の DASD。これらはすべて、デフォルトの CDL 形式でフォーマットされている必要があります。Red Hat Enterprise Linux CoreOS (RHCOS) インストールに必要な最低限の DASD サイズに達するには、拡張アドレスボリューム (EAV) が必要です。利用可能な場合は、HyperPAV を使用して最適なパフォーマンスを確保します。

デフォルトの CDL 形式でフォーマットされている必要がある専用の DASD。Red Hat Enterprise Linux CoreOS (RHCOS) インストールに必要な最低限の DASD サイズに達するには、拡張アドレスボリューム (EAV) が必要です。利用可能な場合は、HyperPAV を使用して最適なパフォーマンスを確保します。

仮想ブロックデバイス

ファイバーチャネルプロトコル (FCP)

専用の FCP または EDEV

専用の FCP または EDEV

仮想ブロックデバイス

QCOW

サポート対象外

サポート対象外

サポート対象

NVMe

サポート対象外

サポート対象

仮想ブロックデバイス

2.1.1.3. 推奨される IBM Z システム環境

IBM Z® ハードウェア上で OpenShift Container Platform バージョン 4.20 を実行するための推奨システム環境は次のとおりです。

2.1.1.3.1. ハードウェア要件
  • 各クラスターには、SMT2 対応の 6 つの Integrated Facilities for Linux (IFL) に相当する 3 つの論理パーティション (LPAR) があります。
  • ネットワーク接続 2 つ。これで、LoadBalancer サービスに接続するだけでなく、クラスター外のトラッフィクに関するデータを提供します。
  • HiperSocket。デバイスとしてノードに直接割り当てたもの。HiperSockets をノードに直接接続するには、RHEL 8 ゲストを介して外部ネットワークへのゲートウェイをセットアップし、HiperSockets ネットワークにブリッジする必要があります。

    注記

    z/VM 環境にインストールする場合、HiperSockets を 1 つの z/VM VSWITCH にブリッジ接続して、z/VM ゲストに対して透過的にすることもできます。

2.1.1.3.2. IBM Z オペレーティングシステム要件
Expand
表2.7 オペレーティングシステム要件
 z/VM [1]LPARRHEL KVM

ハイパーバイザー

z/VM 7.2 以降のインスタンス 1 つ

IBM® z14 以降 (DPM または PR/S 搭載)

libvirt で管理される、KVM を使用する RHEL 8.6 以降で実行する 1 つの LPAR。

OpenShift Container Platform コントロールプレーンマシン

3 つのゲスト仮想マシン

3 つの LPAR

3 つのゲスト仮想マシン

OpenShift Container Platform コンピュートマシン

6 つのゲスト仮想マシン

6 つの LPAR

6 つのゲスト仮想マシン

一時的な OpenShift Container Platform ブートストラップマシン

1 つのマシン

1 つのマシン

1 つのマシン

  1. オーバーコミット環境で必須コンポーネントの可用性を確保するには、CP コマンドの SET SHARE を使用してコントロールプレーンの優先度を引き上げます。インフラストラクチャーノードが存在する場合は、同じ操作を行います。SET SHARE (IBM® ドキュメント) を参照してください。
2.1.1.4. 証明書署名要求の管理

ユーザーがプロビジョニングするインフラストラクチャーを使用する場合、クラスターの自動マシン管理へのアクセスは制限されるため、インストール後にクラスターの証明書署名要求 (CSR) のメカニズムを提供する必要があります。kube-controller-manager は kubelet クライアント CSR のみを承認します。machine-approver は、kubelet 認証情報を使用して要求されるサービング証明書の有効性を保証できません。適切なマシンがこの要求を発行したかどうかを確認できないためです。kubelet 提供証明書の要求の有効性を検証し、それらを承認する方法を判別し、実装する必要があります。

2.1.1.5. user-provisioned infrastructure のネットワーク要件

すべての Red Hat Enterprise Linux CoreOS (RHCOS) マシンでは、起動時に initramfs でネットワークを設定し、Ignition 設定ファイルを取得する必要があります。

初回の起動時に、マシンには DHCP サーバーを使用して設定される IP アドレス設定、または必要な起動オプションを指定して静的に設定される IP アドレス設定が必要です。ネットワーク設定の確立後に、マシンは HTTP または HTTPS サーバーから Ignition 設定ファイルをダウンロードします。その後、Ignition 設定ファイルは各マシンの正確な状態を設定するために使用されます。Machine Config Operator はインストール後に、新しい証明書やキーの適用など、マシンへの追加の変更を完了します。

注記
  • クラスターマシンの長期管理に DHCP サーバーを使用することが推奨されます。DHCP サーバーが永続 IP アドレス、DNS サーバー情報、およびホスト名をクラスターマシンに提供するように設定されていることを確認します。
  • DHCP サービスが user-provisioned infrastructure で利用できない場合は、IP ネットワーク設定および DNS サーバーのアドレスを RHCOS のインストール時にノードに提供することができます。ISO イメージからインストールしている場合は、ブート引数として渡すことができます。静的 IP プロビジョニングと高度なネットワークオプションの詳細は、RHCOS のインストールと OpenShift Container Platform ブートストラッププロセスの開始 のセクションを参照してください。

Kubernetes API サーバーはクラスターマシンのノード名を解決できる必要があります。API サーバーおよびワーカーノードが異なるゾーンに置かれている場合、デフォルトの DNS 検索ゾーンを、API サーバーでノード名を解決できるように設定することができます。もう 1 つの実行可能な方法として、ノードオブジェクトとすべての DNS 要求の両方において、ホストを完全修飾ドメイン名で常に参照します。

2.1.1.5.1. DHCP を使用したクラスターノードのホスト名の設定

Red Hat Enterprise Linux CoreOS (RHCOS) マシンでは、ホスト名は NetworkManager 経由で設定されます。デフォルトでは、マシンは DHCP 経由でホスト名を取得します。ホスト名が DHCP によって提供されない場合、カーネル引数を介して静的に設定される場合、または別の方法でホスト名が取得される場合は、逆引き DNS ルックアップによって取得されます。逆引き DNS ルックアップは、ネットワークがノードで初期化された後に発生し、解決に時間がかかる場合があります。その他のシステムサービスは、これより前に起動し、ホスト名を localhost または同様のものとして検出できます。これを回避するには、DHCP を使用して各クラスターノードのホスト名を指定できます。

また、DHCP を介してホスト名を設定すると、DNS スプリットホライズンが実装されている環境での手動の DNS レコード名設定エラーを回避できます。

2.1.1.5.2. ネットワーク接続の要件

OpenShift Container Platform クラスターのコンポーネントが通信できるように、マシン間のネットワーク接続を設定する必要があります。すべてのマシンではクラスターの他のすべてのマシンのホスト名を解決できる必要があります。

このセクションでは、必要なポートの詳細を説明します。

重要

インターネットに接続された OpenShift Container Platform 環境では、プラットフォームコンテナーのイメージをプルし、Red Hat にテレメトリーデータを提供するために、すべてのノードがインターネットにアクセスできる必要があります。

Expand
表2.8 すべてのマシンからすべてのマシンへの通信に使用されるポート
プロトコルポート説明

ICMP

該当なし

ネットワーク到達性のテスト

TCP

1936

メトリクス

9000-9999

ホストレベルのサービス。ポート 9100-9101 のノードエクスポーター、ポート 9099 の Cluster Version Operator が含まれます。

10250-10259

Kubernetes が予約するデフォルトポート

22623

このポートは、マシン設定サーバーからのトラフィックを処理し、トラフィックをコントロールプレーンマシンに送信します。

UDP

4789

VXLAN

6081

Geneve

9000-9999

ポート 9100-9101 のノードエクスポーターを含む、ホストレベルのサービス。

500

IPsec IKE パケット

4500

IPsec NAT-T パケット

123

UDP ポート 123 のネットワークタイムプロトコル (NTP)外部 NTP タイムサーバーが設定されている場合は、UDP ポート 123 を開く必要があります。

TCP/UDP

30000-32767

Kubernetes ノードポート

ESP

該当なし

IPsec Encapsulating Security Payload (ESP)

Expand
表2.9 すべてのマシンからコントロールプレーンへの通信に使用されるポート
プロトコルポート説明

TCP

6443

Kubernetes API

Expand
表2.10 コントロールプレーンマシンからコントロールプレーンマシンへの通信に使用されるポート
プロトコルポート説明

TCP

2379-2380

etcd サーバーおよびピアポート

2.1.1.5.3. user-provisioned infrastructure の NTP 設定

OpenShift Container Platform クラスターは、デフォルトでパブリック Network Time Protocol (NTP) サーバーを使用するように設定されます。ローカルのエンタープライズ NTP サーバーを使用する必要があるか、クラスターが切断されたネットワークにデプロイされている場合は、特定のタイムサーバーを使用するようにクラスターを設定できます。詳細は、chrony タイムサービスの設定 のドキュメントを参照してください。

DHCP サーバーが NTP サーバー情報を提供する場合、Red Hat Enterprise Linux CoreOS (RHCOS) マシンの chrony タイムサービスは情報を読み取り、NTP サーバーとクロックを同期できます。

2.1.1.6. user-provisioned DNS 要件

OpenShift Container Platform のデプロイメントでは、以下のコンポーネントに DNS 名前解決が必要です。

  • Kubernetes API
  • OpenShift Container Platform のアプリケーションワイルドカード
  • ブートストラップマシンおよびコントロールプレーンマシン
  • コンピュートマシン

また、Kubernetes API、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンに逆引き DNS 解決も必要です。

DNS A/AAAA または CNAME レコードは名前解決に使用され、PTR レコードは逆引き名前解決に使用されます。ホスト名が DHCP によって提供されていない場合は、Red Hat Enterprise Linux CoreOS (RHCOS) は逆引きレコードを使用してすべてのノードのホスト名を設定するため、逆引きレコードは重要です。さらに、逆引きレコードは、OpenShift Container Platform が動作するために必要な証明書署名要求 (CSR) を生成するために使用されます。

注記

各クラスターノードにホスト名を提供するために DHCP サーバーを使用することが推奨されます。詳細は、user-provisioned infrastructure に関する DHCP の推奨事項 のセクションを参照してください。

以下の DNS レコードは、user-provisioned OpenShift Container Platform クラスターに必要で、これはインストール前に設定されている必要があります。各レコードで、<cluster_name> はクラスター名で、<base_domain> は、install-config.yaml ファイルに指定するベースドメインです。完全な DNS レコードは <component>.<cluster_name>.<base_domain>. の形式を取ります。

Expand
表2.11 必要な DNS レコード
コンポーネントレコード説明

Kubernetes API

api.<cluster_name>.<base_domain>.

API ロードバランサーを特定するための DNS A/AAAA または CNAME レコード、および DNS PTR レコード。これらのレコードは、クラスター外のクライアントおよびクラスター内のすべてのノードで解決できる必要があります。

api-int.<cluster_name>.<base_domain>.

API ロードバランサーを内部的に識別するための DNS A/AAAA または CNAME レコード、および DNS PTR レコード。これらのレコードは、クラスター内のすべてのノードで解決できる必要があります。

重要

API サーバーは、Kubernetes に記録されるホスト名でワーカーノードを解決できる必要があります。API サーバーがノード名を解決できない場合、プロキシーされる API 呼び出しが失敗し、Pod からログを取得できなくなる可能性があります。

ルート

*.apps.<cluster_name>.<base_domain>.

アプリケーション Ingress ロードバランサーを参照するワイルドカード DNS A/AAAA または CNAME レコード。アプリケーション Ingress ロードバランサーは、Ingress コントローラー Pod を実行するマシンをターゲットにします。Ingress コントローラー Pod はデフォルトでコンピュートマシンで実行されます。これらのレコードは、クラスター外のクライアントおよびクラスター内のすべてのノードで解決できる必要があります。

たとえば、console-openshift-console.apps.<cluster_name>.<base_domain> は、OpenShift Container Platform コンソールへのワイルドカードルートとして使用されます。

ブートストラップマシン

bootstrap.<cluster_name>.<base_domain>.

ブートストラップマシンを識別するための DNS A / AAAA または CNAME レコード、および DNS PTR レコード。これらのレコードは、クラスター内のノードで解決できる必要があります。

コントロールプレーンマシン

<control_plane><n>.<cluster_name>.<base_domain>.

コントロールプレーンノードの各マシンを特定するための DNS A/AAAA または CNAME レコードおよび DNS PTR レコード。これらのレコードは、クラスター内のノードで解決できる必要があります。

コンピュートマシン

<compute><n>.<cluster_name>.<base_domain>.

ワーカーノードの各マシンを特定するための DNS A/AAAA または CNAME レコード、および DNS PTR レコード。これらのレコードは、クラスター内のノードで解決できる必要があります。

注記

OpenShift Container Platform 4.4 以降では、DNS 設定で etcd ホストおよび SRV レコードを指定する必要はありません。

ヒント

dig コマンドを使用して、名前および逆引き名前解決を確認することができます。検証手順の詳細は、user-provisioned infrastructure の DNS 解決の検証 のセクションを参照してください。

2.1.1.6.1. user-provisioned クラスターの DNS 設定の例

このセクションでは、user-provisioned infrastructure に OpenShift Container Platform をデプロイするための DNS 要件を満たす A および PTR レコード設定サンプルを提供します。サンプルは、特定の DNS ソリューションを選択するためのアドバイスを提供することを目的としていません。

この例では、クラスター名は ocp4 で、ベースドメインは example.com です。

user-provisioned クラスターの DNS A レコードの設定例

BIND ゾーンファイルの以下の例は、user-provisioned クラスターの名前解決の A レコードの例を示しています。

例2.1 DNS ゾーンデータベースのサンプル

$TTL 1W
@	IN	SOA	ns1.example.com.	root (
			2019070700	; serial
			3H		; refresh (3 hours)
			30M		; retry (30 minutes)
			2W		; expiry (2 weeks)
			1W )		; minimum (1 week)
	IN	NS	ns1.example.com.
	IN	MX 10	smtp.example.com.
;
;
ns1.example.com.		IN	A	192.168.1.5
smtp.example.com.		IN	A	192.168.1.5
;
helper.example.com.		IN	A	192.168.1.5
helper.ocp4.example.com.	IN	A	192.168.1.5
;
api.ocp4.example.com.		IN	A	192.168.1.5
api-int.ocp4.example.com.	IN	A	192.168.1.5
;
*.apps.ocp4.example.com.	IN	A	192.168.1.5
;
bootstrap.ocp4.example.com.	IN	A	192.168.1.96
;
control-plane0.ocp4.example.com.	IN	A	192.168.1.97
control-plane1.ocp4.example.com.	IN	A	192.168.1.98
;
control-plane2.ocp4.example.com.	IN	A	192.168.1.99
;
compute0.ocp4.example.com.	IN	A	192.168.1.11
compute1.ocp4.example.com.	IN	A	192.168.1.7
;
;EOF
Copy to Clipboard Toggle word wrap
  • api.ocp4.example.com.: Kubernetes API の名前解決を提供します。レコードは API ロードバランサーの IP アドレスを参照します。
  • api-int.ocp4.example.com.: Kubernetes API の名前解決を提供します。レコードは API ロードバランサーの IP アドレスを参照し、内部クラスター通信に使用されます。
  • *.apps.ocp4.example.com.: ワイルドカードルートの名前解決を提供します。レコードは、アプリケーション Ingress ロードバランサーの IP アドレスを参照します。アプリケーション Ingress ロードバランサーは、Ingress コントローラー Pod を実行するマシンをターゲットにします。

    注記

    この例では、同じロードバランサーが Kubernetes API およびアプリケーションの Ingress トラフィックに使用されます。実稼働のシナリオでは、API およびアプリケーション Ingress ロードバランサーを個別にデプロイし、それぞれのロードバランサーインフラストラクチャーを分離してスケーリングすることができます。

  • bootstrap.ocp4.example.com.: ブートストラップマシンの名前解決を提供します。
  • control-plane0.ocp4.example.com.: コントロールプレーンマシンの名前解決を提供します。
  • compute0.ocp4.example.com.: コンピュートマシンの名前解決を提供します。

user-provisioned クラスターの DNS PTR レコードの設定例

以下の BIND ゾーンファイルの例では、user-provisioned クラスターの逆引き名前解決の PTR レコードの例を示しています。

例2.2 逆引きレコードの DNS ゾーンデータベースの例

$TTL 1W
@	IN	SOA	ns1.example.com.	root (
			2019070700	; serial
			3H		; refresh (3 hours)
			30M		; retry (30 minutes)
			2W		; expiry (2 weeks)
			1W )		; minimum (1 week)
	IN	NS	ns1.example.com.
;
5.1.168.192.in-addr.arpa.	IN	PTR	api.ocp4.example.com.
5.1.168.192.in-addr.arpa.	IN	PTR	api-int.ocp4.example.com.
;
96.1.168.192.in-addr.arpa.	IN	PTR	bootstrap.ocp4.example.com.
;
97.1.168.192.in-addr.arpa.	IN	PTR	control-plane0.ocp4.example.com.
98.1.168.192.in-addr.arpa.	IN	PTR	control-plane1.ocp4.example.com.
;
99.1.168.192.in-addr.arpa.	IN	PTR	control-plane2.ocp4.example.com.
;
11.1.168.192.in-addr.arpa.	IN	PTR	compute0.ocp4.example.com.
7.1.168.192.in-addr.arpa.	IN	PTR	compute1.ocp4.example.com.
;
;EOF
Copy to Clipboard Toggle word wrap
  • api.ocp4.example.com.: Kubernetes API の逆引き DNS 解決を提供します。PTR レコードは、API ロードバランサーのレコード名を参照します。
  • api-int.ocp4.example.com.: Kubernetes API の逆引き DNS 解決を提供します。PTR レコードは、API ロードバランサーのレコード名を参照し、内部クラスター通信に使用されます。
  • bootstrap.ocp4.example.com.: ブートストラップマシンの逆引き DNS 解決を提供します。
  • control-plane0.ocp4.example.com.: コントロールプレーンマシンの rebootstrap.ocp4.example.com.verse DNS 解決を提供します。
  • compute0.ocp4.example.com.: コンピュートマシンの逆引き DNS 解決を提供します。
注記

PTR レコードは、OpenShift Container Platform アプリケーションのワイルドカードには必要ありません。

2.1.1.7. user-provisioned infrastructure の負荷分散要件

OpenShift Container Platform をインストールする前に、API およびアプリケーションの Ingress 負荷分散インフラストラクチャーをプロビジョニングする必要があります。実稼働のシナリオでは、API およびアプリケーション Ingress ロードバランサーを個別にデプロイし、それぞれのロードバランサーインフラストラクチャーを分離してスケーリングすることができます。

注記

Red Hat Enterprise Linux (RHEL) インスタンスを使用して API およびアプリケーション Ingress ロードバランサーをデプロイする場合は、RHEL サブスクリプションを別途購入する必要があります。

負荷分散インフラストラクチャーは以下の要件を満たす必要があります。

  1. API ロードバランサー: プラットフォームと対話およびプラットフォームを設定するためのユーザー向けの共通のエンドポイントを提供します。以下の条件を設定します。

    • Layer 4 の負荷分散のみ。これは、Raw TCP または SSL パススルーモードと呼ばれます。
    • ステートレス負荷分散アルゴリズム。オプションは、ロードバランサーの実装によって異なります。
    重要

    API ロードバランサーのセッションの永続性は設定しないでください。Kubernetes API サーバーのセッション永続性を設定すると、OpenShift Container Platform クラスターとクラスター内で実行される Kubernetes API の過剰なアプリケーショントラフィックによりパフォーマンスの問題が発生する可能性があります。

    ロードバランサーのフロントとバックの両方で以下のポートを設定します。

    Expand
    表2.12 API ロードバランサー
    ポートバックエンドマシン (プールメンバー)内部外部説明

    6443

    ブートストラップおよびコントロールプレーン。ブートストラップマシンがクラスターのコントロールプレーンを初期化した後に、ブートストラップマシンをロードバランサーから削除します。API サーバーのヘルスチェックプローブの /readyz エンドポイントを設定する必要があります。

    X

    X

    Kubernetes API サーバー

    22623

    ブートストラップおよびコントロールプレーン。ブートストラップマシンがクラスターのコントロールプレーンを初期化した後に、ブートストラップマシンをロードバランサーから削除します。

    X

     

    マシン設定サーバー

    注記

    ロードバランサーは、API サーバーが /readyz エンドポイントをオフにしてからプールから API サーバーインスタンスを削除するまで最大 30 秒かかるように設定する必要があります。/readyz の後の時間枠内でエラーが返されたり、正常になったりする場合は、エンドポイントが削除または追加されているはずです。5 秒または 10 秒ごとのプロービングで、2 回連続成功すると正常、3 回連続失敗すると異常と判断する設定は、十分にテストされた値です。

  2. Application Ingress ロードバランサー: クラスター外から送られるアプリケーショントラフィックの Ingress ポイントを提供します。Ingress ルーターの作業用の設定が OpenShift Container Platform クラスターに必要です。

    以下の条件を設定します。

    • Layer 4 の負荷分散のみ。これは、Raw TCP または SSL パススルーモードと呼ばれます。
    • 選択可能なオプションやプラットフォーム上でホストされるアプリケーションの種類に基づいて、接続ベースの永続化またはセッションベースの永続化が推奨されます。
    ヒント

    クライアントの実際の IP アドレスがアプリケーション Ingress ロードバランサーによって確認できる場合、ソースの IP ベースのセッション永続化を有効にすると、エンドツーエンドの TLS 暗号化を使用するアプリケーションのパフォーマンスを強化できます。

    ロードバランサーのフロントとバックの両方で以下のポートを設定します。

    Expand
    表2.13 アプリケーション Ingress ロードバランサー
    ポートバックエンドマシン (プールメンバー)内部外部説明

    443

    デフォルトで Ingress コントローラー Pod、コンピュート、またはワーカーを実行するマシン。

    X

    X

    HTTPS トラフィック

    80

    デフォルトで Ingress コントローラー Pod、コンピュート、またはワーカーを実行するマシン。

    X

    X

    HTTP トラフィック

    注記

    ゼロ (0) コンピュートノードで 3 ノードクラスターをデプロイする場合、Ingress コントローラー Pod はコントロールプレーンノードで実行されます。3 ノードクラスターデプロイメントでは、HTTP および HTTPS トラフィックをコントロールプレーンノードにルーティングするようにアプリケーション Ingress ロードバランサーを設定する必要があります。

2.1.1.7.1. user-provisioned クラスターのロードバランサーの設定例

このセクションでは、user-provisioned クラスターの負荷分散要件を満たす API およびアプリケーション Ingress ロードバランサーの設定例を説明します。この例は、HAProxy ロードバランサーの /etc/haproxy/haproxy.cfg 設定です。この例では、特定の負荷分散ソリューションを選択するためのアドバイスを提供することを目的としていません。

この例では、同じロードバランサーが Kubernetes API およびアプリケーションの Ingress トラフィックに使用されます。実稼働のシナリオでは、API およびアプリケーション Ingress ロードバランサーを個別にデプロイし、それぞれのロードバランサーインフラストラクチャーを分離してスケーリングすることができます。

注記

HAProxy をロードバランサーとして使用し、SELinux が enforcing に設定されている場合は、setsebool -P haproxy_connect_any=1 を実行して、HAProxy サービスが設定済みの TCP ポートにバインドできることを確認する必要があります。

例2.3 API およびアプリケーション Ingress ロードバランサーの設定例

global
  log         127.0.0.1 local2
  pidfile     /var/run/haproxy.pid
  maxconn     4000
  daemon
defaults
  mode                    http
  log                     global
  option                  dontlognull
  option http-server-close
  option                  redispatch
  retries                 3
  timeout http-request    10s
  timeout queue           1m
  timeout connect         10s
  timeout client          1m
  timeout server          1m
  timeout http-keep-alive 10s
  timeout check           10s
  maxconn                 3000
listen api-server-6443 
1

  bind *:6443
  mode tcp
  option  httpchk GET /readyz HTTP/1.0
  option  log-health-checks
  balance roundrobin
  server bootstrap bootstrap.ocp4.example.com:6443 verify none check check-ssl inter 10s fall 2 rise 3 backup 
2

  server master0 master0.ocp4.example.com:6443 weight 1 verify none check check-ssl inter 10s fall 2 rise 3
  server master1 master1.ocp4.example.com:6443 weight 1 verify none check check-ssl inter 10s fall 2 rise 3
  server master2 master2.ocp4.example.com:6443 weight 1 verify none check check-ssl inter 10s fall 2 rise 3
listen machine-config-server-22623 
3

  bind *:22623
  mode tcp
  server bootstrap bootstrap.ocp4.example.com:22623 check inter 1s backup 
4

  server master0 master0.ocp4.example.com:22623 check inter 1s
  server master1 master1.ocp4.example.com:22623 check inter 1s
  server master2 master2.ocp4.example.com:22623 check inter 1s
listen ingress-router-443 
5

  bind *:443
  mode tcp
  balance source
  server compute0 compute0.ocp4.example.com:443 check inter 1s
  server compute1 compute1.ocp4.example.com:443 check inter 1s
listen ingress-router-80 
6

  bind *:80
  mode tcp
  balance source
  server compute0 compute0.ocp4.example.com:80 check inter 1s
  server compute1 compute1.ocp4.example.com:80 check inter 1s
Copy to Clipboard Toggle word wrap
1
ポート 6443 は Kubernetes API トラフィックを処理し、コントロールプレーンマシンを参照します。
2 4
ブートストラップエントリーは、OpenShift Container Platform クラスターのインストール前に有効にし、ブートストラッププロセスの完了後にそれらを削除する必要があります。
3
ポート 22623 はマシン設定サーバートラフィックを処理し、コントロールプレーンマシンを参照します。
5
ポート 443 は HTTPS トラフィックを処理し、Ingress コントローラー Pod を実行するマシンを参照します。Ingress コントローラー Pod はデフォルトでコンピュートマシンで実行されます。
6
ポート 80 は HTTP トラフィックを処理し、Ingress コントローラー Pod を実行するマシンを参照します。Ingress コントローラー Pod はデフォルトでコンピュートマシンで実行されます。
注記

ゼロ (0) コンピュートノードで 3 ノードクラスターをデプロイする場合、Ingress コントローラー Pod はコントロールプレーンノードで実行されます。3 ノードクラスターデプロイメントでは、HTTP および HTTPS トラフィックをコントロールプレーンノードにルーティングするようにアプリケーション Ingress ロードバランサーを設定する必要があります。

ヒント

HAProxy をロードバランサーとして使用する場合は、HAProxy ノードで netstat -nltupe を実行して、ポート 644322623443、および 80haproxy プロセスがリッスンしていることを確認することができます。

以下の手順を実行して、IBM Z® および IBM® LinuxONE に OpenShift Container Platform クラスターをインストールする準備をします。

  • クラスターのインターネット接続を検証します。
  • インストールプログラムをダウンロードします。

    注記

    非接続環境にインストールする場合は、ミラーリングしたコンテンツからインストールプログラムを抽出します。詳細は、非接続インストールのイメージのミラーリング を参照してください。

  • OpenShift CLI (oc) をインストールします。

    注記

    非接続環境にインストールする場合は、ミラーホストに oc をインストールします。

  • SSH キーペアを生成します。OpenShift Container Platform クラスターのデプロイ後にこのキーペアを使用して、クラスターのノードに対する認証を行うことができます。
  • DNS 解決を検証します。

2.2.1. OpenShift Container Platform のインターネットアクセス

OpenShift Container Platform 4.20 では、クラスターをインストールするためにインターネットアクセスが必要です。

次のアクションを実行するには、インターネットにアクセスできる必要があります。

  • OpenShift Cluster Manager にアクセスし、インストールプログラムをダウンロードし、サブスクリプション管理を実行します。クラスターがインターネットにアクセスでき、Telemetry を無効にしていない場合、そのサービスによってクラスターのサブスクリプションが自動的に有効化されます。
  • クラスターのインストールに必要なパッケージを取得するために Quay.io にアクセスします。
  • クラスターの更新を実行するために必要なパッケージを取得します。
重要

クラスターでインターネットに直接アクセスできない場合、プロビジョニングする一部のタイプのインフラストラクチャーでネットワークが制限されたインストールを実行できます。このプロセスで、必要なコンテンツをダウンロードし、これを使用してミラーレジストリーにインストールパッケージを設定します。インストールタイプに応じて、クラスターのインストール環境でインターネットアクセスが不要となる場合があります。クラスターを更新する前に、ミラーレジストリーのコンテンツを更新します。

2.2.2. インストールプログラムの取得

OpenShift Container Platform をインストールする前に、インストールファイルをプロビジョニングマシンにダウンロードします。

前提条件

  • Linux を実行するマシン (例: 500 MB のローカルディスク領域のある Red Hat Enterprise Linux 8) が必要です。

手順

  1. Red Hat Hybrid Cloud Console の Cluster Type ページに移動します。Red Hat アカウントがある場合は、認証情報を使用してログインします。アカウントがない場合はこれを作成します。

    ヒント
  2. ページの Run it yourself セクションからインフラストラクチャープロバイダーを選択します。
  3. OpenShift Installer のドロップダウンメニューからホストオペレーティングシステムとアーキテクチャーを選択し、Download Installer をクリックします。
  4. ダウンロードしたファイルを、インストール設定ファイルを保存するディレクトリーに配置します。

    重要
    • インストールプログラムは、クラスターのインストールに使用するコンピューターにいくつかのファイルを作成します。クラスターのインストール完了後は、インストールプログラムおよびインストールプログラムが作成するファイルを保持する必要があります。クラスターを削除するには、両方のファイルが必要です。
    • インストールプログラムで作成されたファイルを削除しても、クラスターがインストール時に失敗した場合でもクラスターは削除されません。クラスターを削除するには、特定のクラウドプロバイダー用の OpenShift Container Platform のアンインストール手順を実行します。
  5. インストールプログラムを展開します。たとえば、Linux オペレーティングシステムを使用するコンピューターで以下のコマンドを実行します。

    $ tar -xvf openshift-install-linux.tar.gz
    Copy to Clipboard Toggle word wrap
  6. Red Hat OpenShift Cluster Manager からインストールプルシークレット をダウンロードします。このプルシークレットを使用し、OpenShift Container Platform コンポーネントのコンテナーイメージを提供する Quay.io など、組み込まれた各種の認証局によって提供されるサービスで認証できます。
ヒント

Red Hat カスタマーポータル からインストールプログラムを取得することもできます。このページでは、ダウンロードするインストールプログラムのバージョンを指定できます。ただし、このページにアクセスするには、有効なサブスクリプションが必要です。

2.2.3. OpenShift CLI のインストール

OpenShift CLI (oc) をインストールすると、コマンドラインインターフェイスから OpenShift Container Platform を操作できます。oc は Linux、Windows、または macOS にインストールできます。

重要

以前のバージョンの oc をインストールした場合、それを使用して OpenShift Container Platform のすべてのコマンドを実行することはできません。

新しいバージョンの oc をダウンロードしてインストールしてください。

2.2.3.1. Linux への OpenShift CLI のインストール

以下の手順を使用して、OpenShift CLI (oc) バイナリーを Linux にインストールできます。

手順

  1. Red Hat カスタマーポータルの Download OpenShift Container Platform ページに移動します。
  2. Product Variant リストからアーキテクチャーを選択します。
  3. Version リストから適切なバージョンを選択します。
  4. OpenShift v4.20 Linux Clients エントリーの横にある Download Now をクリックして、ファイルを保存します。
  5. アーカイブを展開します。

    $ tar xvf <file>
    Copy to Clipboard Toggle word wrap
  6. oc バイナリーを、PATH にあるディレクトリーに配置します。

    PATH を確認するには、以下のコマンドを実行します。

    $ echo $PATH
    Copy to Clipboard Toggle word wrap

検証

  • OpenShift CLI のインストール後に、oc コマンドを使用して利用できます。

    $ oc <command>
    Copy to Clipboard Toggle word wrap
2.2.3.2. Windows への OpenShift CLI のインストール

以下の手順を使用して、OpenShift CLI (oc) バイナリーを Windows にインストールできます。

手順

  1. Red Hat カスタマーポータルの Download OpenShift Container Platform ページに移動します。
  2. Version リストから適切なバージョンを選択します。
  3. OpenShift v4.20 Windows Client エントリーの横にある Download Now をクリックして、ファイルを保存します。
  4. ZIP プログラムでアーカイブを展開します。
  5. oc バイナリーを、PATH にあるディレクトリーに移動します。

    PATH を確認するには、コマンドプロンプトを開いて以下のコマンドを実行します。

    C:\> path
    Copy to Clipboard Toggle word wrap

検証

  • OpenShift CLI のインストール後に、oc コマンドを使用して利用できます。

    C:\> oc <command>
    Copy to Clipboard Toggle word wrap
2.2.3.3. macOS への OpenShift CLI のインストール

以下の手順を使用して、OpenShift CLI (oc) バイナリーを macOS にインストールできます。

手順

  1. Red Hat カスタマーポータルの Download OpenShift Container Platform ページに移動します。
  2. バージョン ドロップダウンリストから適切なバージョンを選択します。
  3. OpenShift v4.20 macOS Clients エントリーの横にある Download Now をクリックして、ファイルを保存します。

    注記

    macOS arm64 の場合は、OpenShift v4.20 macOS arm64 Client エントリーを選択します。

  4. アーカイブを展開し、解凍します。
  5. oc バイナリーをパスにあるディレクトリーに移動します。

    PATH を確認するには、ターミナルを開き、以下のコマンドを実行します。

    $ echo $PATH
    Copy to Clipboard Toggle word wrap

検証

  • oc コマンドを使用してインストールを確認します。

    $ oc <command>
    Copy to Clipboard Toggle word wrap

2.2.4. クラスターノードの SSH アクセス用のキーペアの生成

OpenShift Container Platform のインストール時に、インストールプログラムに SSH 公開鍵を提供できます。この鍵は、Ignition 設定ファイルを介して Red Hat Enterprise Linux CoreOS (RHCOS) ノードに渡され、ノードへの SSH アクセスを認証するために使用されます。鍵は各ノードの core ユーザーの ~/.ssh/authorized_keys リストに追加されます。これにより、パスワードなしの認証が可能になります。

鍵がノードに渡されたら、鍵ペアを使用して、core ユーザーとして RHCOS ノードに SSH 接続できます。SSH 経由でノードにアクセスするには、秘密鍵のアイデンティティーをローカルユーザーの SSH で管理する必要があります。

インストールのデバッグまたは障害復旧を実行するためにクラスターノードに対して SSH を実行する場合は、インストールプロセスの間に SSH 公開鍵を指定する必要があります。./openshift-install gather コマンドでは、SSH 公開鍵がクラスターノードに配置されている必要もあります。

重要

障害復旧およびデバッグが必要な実稼働環境では、この手順を省略しないでください。

手順

  1. クラスターノードへの認証に使用するローカルマシンに既存の SSH キーペアがない場合は、これを作成します。たとえば、Linux オペレーティングシステムを使用するコンピューターで以下のコマンドを実行します。

    $ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> 
    1
    Copy to Clipboard Toggle word wrap
    1
    新しい SSH キーのパスとファイル名 (~/.ssh/id_ed25519 など) を指定します。既存のキーペアがある場合は、公開鍵が ~/.ssh ディレクトリーにあることを確認します。
    注記

    x86_64ppc64le、および s390x アーキテクチャーのみで FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用する OpenShift Container Platform クラスターをインストールする予定がある場合は、ed25519 アルゴリズムを使用するキーを作成しないでください。代わりに、rsa アルゴリズムまたは ecdsa アルゴリズムを使用するキーを作成します。

  2. SSH 公開鍵を表示します。

    $ cat <path>/<file_name>.pub
    Copy to Clipboard Toggle word wrap

    たとえば、次のコマンドを実行して ~/.ssh/id_ed25519.pub 公開鍵を表示します。

    $ cat ~/.ssh/id_ed25519.pub
    Copy to Clipboard Toggle word wrap
  3. ローカルユーザーの SSH エージェントに SSH 秘密鍵 ID が追加されていない場合は、それを追加します。キーの SSH エージェント管理は、クラスターノードへのパスワードなしの SSH 認証、または ./openshift-install gather コマンドを使用する場合は必要になります。

    注記

    一部のディストリビューションでは、~/.ssh/id_rsa および ~/.ssh/id_dsa などのデフォルトの SSH 秘密鍵のアイデンティティーは自動的に管理されます。

    1. ssh-agent プロセスがローカルユーザーに対して実行されていない場合は、バックグラウンドタスクとして開始します。

      $ eval "$(ssh-agent -s)"
      Copy to Clipboard Toggle word wrap

      出力例

      Agent pid 31874
      Copy to Clipboard Toggle word wrap

      注記

      クラスターが FIPS モードにある場合は、FIPS 準拠のアルゴリズムのみを使用して SSH キーを生成します。鍵は RSA または ECDSA のいずれかである必要があります。

  4. SSH プライベートキーを ssh-agent に追加します。

    $ ssh-add <path>/<file_name> 
    1
    Copy to Clipboard Toggle word wrap
    1
    ~/.ssh/id_ed25519 などの、SSH プライベートキーのパスおよびファイル名を指定します。

    出力例

    Identity added: /home/<you>/<path>/<file_name> (<computer_name>)
    Copy to Clipboard Toggle word wrap

次のステップ

  • OpenShift Container Platform をインストールする際に、SSH パブリックキーをインストールプログラムに指定します。

2.2.5. user-provisioned infrastructure の DNS 解決の検証

OpenShift Container Platform を user-provisioned infrastructure にインストールする前に、DNS 設定を検証できます。

重要

このセクションの検証手順は、クラスターのインストール前に正常に実行される必要があります。

前提条件

  • user-provisioned infrastructure に必要な DNS レコードを設定している。

手順

  1. インストールノードから、Kubernetes API、ワイルドカードルート、およびクラスターノードのレコード名に対して DNS ルックアップを実行します。応答に含まれる IP アドレスが正しいコンポーネントに対応することを確認します。

    1. Kubernetes API レコード名に対してルックアップを実行します。結果が API ロードバランサーの IP アドレスを参照することを確認します。

      $ dig +noall +answer @<nameserver_ip> api.<cluster_name>.<base_domain> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <nameserver_ip> をネームサーバーの IP アドレスに、<cluster_name> をクラスター名に、<base_domain> をベースドメイン名に置き換えます。

      出力例

      api.ocp4.example.com.		604800	IN	A	192.168.1.5
      Copy to Clipboard Toggle word wrap

    2. Kubernetes 内部 API レコード名に対してルックアップを実行します。結果が API ロードバランサーの IP アドレスを参照することを確認します。

      $ dig +noall +answer @<nameserver_ip> api-int.<cluster_name>.<base_domain>
      Copy to Clipboard Toggle word wrap

      出力例

      api-int.ocp4.example.com.		604800	IN	A	192.168.1.5
      Copy to Clipboard Toggle word wrap

    3. *.apps.<cluster_name>.<base_domain> DNS ワイルドカードルックアップの例をテストします。すべてのアプリケーションのワイルドカードルックアップは、アプリケーション Ingress ロードバランサーの IP アドレスに解決する必要があります。

      $ dig +noall +answer @<nameserver_ip> random.apps.<cluster_name>.<base_domain>
      Copy to Clipboard Toggle word wrap

      出力例

      random.apps.ocp4.example.com.		604800	IN	A	192.168.1.5
      Copy to Clipboard Toggle word wrap

      注記

      出力例では、同じロードバランサーが Kubernetes API およびアプリケーションの Ingress トラフィックに使用されます。実稼働のシナリオでは、API およびアプリケーション Ingress ロードバランサーを個別にデプロイし、それぞれのロードバランサーインフラストラクチャーを分離してスケーリングすることができます。

      random は、別のワイルドカード値に置き換えることができます。たとえば、OpenShift Container Platform コンソールへのルートをクエリーできます。

      $ dig +noall +answer @<nameserver_ip> console-openshift-console.apps.<cluster_name>.<base_domain>
      Copy to Clipboard Toggle word wrap

      出力例

      console-openshift-console.apps.ocp4.example.com. 604800 IN	A 192.168.1.5
      Copy to Clipboard Toggle word wrap

    4. ブートストラップ DNS レコード名に対してルックアップを実行します。結果がブートストラップノードの IP アドレスを参照することを確認します。

      $ dig +noall +answer @<nameserver_ip> bootstrap.<cluster_name>.<base_domain>
      Copy to Clipboard Toggle word wrap

      出力例

      bootstrap.ocp4.example.com.		604800	IN	A	192.168.1.96
      Copy to Clipboard Toggle word wrap

    5. この方法を使用して、コントロールプレーンおよびコンピュートノードの DNS レコード名に対してルックアップを実行します。結果が各ノードの IP アドレスに対応していることを確認します。
  2. インストールノードから、ロードバランサーとクラスターノードの IP アドレスに対して逆引き DNS ルックアップを実行します。応答に含まれるレコード名が正しいコンポーネントに対応することを確認します。

    1. API ロードバランサーの IP アドレスに対して逆引き参照を実行します。応答に、Kubernetes API および Kubernetes 内部 API のレコード名が含まれていることを確認します。

      $ dig +noall +answer @<nameserver_ip> -x 192.168.1.5
      Copy to Clipboard Toggle word wrap

      出力例

      5.1.168.192.in-addr.arpa. 604800	IN	PTR	api-int.ocp4.example.com. 
      1
      
      5.1.168.192.in-addr.arpa. 604800	IN	PTR	api.ocp4.example.com. 
      2
      Copy to Clipboard Toggle word wrap

      1
      Kubernetes 内部 API のレコード名を指定します。
      2
      Kubernetes API のレコード名を指定します。
      注記

      PTR レコードは、OpenShift Container Platform アプリケーションのワイルドカードには必要ありません。アプリケーション Ingress ロードバランサーの IP アドレスに対する逆引き DNS 解決の検証手順は必要ありません。

    2. ブートストラップノードの IP アドレスに対して逆引き参照を実行します。結果がブートストラップノードの DNS レコード名を参照していることを確認します。

      $ dig +noall +answer @<nameserver_ip> -x 192.168.1.96
      Copy to Clipboard Toggle word wrap

      出力例

      96.1.168.192.in-addr.arpa. 604800	IN	PTR	bootstrap.ocp4.example.com.
      Copy to Clipboard Toggle word wrap

    3. この方法を使用して、コントロールプレーンおよびコンピュートノードの IP アドレスに対して逆引きルックアップを実行します。結果が各ノードの DNS レコード名に対応していることを確認します。

2.3. z/VM を使用したクラスターの IBM Z および IBM IBM® LinuxONE へのインストール

OpenShift Container Platform バージョン 4.20 では、ユーザーがプロビジョニングする IBM Z® または IBM® LinuxONE インフラストラクチャーにクラスターをインストールできます。

注記

このドキュメントは IBM Z® のみを参照しますが、これに含まれるすべての情報は IBM® LinuxONE にも適用されます。

2.3.1. 前提条件

注記

プロキシーを設定する場合は、このサイトリストも確認してください。

2.3.2. user-provisioned infrastructure の準備

user-provisioned infrastructure に OpenShift Container Platform をインストールする前に、基礎となるインフラストラクチャーを準備する必要があります。

このセクションでは、OpenShift Container Platform インストールの準備としてクラスターインフラストラクチャーを設定するために必要な手順の概要を説明します。これには、クラスターノード用の IP ネットワークおよびネットワーク接続の設定、Ignition ファイルの Web サーバーの準備、ファイアウォール経由での必要なポートの有効化、必要な DNS および負荷分散インフラストラクチャーの設定が含まれます。

準備後、クラスターインフラストラクチャーは、user-provisioned infrastructure を使用したクラスターの要件 セクションで説明されている要件を満たす必要があります。

前提条件

手順

  1. 静的 IP アドレスをセットアップします。
  2. HTTP または HTTPS サーバーを設定し、Ignition ファイルをクラスターノードに提供します。
  3. ネットワークインフラストラクチャーがクラスターコンポーネント間の必要なネットワーク接続を提供することを確認します。要件に関する詳細は、user-provisioned infrastructure のネットワーク要件 のセクションを参照してください。
  4. OpenShift Container Platform クラスターコンポーネントで通信するために必要なポートを有効にするようにファイアウォールを設定します。必要なポートの詳細は、user-provisioned infrastructure のネットワーク要件 のセクションを参照してください。

    重要

    デフォルトで、ポート 1936 は OpenShift Container Platform クラスターにアクセスできます。これは、各コントロールプレーンノードがこのポートへのアクセスを必要とするためです。

    Ingress ロードバランサーを使用してこのポートを公開しないでください。これを実行すると、Ingress コントローラーに関連する統計やメトリクスなどの機密情報が公開される可能性があるためです。

  5. クラスターに必要な DNS インフラストラクチャーを設定します。

    1. Kubernetes API、アプリケーションワイルドカード、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンの DNS 名前解決を設定します。
    2. Kubernetes API、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンの逆引き DNS 解決を設定します。

      OpenShift Container Platform DNS 要件の詳細は、user-provisioned DNS 要件 のセクションを参照してください。

  6. DNS 設定を検証します。

    1. インストールノードから、Kubernetes API、ワイルドカードルート、およびクラスターノードのレコード名に対して DNS ルックアップを実行します。応答の IP アドレスが正しいコンポーネントに対応することを確認します。
    2. インストールノードから、ロードバランサーとクラスターノードの IP アドレスに対して逆引き DNS ルックアップを実行します。応答のレコード名が正しいコンポーネントに対応することを確認します。

      DNS 検証手順の詳細は、user-provisioned infrastructure の DNS 解決の検証 のセクションを参照してください。

  7. 必要な API およびアプリケーションの Ingress 負荷分散インフラストラクチャーをプロビジョニングします。要件に関する詳細は、user-provisioned infrastructure の負荷分散要件 のセクションを参照してください。
注記

一部の負荷分散ソリューションでは、負荷分散を初期化する前に、クラスターノードの DNS 名前解決を有効化する必要があります。

2.3.3. インストール設定ファイルの手動作成

クラスターをインストールするには、インストール設定ファイルを手動で作成する必要があります。

前提条件

  • インストールプログラムで使用するための SSH 公開鍵がローカルマシン上に存在する。この鍵は、デバッグや障害復旧のために、クラスターノードへの SSH 認証に使用できます。
  • OpenShift Container Platform インストールプログラムとクラスターのプルシークレットを取得している。

手順

  1. 必要なインストールアセットを保存するためのインストールディレクトリーを作成します。

    $ mkdir <installation_directory>
    Copy to Clipboard Toggle word wrap
    重要

    このディレクトリーは必ず作成してください。ブートストラップ X.509 証明書などの一部のインストールアセットは、有効期限が短いため、インストールディレクトリーを再利用しないでください。別のクラスターインストールの個別のファイルを再利用する必要がある場合は、それらをディレクトリーにコピーすることができます。ただし、インストールアセットのファイル名はリリース間で変更される可能性があります。インストールファイルを以前のバージョンの OpenShift Container Platform からコピーする場合は注意してください。

  2. 提供されているサンプルの install-config.yaml ファイルテンプレートをカスタマイズし、ファイルを <installation_directory> に保存します。

    注記

    この設定ファイルの名前を install-config.yaml と付ける必要があります。

  3. 多くのクラスターのインストールに使用できるように、install-config.yaml ファイルをバックアップします。

    重要

    インストールプロセスの次のステップで install-config.yaml ファイルを使用するため、今すぐこのファイルをバックアップしてください。

2.3.3.1. IBM Z のサンプル install-config.yaml ファイル

install-config.yaml ファイルをカスタマイズして、OpenShift Container Platform クラスターのプラットフォームに関する詳細を指定するか、必要なパラメーターの値を変更することができます。

apiVersion: v1
baseDomain: example.com 
1

compute: 
2

- hyperthreading: Enabled 
3

  name: worker
  replicas: 0 
4

  architecture: s390x
controlPlane: 
5

  hyperthreading: Enabled 
6

  name: master
  replicas: 3 
7

  architecture: s390x
metadata:
  name: test 
8

networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14 
9

    hostPrefix: 23 
10

  networkType: OVNKubernetes 
11

  serviceNetwork: 
12

  - 172.30.0.0/16
platform:
  none: {} 
13

fips: false 
14

pullSecret: '{"auths": ...}' 
15

sshKey: 'ssh-ed25519 AAAA...' 
16
Copy to Clipboard Toggle word wrap
1
クラスターのベースドメイン。すべての DNS レコードはこのベースのサブドメインである必要があり、クラスター名が含まれる必要があります。
2 5
controlPlane セクションは単一マッピングですが、compute セクションはマッピングのシーケンスになります。複数の異なるデータ構造の要件を満たすには、compute セクションの最初の行はハイフン - で始め、controlPlane セクションの最初の行はハイフンで始めることができません。1 つのコントロールプレーンプールのみが使用されます。
3 6
同時マルチスレッド (SMT) またはハイパースレッディングを有効/無効にするかどうかを指定します。デフォルトでは、SMT はマシンのコアのパフォーマンスを上げるために有効にされます。パラメーター値を Disabled に設定するとこれを無効にすることができます。SMT を無効にする場合、これをすべてのクラスターマシンで無効にする必要があります。これにはコントロールプレーンとコンピュートマシンの両方が含まれます。
注記

同時マルチスレッド (SMT) はデフォルトで有効になっています。SMT が OpenShift Container Platform ノードで利用できない場合、hyperthreading パラメーターは影響を受けません。

重要

OpenShift Container Platform ノードまたは install-config.yaml ファイルであるかに関係なく hyperthreading を無効にする場合、容量計画においてマシンのパフォーマンスの大幅な低下が考慮に入れられていることを確認します。

4
OpenShift Container Platform を user-provisioned infrastructure にインストールする場合は、この値を 0 に設定する必要があります。installer-provisioned installation では、パラメーターはクラスターが作成し、管理するコンピュートマシンの数を制御します。user-provisioned installation では、クラスターのインストールの終了前にコンピュートマシンを手動でデプロイする必要があります。
注記

3 ノードクラスターをインストールする場合は、Red Hat Enterprise Linux CoreOS (RHCOS) マシンをインストールする際にコンピュートマシンをデプロイしないでください。

7
クラスターに追加するコントロールプレーンマシンの数。クラスターをこれらの値をクラスターの etcd エンドポイント数として使用するため、値はデプロイするコントロールプレーンマシンの数に一致する必要があります。
8
DNS レコードに指定したクラスター名。
9
Pod IP アドレスの割り当てに使用する IP アドレスのブロック。このブロックは既存の物理ネットワークと重複できません。これらの IP アドレスは Pod ネットワークに使用されます。外部ネットワークから Pod にアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定する必要があります。
注記

クラス E の CIDR 範囲は、将来の使用のために予約されています。クラス E CIDR 範囲を使用するには、ネットワーク環境がクラス E CIDR 範囲内の IP アドレスを受け入れるようにする必要があります。

10
それぞれの個別ノードに割り当てるサブネット接頭辞長。たとえば、hostPrefix23 に設定されている場合、各ノードに指定の cidr から /23 サブネットが割り当てられます。これにより、510 (2^(32 - 23) - 2) Pod IP アドレスが許可されます。外部ネットワークからのノードへのアクセスを提供する必要がある場合には、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
11
インストールするクラスターネットワークプラグイン。サポートされる値はデフォルト値の OVNKubernetes のみです。
12
サービス IP アドレスに使用する IP アドレスプール。1 つの IP アドレスプールのみを入力できます。このブロックは既存の物理ネットワークと重複できません。外部ネットワークからサービスにアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
13
プラットフォームを none に設定する必要があります。IBM Z® インフラストラクチャー用に追加のプラットフォーム設定変数を指定できません。
重要

プラットフォームタイプ none でインストールされたクラスターは、Machine API を使用したコンピューティングマシンの管理など、一部の機能を使用できません。この制限は、クラスターに接続されている計算マシンが、通常はこの機能をサポートするプラットフォームにインストールされている場合でも適用されます。このパラメーターは、インストール後に変更することはできません。

14
FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
重要

クラスターで FIPS モードを有効にするには、FIPS モードで動作するように設定された Red Hat Enterprise Linux (RHEL) コンピューターからインストールプログラムを実行する必要があります。RHEL で FIPS モードを設定する方法の詳細は、RHEL から FIPS モードへの切り替え を参照してください。

FIPS モードでブートされた Red Hat Enterprise Linux (RHEL) または Red Hat Enterprise Linux CoreOS (RHCOS) を実行する場合、OpenShift Container Platform コアコンポーネントは、x86_64、ppc64le、および s390x アーキテクチャーのみで、FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用します。

15
Red Hat OpenShift Cluster Manager からのプルシークレット。このプルシークレットを使用し、OpenShift Container Platform コンポーネントのコンテナーイメージを提供する Quay.io など、組み込まれた各種の認証局によって提供されるサービスで認証できます。
16
Red Hat Enterprise Linux CoreOS (RHCOS) の core ユーザーの SSH 公開鍵。
注記

インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、ssh-agent プロセスが使用する SSH キーを指定します。

2.3.3.2. インストール時のクラスター全体のプロキシーの設定

実稼働環境では、インターネットへの直接アクセスを拒否し、代わりに HTTP または HTTPS プロキシーを使用することができます。プロキシー設定を install-config.yaml ファイルで行うことにより、新規の OpenShift Container Platform クラスターをプロキシーを使用するように設定できます。

前提条件

  • 既存の install-config.yaml ファイルがある。
  • クラスターがアクセスする必要のあるサイトを確認済みで、それらのいずれかがプロキシーをバイパスする必要があるかどうかを判別している。デフォルトで、すべてのクラスター Egress トラフィック (クラスターをホストするクラウドに関するクラウドプロバイダー API に対する呼び出しを含む) はプロキシーされます。プロキシーを必要に応じてバイパスするために、サイトを Proxy オブジェクトの spec.noProxy フィールドに追加している。

    注記

    Proxy オブジェクトの status.noProxy フィールドには、インストール設定の networking.machineNetwork[].cidrnetworking.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) も設定されます。

手順

  1. 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.com 
    3
    
    additionalTrustBundle: | 
    4
    
        -----BEGIN CERTIFICATE-----
        <MY_TRUSTED_CA_CERT>
        -----END CERTIFICATE-----
    additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle> 
    5
    Copy to Clipboard Toggle word wrap
    1
    クラスター外の HTTP 接続を作成するために使用するプロキシー URL。URL スキームは http である必要があります。
    2
    クラスター外で HTTPS 接続を作成するために使用するプロキシー URL。
    3
    プロキシーから除外するための宛先ドメイン名、IP アドレス、または他のネットワーク CIDR のコンマ区切りのリスト。サブドメインのみと一致するように、ドメインの前に . を付けます。たとえば、.y.comx.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 config 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
    Copy to Clipboard Toggle word wrap
  2. ファイルを保存し、OpenShift Container Platform のインストール時にこれを参照します。

インストールプログラムは、指定の install-config.yaml ファイルのプロキシー設定を使用する cluster という名前のクラスター全体のプロキシーを作成します。プロキシー設定が指定されていない場合、cluster Proxy オブジェクトが依然として作成されますが、これには spec がありません。

注記

cluster という名前の Proxy オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。

2.3.3.3. 3 ノードクラスターの設定

オプションで、3 台のコントロールプレーンマシンのみで構成される最小の 3 つのノードクラスターにゼロコンピュートマシンをデプロイできます。これにより、テスト、開発、および実稼働に使用するための小規模なリソース効率の高いクラスターが、クラスター管理者および開発者に提供されます。

3 ノードの OpenShift Container Platform 環境では、3 つのコントロールプレーンマシンがスケジュール対象となります。つまり、アプリケーションのワークロードがそれらで実行されるようにスケジュールされます。

前提条件

  • 既存の install-config.yaml ファイルがある。

手順

  • 以下の compute スタンザに示されるように、コンピュートレプリカの数が install-config.yaml ファイルで 0 に設定されることを確認します。

    compute:
    - name: worker
      platform: {}
      replicas: 0
    Copy to Clipboard Toggle word wrap
    注記

    デプロイするコンピュートマシンの数にかかわらず、OpenShift Container Platform を user-provisioned infrastructure にインストールする際に、コンピュートマシンの replicas パラメーターの値を 0 に設定する必要があります。installer-provisioned installation では、パラメーターはクラスターが作成し、管理するコンピュートマシンの数を制御します。これは、コンピュートマシンが手動でデプロイされる、user-provisioned installation には適用されません。

    注記

    コントロールプレーンノードの推奨リソースは 6 vCPU および 21 GB です。コントロールプレーンノードが 3 つの場合には、これは最小の 5 ノードクラスターと同等のメモリー + vCPU です。3 つのノードをバックする必要があります。それぞれに、SMT2 が有効な IFL が 3 つ含まれる 120 GB ディスクにインストールします。各コントロールプレーンノードのテスト済みの最小設定とは、120 GB ディスクに 3 つの vCPU および 10 GB が指定された設定です。

3 ノードのクラスターのインストールで、以下の手順を実行します。

  • ゼロ (0) コンピュートノードで 3 ノードクラスターをデプロイする場合、Ingress コントローラー Pod はコントロールプレーンノードで実行されます。3 ノードクラスターデプロイメントでは、HTTP および HTTPS トラフィックをコントロールプレーンノードにルーティングするようにアプリケーション Ingress ロードバランサーを設定する必要があります。詳細は、user-provisioned infrastructure の負荷分散要件 のセクションを参照してください。
  • 以下の手順で Kubernetes マニフェストファイルを作成する際に、<installation_directory>/manifests/cluster-scheduler-02-config.yml ファイルの mastersSchedulable パラメーターが true に設定されていることを確認します。これにより、アプリケーションのワークロードがコントロールプレーンノードで実行できます。
  • Red Hat Enterprise Linux CoreOS (RHCOS) マシンを作成する際は、コンピュートノードをデプロイしないでください。

2.3.4. Cluster Network Operator の設定

クラスターネットワークの設定は、Cluster Network Operator (CNO) 設定の一部として指定され、cluster という名前のカスタムリソース (CR) オブジェクトに保存されます。CR は operator.openshift.io API グループの Network API のフィールドを指定します。

CNO 設定は、Network.config.openshift.io API グループの Network API からクラスターのインストール時に以下のフィールドを継承します。

clusterNetwork
Pod IP アドレスの割り当てに使用する IP アドレスプール。
serviceNetwork
サービスの IP アドレスプール。
defaultNetwork.type
クラスターネットワークプラグイン。OVNKubernetes は、インストール時にサポートされる唯一のプラグインです。

defaultNetwork オブジェクトのフィールドを cluster という名前の CNO オブジェクトに設定することにより、クラスターのクラスターネットワークプラグイン設定を指定できます。

2.3.4.1. Cluster Network Operator 設定オブジェクト

Cluster Network Operator (CNO) のフィールドは以下の表で説明されています。

Expand
表2.14 Cluster Network Operator 設定オブジェクト
フィールド説明

metadata.name

string

CNO オブジェクトの名前。この名前は常に cluster です。

spec.clusterNetwork

array

Pod IP アドレスの割り当て、サブネット接頭辞の長さのクラスター内の個別ノードへの割り当てに使用される IP アドレスのブロックを指定するリストです。以下に例を示します。

spec:
  clusterNetwork:
  - cidr: 10.128.0.0/19
    hostPrefix: 23
  - cidr: 10.128.32.0/19
    hostPrefix: 23
Copy to Clipboard Toggle word wrap

spec.serviceNetwork

array

サービスの IP アドレスのブロック。OVN-Kubernetes ネットワークプラグインは、サービスネットワークに対して単一の IP アドレスブロックのみをサポートします。以下に例を示します。

spec:
  serviceNetwork:
  - 172.30.0.0/14
Copy to Clipboard Toggle word wrap

マニフェストを作成する前に、このフィールドを install-config.yaml ファイルでのみカスタマイズすることができます。この値は、マニフェストファイルでは読み取り専用です。

spec.defaultNetwork

object

クラスターネットワークのネットワークプラグインを設定します。

spec.additionalRoutingCapabilities.providers

array

この設定により、動的ルーティングプロバイダーが有効になります。ルートアドバタイズ機能には、FRR ルーティング機能プロバイダーが必要です。サポートされている値は FRR のみです。

  • FRR: FRR ルーティングプロバイダー
spec:
  additionalRoutingCapabilities:
    providers:
    - FRR
Copy to Clipboard Toggle word wrap

spec.kubeProxyConfig

object

このオブジェクトのフィールドは、kube-proxy 設定を指定します。OVN-Kubernetes クラスターネットワークプラグインを使用している場合、kube-proxy 設定は機能しません。

重要

複数のネットワークにオブジェクトをデプロイする必要があるクラスターの場合は、install-config.yaml ファイルで定義されている各ネットワークタイプの clusterNetwork.hostPrefix パラメーターに、必ず同じ値を指定してください。clusterNetwork.hostPrefix パラメーターにそれぞれ異なる値を設定すると、OVN-Kubernetes ネットワークプラグインに影響が及び、異なるノード間のオブジェクトトラフィックをプラグインが効果的にルーティングできなくなる可能性があります。

2.3.4.1.1. defaultNetwork オブジェクト設定

defaultNetwork オブジェクトの値は、以下の表で定義されます。

Expand
表2.15 defaultNetwork オブジェクト
フィールド説明

type

string

OVNKubernetes。Red Hat OpenShift Networking ネットワークプラグインは、インストール中に選択されます。この値は、クラスターのインストール後は変更できません。

注記

OpenShift Container Platform は、デフォルトで OVN-Kubernetes ネットワークプラグインを使用します。

ovnKubernetesConfig

object

このオブジェクトは、OVN-Kubernetes ネットワークプラグインに対してのみ有効です。

2.3.4.1.1.1. OVN-Kubernetes ネットワークプラグインの設定

次の表では、OVN-Kubernetes ネットワークプラグインの設定フィールドを説明します。

Expand
表2.16 ovnKubernetesConfig オブジェクト
フィールド説明

mtu

integer

Geneve (Generic Network Virtualization Encapsulation) オーバーレイネットワークの MTU (maximum transmission unit)。これは、プライマリーネットワークインターフェイスの MTU に基づいて自動的に検出されます。通常、検出された MTU をオーバーライドする必要はありません。

自動検出した値が予想される値ではない場合は、ノード上のプライマリーネットワークインターフェイスの MTU が正しいことを確認します。このオプションを使用して、ノード上のプライマリーネットワークインターフェイスの MTU 値を変更することはできません。

クラスターで異なるノードに異なる MTU 値が必要な場合、この値をクラスター内の最小の MTU 値よりも 100 小さく設定する必要があります。たとえば、クラスター内の一部のノードでは MTU が 9001 であり、MTU が 1500 のクラスターもある場合には、この値を 1400 に設定する必要があります。

genevePort

integer

すべての Geneve パケットに使用するポート。デフォルト値は 6081 です。この値は、クラスターのインストール後は変更できません。

ipsecConfig

object

IPsec 設定をカスタマイズするための設定オブジェクトを指定します。

ipv4

object

IPv4 設定の設定オブジェクトを指定します。

ipv6

object

IPv6 設定の設定オブジェクトを指定します。

policyAuditConfig

object

ネットワークポリシー監査ロギングをカスタマイズする設定オブジェクトを指定します。指定されていない場合は、デフォルトの監査ログ設定が使用されます。

routeAdvertisements

string

クラスターネットワークルートをアドバタイズするかどうかを指定します。デフォルト値は、Disabled です。

  • Enabled: ルートをクラスターネットワークにインポートし、RouteAdvertisements オブジェクトで設定されているとおりに、クラスターネットワークルートをアドバタイズします。
  • Disabled: クラスターネットワークにルートをインポートしたり、クラスターネットワークルートをアドバタイズしたりしないでください。

gatewayConfig

object

オプション: Egress トラフィックのノードゲートウェイへの送信方法をカスタマイズするための設定オブジェクトを指定します。有効な値は SharedLocal です。デフォルト値は Shared です。デフォルト設定では、Open vSwitch (OVS) がトラフィックをノード IP インターフェイスに直接出力します。Local 設定では、トラフィックがホストネットワークを通過し、その結果、ホストのルーティングテーブルに適用されます。

注記

Egress トラフィックの移行中は、Cluster Network Operator (CNO) が変更を正常にロールアウトするまで、ワークロードとサービストラフィックに多少の中断が発生することが予想されます。

Expand
表2.17 ovnKubernetesConfig.ipv4 object
フィールド説明

internalTransitSwitchSubnet

string

既存のネットワークインフラストラクチャーが 100.88.0.0/16 IPv4 サブネットと重複している場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。east-west トラフィックを可能にする分散トランジットスイッチのサブネット。このサブネットは、OVN-Kubernetes またはホスト自体で使用される他のサブネットと重複することはできません。クラスター内のノードごとに 1 つの IP アドレスを収容できる必要があります。

デフォルト値は 100.88.0.0/16 です。

internalJoinSubnet

string

既存のネットワークインフラストラクチャーが 100.64.0.0/16 IPv4 サブネットと重複している場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。IP アドレス範囲が、OpenShift Container Platform インストールで使用される他のサブネットと重複しないようにする必要があります。IP アドレス範囲は、クラスターに追加できるノードの最大数より大きくする必要があります。たとえば、clusterNetwork.cidr 値が 10.128.0.0/14 で、clusterNetwork.hostPrefix 値が /23 の場合、ノードの最大数は 2^(23-14)=512 です。

デフォルト値は 100.64.0.0/16 です。

Expand
表2.18 ovnKubernetesConfig.ipv6 object
フィールド説明

internalTransitSwitchSubnet

string

既存のネットワークインフラストラクチャーが fd97::/64 IPv6 サブネットと重複する場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。east-west トラフィックを可能にする分散トランジットスイッチのサブネット。このサブネットは、OVN-Kubernetes またはホスト自体で使用される他のサブネットと重複することはできません。クラスター内のノードごとに 1 つの IP アドレスを収容できる必要があります。

デフォルト値は fd97::/64 です。

internalJoinSubnet

string

既存のネットワークインフラストラクチャーが fd98::/64 IPv6 サブネットと重複する場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。IP アドレス範囲が、OpenShift Container Platform インストールで使用される他のサブネットと重複しないようにする必要があります。IP アドレス範囲は、クラスターに追加できるノードの最大数より大きくする必要があります。

デフォルト値は fd98::/64 です。

Expand
表2.19 policyAuditConfig オブジェクト
フィールド説明

rateLimit

integer

ノードごとに毎秒生成されるメッセージの最大数。デフォルト値は、1 秒あたり 20 メッセージです。

maxFileSize

integer

監査ログの最大サイズ (バイト単位)。デフォルト値は 50000000 (50MB) です。

maxLogFiles

integer

保持されるログファイルの最大数。

destination

string

以下の追加の監査ログターゲットのいずれかになります。

libc
ホスト上の journald プロセスの libc syslog() 関数。
udp:<host>:<port>
syslog サーバー。<host>:<port> を syslog サーバーのホストおよびポートに置き換えます。
unix:<file>
<file> で指定された Unix ドメインソケットファイル。
null
監査ログを追加のターゲットに送信しないでください。

syslogFacility

string

RFC5424 で定義される kern などの syslog ファシリティー。デフォルト値は local0 です。

Expand
表2.20 gatewayConfig オブジェクト
フィールド説明

routingViaHost

boolean

Pod からホストネットワークスタックへの Egress トラフィックを送信するには、このフィールドを true に設定します。インストールおよびアプリケーションがカーネルルーティングテーブルに手動設定されたルートに依存するなど非常に特化されている場合には、Egress トラフィックをホストネットワークスタックにルーティングすることを推奨します。デフォルトでは、Egress トラフィックは OVN で処理され、クラスターを終了するために処理され、トラフィックはカーネルルーティングテーブルの特殊なルートによる影響を受けません。デフォルト値は false です。

このフィールドで、Open vSwitch ハードウェアオフロード機能との対話が可能になりました。このフィールドを true に設定すると、Egress トラフィックがホストネットワークスタックで処理されるため、パフォーマンス的に、オフロードによる利点は得られません。

ipForwarding

object

Network リソースの ipForwarding 仕様を使用して、OVN-Kubernetes マネージドインターフェイス上のすべてのトラフィックの IP フォワーディングを制御できます。Kubernetes 関連のトラフィックの IP フォワーディングのみを許可するには、Restricted を指定します。すべての IP トラフィックの転送を許可するには、Global を指定します。新規インストールの場合、デフォルトは Restricted です。OpenShift Container Platform 4.14 以降に更新する場合、デフォルトは Global です。

注記

デフォルト値の Restricted では、IP 転送がドロップされるように設定されます。

ipv4

object

オプション: IPv4 アドレスのホストからサービスへのトラフィック用の内部 OVN-Kubernetes マスカレードアドレスを設定するオブジェクトを指定します。

ipv6

object

オプション: IPv6 アドレスのホストからサービスへのトラフィックの内部 OVN-Kubernetes マスカレードアドレスを設定するオブジェクトを指定します。

Expand
表2.21 gatewayConfig.ipv4 object
フィールド説明

internalMasqueradeSubnet

string

ホストからサービスへのトラフィックを有効にするために内部的に使用されるマスカレード IPv4 アドレス。ホストは、これらの IP アドレスと共有ゲートウェイブリッジインターフェイスを使用して設定されます。デフォルト値は 169.254.169.0/29 です。

重要

OpenShift Container Platform 4.17 以降のバージョンでは、クラスターはデフォルトのマスカレードサブネットとして 169.254.0.0/17 を使用します。アップグレードされたクラスターの場合は、デフォルトのマスカレードサブネットに変更がありません。

Expand
表2.22 gatewayConfig.ipv6 object
フィールド説明

internalMasqueradeSubnet

string

ホストからサービスへのトラフィックを有効にするために内部的に使用されるマスカレード IPv6 アドレス。ホストは、これらの IP アドレスと共有ゲートウェイブリッジインターフェイスを使用して設定されます。デフォルト値は fd69::/125 です。

重要

OpenShift Container Platform 4.17 以降のバージョンでは、クラスターはデフォルトのマスカレードサブネットとして fd69::/112 を使用します。アップグレードされたクラスターの場合は、デフォルトのマスカレードサブネットに変更がありません。

Expand
表2.23 ipsecConfig オブジェクト
フィールド説明

mode

string

IPsec 実装の動作を指定します。次の値のいずれかである必要があります。

  • Disabled: クラスターノードで IPsec が有効になりません。
  • External: 外部ホストとのネットワークトラフィックに対して IPsec が有効になります。
  • Full: Pod トラフィックおよび外部ホストとのネットワークトラフィックに対して IPsec が有効になります。

IPSec が有効な OVN-Kubernetes 設定の例

defaultNetwork:
  type: OVNKubernetes
  ovnKubernetesConfig:
    mtu: 1400
    genevePort: 6081
    ipsecConfig:
      mode: Full
Copy to Clipboard Toggle word wrap

2.3.5. Kubernetes マニフェストおよび Ignition 設定ファイルの作成

一部のクラスター定義ファイルを変更し、クラスターマシンを手動で起動する必要があるため、クラスターがマシンを設定するために必要な Kubernetes マニフェストと Ignition 設定ファイルを生成する必要があります。

インストール設定ファイルは Kubernetes マニフェストに変換されます。マニフェストは Ignition 設定ファイルにラップされます。これはクラスターマシンを設定するために後で使用されます。

重要
  • OpenShift Container Platform のインストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の node-bootstrapper 証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。
  • 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
注記

マニフェストおよび Ignition ファイルを生成するインストールプログラムはアーキテクチャー固有であり、クライアントイメージミラー から取得できます。インストールプログラムの Linux バージョンは s390x でのみ実行されます。このインストーラープログラムは、Mac OS バージョンとしても利用できます。

前提条件

  • OpenShift Container Platform インストールプログラムを取得していること。
  • install-config.yaml インストール設定ファイルを作成していること。

手順

  1. OpenShift Container Platform のインストールプログラムが含まれるディレクトリーに切り替え、クラスターの Kubernetes マニフェストを生成します。

    $ ./openshift-install create manifests --dir <installation_directory> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、作成した install-config.yaml ファイルが含まれるインストールディレクトリーを指定します。
    警告

    3 ノードクラスターをインストールしている場合は、以下の手順を省略してコントロールプレーンノードをスケジュール対象にします。

    重要

    コントロールプレーンノードをデフォルトのスケジュール不可からスケジュール可に設定するには、追加のサブスクリプションが必要です。これは、コントロールプレーンノードがコンピュートノードになるためです。

  2. <installation_directory>/manifests/cluster-scheduler-02-config.yml Kubernetes マニフェストファイルの mastersSchedulable パラメーターが false に設定されていることを確認します。この設定により、Pod がコントロールプレーンマシンにスケジュールされなくなります。

    1. <installation_directory>/manifests/cluster-scheduler-02-config.yml ファイルを開きます。
    2. mastersSchedulable パラメーターを見つけ、これが false に設定されていることを確認します。
    3. ファイルを保存し、終了します。
  3. Ignition 設定ファイルを作成するには、インストールプログラムが含まれるディレクトリーから以下のコマンドを実行します。

    $ ./openshift-install create ignition-configs --dir <installation_directory> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、同じインストールディレクトリーを指定します。

    Ignition 設定ファイルは、インストールディレクトリー内のブートストラップ、コントロールプレーン、およびコンピュートノード用に作成されます。kubeadmin-password および kubeconfig ファイルが ./<installation_directory>/auth ディレクトリーに作成されます。

    .
    ├── auth
    │   ├── kubeadmin-password
    │   └── kubeconfig
    ├── bootstrap.ign
    ├── master.ign
    ├── metadata.json
    └── worker.ign
    Copy to Clipboard Toggle word wrap

2.3.6. IBM Z または IBM LinuxONE 環境でのブートボリューム暗号化の設定

IBM Z® または IBM® LinuxONE 上の OpenShift Container Platform コントロールプレーンおよびコンピュートノードのブートボリュームをオプションで暗号化するには、次の 2 つの方法から選択できます。

  • IBM® Crypto Express (CEX) による Linux Unified Key Setup (LUKS) 暗号化
  • Network Bound Disk Encryption (NBDE)
2.3.6.1. IBM Z または IBM LinuxONE 環境での CEX 経由の LUKS 暗号化

IBM Z® または IBM® LinuxONE 環境で IBM® Crypto Express (CEX) を介してハードウェアベースの Linux Unified Key Setup (LUKS) 暗号化を有効にするには、追加の手順が必要です。このセクションでは、この手順を詳しく説明します。

前提条件

  • butane ユーティリティーをインストールした。
  • Butane でマシン設定を作成する手順を確認した。

手順

  1. 適切な方法を選択し、コントロールプレーンとコンピュートノードの Butane 設定ファイルを作成します。

    • DASD タイプのディスクにインストールする場合は、ディスク暗号化が設定されたコントロールプレーンノード用に、以下の Butane 設定を使用して main-storage.bu という名前のファイルを作成します。次に例を示します。

      variant: openshift
      version: 4.20.0
      metadata:
        name: main-storage
        labels:
          machineconfiguration.openshift.io/role: master
      boot_device:
        layout: s390x-eckd
        luks:
          device: /dev/dasda
          cex:
            enabled: true
      openshift:
        fips: true 
      1
      
        kernel_arguments:
          - rd.luks.key=/etc/luks/cex.key 
      2
      Copy to Clipboard Toggle word wrap
      1
      FIPS モードを有効にするか無効にするかを指定します。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
      2
      デバイスの復号に必要なキーの場所を指定します。この値を変更することはできません。
    • FCP タイプのディスクにインストールする場合は、ディスク暗号化が設定されたコントロールプレーンノード用に、以下の Butane 設定を使用して main-storage.bu という名前のファイルを作成します。次に例を示します。

      variant: openshift
      version: 4.20.0
      metadata:
        name: main-storage
        labels:
          machineconfiguration.openshift.io/role: master
      storage:
        filesystems:
          - device: /dev/mapper/root
            format: xfs
            label: root
            wipe_filesystem: true
        luks:
          - device: /dev/disk/by-label/root
            label: luks-root
            name: root
            wipe_volume: true
            cex:
              enabled: true
      openshift:
        fips: true 
      1
      
        kernel_arguments:
          - rd.luks.key=/etc/luks/cex.key 
      2
      Copy to Clipboard Toggle word wrap
      1
      FIPS モードを有効にするか無効にするかを指定します。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
      2
      デバイスの復号に必要なキーの場所を指定します。この値を変更することはできません。
  2. ignition.platform.id=metal および ignition.firstboot を含むパラメーターファイルを作成します。

    コントロールプレーンマシンのカーネルパラメーターファイルの例

    cio_ignore=all,!condev rd.neednet=1 \
    console=ttysclp0 \
    coreos.inst.install_dev=/dev/disk/by-id/scsi-<serial_number> \
    1
    
    ignition.firstboot ignition.platform.id=metal \
    coreos.inst.ignition_url=http://<http_server>/master.ign \
    2
    
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
    3
    
    ip=<ip_address>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.zfcp=0.0.5677,0x600606680g7f0056,0x034F000000000000 
    4
    Copy to Clipboard Toggle word wrap

    1
    ディスクのタイプに応じて、一意の完全修飾パスを指定します。DASD タイプまたは FCP タイプのディスクを指定できます。
    2
    Ignition 設定ファイルの場所を指定します。master.ign または worker.ign を使用します。HTTP および HTTPS プロトコルのみを使用できます。
    3
    起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP および HTTPS プロトコルのみを使用できます。
    4
    ルートデバイスを指定します。DASD タイプのディスクにインストールする場合は、rd.dasd=0.0.xxxx に置き換えて DASD デバイスを指定します。
    注記

    パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

2.3.6.2. IBM Z または IBM& LinuxONE 環境での静的 IP を使用した NBDE の設定

IBM Z® または IBM® LinuxONE 環境で NBDE ディスク暗号化を有効にするには、追加の手順が必要です。このセクションで詳しく説明します。

前提条件

  • 外部 Tang サーバーをセットアップした。手順は、Network-Bound Disk Encryption を参照してください。
  • butane ユーティリティーをインストールした。
  • Butane でマシン設定を作成する手順を確認した。

手順

  1. コントロールプレーンとコンピュートノードの Butane 設定ファイルを作成します。

    次のコントロールプレーンノードの Butane 設定の例では、ディスク暗号化用に master-storage.bu という名前のファイルを作成します。

    variant: openshift
    version: 4.20.0
    metadata:
      name: master-storage
      labels:
        machineconfiguration.openshift.io/role: master
    storage:
      luks:
        - clevis:
            tang:
              - thumbprint: QcPr_NHFJammnRCA3fFMVdNBwjs
                url: http://clevis.example.com:7500
          device: /dev/disk/by-partlabel/root 
    1
    
          label: luks-root
          name: root
          wipe_volume: true
      filesystems:
        - device: /dev/mapper/root
          format: xfs
          label: root
          wipe_filesystem: true
    openshift:
      fips: true 
    2
    Copy to Clipboard Toggle word wrap
    1
    DASD タイプのディスクにインストールする場合は、device: /dev/disk/by-label/root に置き換えます。
    2
    FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
  2. 次のコマンドを実行して、マシンを起動するためのカスタマイズされた initramfs ファイルを作成します。

    $ coreos-installer pxe customize \
        /root/rhcos-bootfiles/rhcos-<release>-live-initramfs.s390x.img \
        --dest-device /dev/disk/by-id/scsi-<serial_number> --dest-karg-append \
        ip=<ip_address>::<gateway_ip>:<subnet_mask>::<network_device>:none \
        --dest-karg-append nameserver=<nameserver_ip> \
        --dest-karg-append rd.neednet=1 -o \
        /root/rhcos-bootfiles/<node_name>-initramfs.s390x.img
    Copy to Clipboard Toggle word wrap
    注記

    最初のブートの前に、クラスター内の各ノードの initramfs をカスタマイズし、PXE カーネルパラメーターを追加する必要があります。

  3. ignition.platform.id=metal および ignition.firstboot を含むパラメーターファイルを作成します。

    コントロールプレーンマシンのカーネルパラメーターファイルの例

    cio_ignore=all,!condev rd.neednet=1 \
    console=ttysclp0 \
    coreos.inst.install_dev=/dev/<block_device> \
    1
    
    ignition.firstboot ignition.platform.id=metal \
    coreos.inst.ignition_url=http://<http_server>/master.ign \
    2
    
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
    3
    
    ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.zfcp=0.0.5677,0x600606680g7f0056,0x034F000000000000 \
    4
    
    zfcp.allow_lun_scan=0
    Copy to Clipboard Toggle word wrap

    1
    ブロックデバイスタイプを指定します。DASD タイプのディスクにインストールする場合は、/dev/dasda を指定します。FCP タイプのディスクにインストールする場合は、/dev/sda を指定します。
    2
    Ignition 設定ファイルの場所を指定します。master.ign または worker.ign を使用します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    3
    起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    4
    DASD タイプのディスクにインストールする場合は、rd.dasd=0.0.xxxx に置き換えて DASD デバイスを指定します。
    注記

    パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

2.3.7. RHCOS のインストールおよび OpenShift Container Platform ブートストラッププロセスの開始

OpenShift Container Platform を独自にプロビジョニングする IBM Z® インフラストラクチャーにインストールするには、Red Hat Enterprise Linux CoreOS (RHCOS) を z/VM ゲスト仮想マシンにインストールする必要があります。RHCOS のインストール時に、インストールするマシンのタイプに、OpenShift Container Platform インストールプログラムによって生成された Ignition 設定ファイルを指定する必要があります。適切なネットワーク、DNS、および負荷分散インフラストラクチャーが設定されている場合、OpenShift Container Platform ブートストラッププロセスは RHCOS z/VM ゲスト仮想マシンの再起動後に自動的に開始されます。

マシンを作成するには、以下の手順を実行します。

前提条件

  • 作成するマシンがアクセスできるプロビジョニングマシンで稼働している HTTP または HTTPS サーバー。
  • セキュアブートを有効にする場合は、適切な Product Signing Key を取得し、IBM ドキュメントの Secure boot on IBM Z and IBM LinuxONE を確認した。

手順

  1. プロビジョニングマシンで Linux にログインします。
  2. RHCOS イメージミラー から Red Hat Enterprise Linux CoreOS (RHCOS) カーネル、initramfs および rootfs ファイルを取得します。

    重要

    RHCOS イメージは OpenShift Container Platform の各リリースごとに変更されない可能性があります。インストールする OpenShift Container Platform バージョンと等しいか、それ以下のバージョンの内で最も新しいバージョンのイメージをダウンロードする必要があります。この手順で説明されている適切な kernel、initramfs、および rootfs アーティファクトのみを使用します。

    ファイル名には、OpenShift Container Platform のバージョン番号が含まれます。以下の例のようになります。

    • kernel: rhcos-<version>-live-kernel-<architecture>
    • initramfs: rhcos-<version>-live-initramfs.<architecture>.img
    • rootfs: rhcos-<version>-live-rootfs.<architecture>.img

      注記

      rootfs イメージは FCP および DASD の場合と同じです。

  3. パラメーターファイルを作成します。以下のパラメーターは特定の仮想マシンに固有のものです。

    • ip= には、以下の 7 つのエントリーを指定します。

      1. マシンの IP アドレス。
      2. 空の文字列。
      3. ゲートウェイ。
      4. ネットマスク。
      5. hostname.domainname 形式のマシンホストおよびドメイン名。この値を省略すると、RHCOS が逆引き DNS ルックアップによりホスト名を取得します。
      6. ネットワークインターフェイス名。この値を省略すると、RHCOS が利用可能なすべてのインターフェイスに IP 設定を適用します。
      7. 静的 IP アドレスを使用する場合、none を指定します。
    • coreos.inst.ignition_url= の場合、マシンロールの Ignition ファイルを指定します。bootstrap.ignmaster.ign、または worker.ign を使用します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    • coreos.live.rootfs_url= の場合、起動しているカーネルおよび initramfs の一致する rootfs アーティファクトを指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    • オプション: セキュアブートを有効にするには、coreos.inst.secure_ipl を追加します。
    • DASD タイプのディスクへのインストールには、以下のタスクを実行します。

      1. coreos.inst.install_dev= には、/dev/disk/by-path/ccw-<device_id> を指定します。<device_id> には、たとえば 0.0.1000 を指定します。
      2. rd.dasd= を使用して、RHCOS がインストールされる DASD を指定します。
      3. その他のパラメーターはすべて変更しません。

        ブートストラップマシンのパラメーターファイルのサンプル bootstrap-0.parm:

        cio_ignore=all,!condev rd.neednet=1 \
        console=ttysclp0 \
        coreos.inst.install_dev=/dev/disk/by-id/scsi-<serial_number> \
        1
        
        coreos.inst.ignition_url=http://<http_server>/bootstrap.ign \
        2
        
        coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
        3
        
        coreos.inst.secure_ipl \
        4
        
        ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
        rd.znet=qeth,0.0.bdf0,0.0.bdf1,0.0.bdf2,layer2=1,portno=0 \
        rd.dasd=0.0.3490
        Copy to Clipboard Toggle word wrap
        1
        ディスクの種類に応じて一意の完全修飾パスを指定します。これは、DASD タイプまたは FCP タイプのディスクのいずれかです。
        2
        Ignition 設定ファイルの場所を指定します。bootstrap.ignmaster.ign、または worker.ign を使用します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
        3
        起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
        4
        オプション: セキュアブートを有効にするには、coreos.inst.secure_ipl を追加します。

        パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

    • FCP タイプのディスクへのインストールには、以下のタスクを実行します。

      1. rd.zfcp=<adapter>,<wwpn>,<lun> を使用して RHCOS がインストールされる FCP ディスクを指定します。マルチパスの場合、それぞれの追加のステップでこのステップを繰り返します。

        注記

        複数のパスを使用してインストールする場合は、問題が発生する可能性があるため、後でではなくインストールの直後にマルチパスを有効にする必要があります。

      2. インストールデバイスを coreos.inst.install_dev=/dev/disk/by-id/scsi-<serial_number> として設定します。
  4. オプション: generic.ins ファイルを作成します。

    インストール方法によっては、Hardware Management Console (HMC)、DVD、または FTP サーバーのファイルシステム内のインストールデータの場所と、データがコピーされるメモリー位置のマッピングを含む generic.ins ファイルも必要です。サンプルの generic.ins ファイルが、RHEL インストールメディアに付属しています。ファイルには、初期 RAM ディスク (initrd.img)、カーネルイメージ (kernel.img)、およびパラメーター (generic.prm) ファイルのファイル名と、各ファイルのメモリー位置が含まれています。

    generic.ins ファイルの例

    images/kernel.img 0x00000000
    images/initrd.img 0x02000000
    images/genericdvd.prm 0x00010480
    images/initrd.addrsize 0x00010408
    Copy to Clipboard Toggle word wrap

  5. その他のパラメーターはすべて変更しません。

    重要

    マルチパスを完全に有効にするには、インストール後の追加の手順が必要です。詳細は、マシン設定 の「RHCOS のカーネル引数でのマルチパスの有効化」を参照してください。

    以下は、マルチパスが設定されたコンピュートノードのパラメーターファイルのサンプル worker-1.parm です。

    cio_ignore=all,!condev rd.neednet=1 \
    console=ttysclp0 \
    coreos.inst.install_dev=/dev/disk/by-id/scsi-<serial_number> \
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
    coreos.inst.ignition_url=http://<http_server>/worker.ign \
    ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
    rd.znet=qeth,0.0.bdf0,0.0.bdf1,0.0.bdf2,layer2=1,portno=0 \
    rd.zfcp=0.0.1987,0x50050763070bc5e3,0x4008400B00000000 \
    rd.zfcp=0.0.19C7,0x50050763070bc5e3,0x4008400B00000000 \
    rd.zfcp=0.0.1987,0x50050763071bc5e3,0x4008400B00000000 \
    rd.zfcp=0.0.19C7,0x50050763071bc5e3,0x4008400B00000000
    Copy to Clipboard Toggle word wrap

    パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

  6. FTP などを使用し、initramfs、kernel、パラメーターファイル、および RHCOS イメージを z/VM に転送します。FTP を使用してファイルを転送し、仮想リーダーから起動する方法の詳細は、IBM Z® でインストールを起動して z/VM に RHEL をインストールする を参照してください。
  7. ブートストラップノードになる z/VM ゲスト仮想マシンの仮想リーダーに対してファイルの punch を実行します。

    PUNCH (IBM® ドキュメント) を参照してください。

    ヒント

    CP PUNCH コマンドを使用するか、Linux を使用している場合は、vmur コマンドを使用して 2 つの z/VM ゲスト仮想マシン間でファイルを転送できます。

  8. ブートストラップマシンで CMS にログインします。
  9. リーダーからブートストラップマシンに対して IPL を実行します。

    $ ipl c
    Copy to Clipboard Toggle word wrap

    IPL (IBM® ドキュメント) を参照してください。

  10. クラスター内の他のマシンに、この手順を繰り返します。
2.3.7.1. 詳細の RHCOS インストールリファレンス

このセクションでは、Red Hat Enterprise Linux CoreOS (RHCOS) の手動インストールプロセスを変更できるようにするネットワーク設定および他の高度なオプションを説明します。以下の表では、RHCOS ライブインストーラーおよび coreos-installer コマンドで使用できるカーネル引数およびコマンドラインのオプションを説明します。

2.3.7.1.1. ISO インストールのネットワークおよびボンディングのオプション

ISO イメージから RHCOS をインストールする場合、そのイメージを起動してノードのネットワークを設定する際に手動でカーネル引数を追加できます。ネットワークの引数が指定されていない場合、RHCOS が Ignition 設定ファイルを取得するためにネットワークが必要であることを検知する際に、DHCP が initramfs でアクティベートされます。

重要

ネットワーク引数を手動で追加する場合は、rd.neednet=1 カーネル引数を追加して、ネットワークを initramfs で有効にする必要があります。

以下の情報は、ISO インストール用に RHCOS ノードでネットワークおよびボンディングを設定する例を示しています。この例では、ip=nameserver=、および bond= カーネル引数の使用方法を説明しています。

注記

順序は、カーネル引数の ip=nameserver=、および bond= を追加する場合に重要です。

ネットワークオプションは、システムの起動時に dracut ツールに渡されます。dracut でサポートされるネットワークオプションの詳細は、dracut.cmdline man ページ を参照してください。

次の例は、ISO インストールのネットワークオプションです。

2.3.7.1.1.1. DHCP または静的 IP アドレスの設定

IP アドレスを設定するには、DHCP (ip=dhcp) を使用するか、個別の静的 IP アドレス (ip=<host_ip>) を設定します。静的 IP を設定する場合、各ノードで DNS サーバー IP アドレス (nameserver=<dns_ip>) を特定する必要があります。次の例では、以下を設定します。

  • ノードの IP アドレス: 10.10.10.2
  • ゲートウェイアドレス: 10.10.10.254
  • ネットワーク: 255.255.255.0
  • ホスト名: core0.example.com
  • DNS サーバーアドレス: 4.4.4.41
  • auto-configuration の値を none に設定します。IP ネットワークが静的に設定されている場合には、自動設定は必要ありません。
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
nameserver=4.4.4.41
Copy to Clipboard Toggle word wrap
注記

DHCP を使用して RHCOS マシンの IP アドレスを設定する場合、マシンは DHCP を介して DNS サーバー情報も取得します。DHCP ベースのデプロイメントの場合、DHCP サーバー設定を使用して RHCOS ノードが使用する DNS サーバーアドレスを定義できます。

2.3.7.1.1.2. 静的ホスト名を使用しない IP アドレスの設定

静的ホスト名を割り当てずに IP アドレスを設定できます。静的ホスト名がユーザーによって設定されていない場合は、逆引き DNS ルックアップによって取得され、自動的に設定されます。静的ホスト名なしで IP アドレスを設定するには、次の例を参照してください。

  • ノードの IP アドレス: 10.10.10.2
  • ゲートウェイアドレス: 10.10.10.254
  • ネットワーク: 255.255.255.0
  • DNS サーバーアドレス: 4.4.4.41
  • auto-configuration の値を none に設定します。IP ネットワークが静的に設定されている場合には、自動設定は必要ありません。
ip=10.10.10.2::10.10.10.254:255.255.255.0::enp1s0:none
nameserver=4.4.4.41
Copy to Clipboard Toggle word wrap
2.3.7.1.1.3. 複数のネットワークインターフェイスの指定

複数の ip= エントリーを設定することで、複数のネットワークインターフェイスを指定できます。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
ip=10.10.10.3::10.10.10.254:255.255.255.0:core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.3.7.1.1.4. デフォルトゲートウェイとルートの設定

オプション: rd.route= value を設定して、追加のネットワークへのルートを設定できます。

注記

1 つまたは複数のネットワークを設定する場合、1 つのデフォルトゲートウェイが必要です。追加のネットワークゲートウェイがプライマリーネットワークゲートウェイと異なる場合、デフォルトゲートウェイはプライマリーネットワークゲートウェイである必要があります。

  • 次のコマンドを実行して、デフォルトゲートウェイを設定します。

    ip=::10.10.10.254::::
    Copy to Clipboard Toggle word wrap
  • 次のコマンドを入力して、追加ネットワークのルートを設定します。

    rd.route=20.20.20.0/24:20.20.20.254:enp2s0
    Copy to Clipboard Toggle word wrap
2.3.7.1.1.5. 単一インターフェイスでの DHCP の無効化

2 つ以上のネットワークインターフェイスがあり、1 つのインターフェイスのみが使用される場合などに、1 つのインターフェイスで DHCP を無効にします。この例では、enp1s0 インターフェイスには静的ネットワーク設定があり、使用されていない enp2s0 では DHCP が無効になっています。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
ip=::::core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.3.7.1.1.6. DHCP と静的 IP 設定の組み合わせ

以下のように、複数のネットワークインターフェイスを持つシステムで、DHCP および静的 IP 設定を組み合わせることができます。

ip=enp1s0:dhcp
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.3.7.1.1.7. 個々のインターフェイスでの VLAN の設定

オプション: vlan= パラメーターを使用して、個別のインターフェイスに VLAN を設定できます。

  • ネットワークインターフェイスで VLAN を設定し、静的 IP アドレスを使用するには、次のコマンドを実行します。

    ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp2s0.100:none
    vlan=enp2s0.100:enp2s0
    Copy to Clipboard Toggle word wrap
  • ネットワークインターフェイスで VLAN を設定し、DHCP を使用するには、次のコマンドを実行します。

    ip=enp2s0.100:dhcp
    vlan=enp2s0.100:enp2s0
    Copy to Clipboard Toggle word wrap
2.3.7.1.1.8. 複数の DNS サーバーの指定

以下のように、各サーバーに nameserver= エントリーを追加して、複数の DNS サーバーを指定できます。

nameserver=1.1.1.1
nameserver=8.8.8.8
Copy to Clipboard Toggle word wrap
2.3.7.1.1.9. 複数のネットワークインターフェイスの単一インターフェイスへのボンディング

オプション: bond= オプションを使用して、複数のネットワークインターフェイスを単一のインターフェイスにボンディングできます。次の例を参照してください。

  • ボンディングされたインターフェイスを設定するための構文は、bond=<name>[:<network_interfaces>][:options] です。

    <name> はボンディングデバイス名 (bond0)、<network_interfaces> は物理 (イーサネット) インターフェイスのコンマ区切りのリスト (em1,em2) を表し、options はボンディングオプションのコンマ区切りのリストです。modinfo bonding を入力して、利用可能なオプションを表示します。

  • bond= を使用してボンディングされたインターフェイスを作成する場合は、ボンディングされたインターフェイスの IP アドレスの割り当て方法やその他の情報を指定する必要があります。

    • DHCP を使用するようにボンディングされたインターフェイスを設定するには、ボンドの IP アドレスを dhcp に設定します。以下に例を示します。

      bond=bond0:em1,em2:mode=active-backup
      ip=bond0:dhcp
      Copy to Clipboard Toggle word wrap
    • 静的 IP アドレスを使用するようにボンディングされたインターフェイスを設定するには、必要な特定の IP アドレスと関連情報を入力します。以下に例を示します。
bond=bond0:em1,em2:mode=active-backup,fail_over_mac=1
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:bond0:none
Copy to Clipboard Toggle word wrap

共有 OSA/RoCE カードを使用する場合の問題を回避するために、常にアクティブバックアップモードで fail_over_mac=1 オプションを設定してください。

2.3.7.1.1.10. 複数のネットワークインターフェイスの単一インターフェイスへのボンディング

任意: 以下のように、vlan= パラメーターを指定して、DHCP を使用して、ボンディングされたインターフェイスで VLAN を設定できます。

ip=bond0.100:dhcp
bond=bond0:em1,em2:mode=active-backup
vlan=bond0.100:bond0
Copy to Clipboard Toggle word wrap

次の例を使用して、VLAN でボンディングされたインターフェイスを設定し、静的 IP アドレスを使用します。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:bond0.100:none
bond=bond0:em1,em2:mode=active-backup
vlan=bond0.100:bond0
Copy to Clipboard Toggle word wrap
2.3.7.1.1.11. ネットワークチーミングの使用

任意: team= パラメーターを指定して、ボンディングの代わりにネットワークチーミングを使用できます。

  • チームインターフェイス設定の構文は team=name[:network_interfaces] です。

    name はチームデバイス名 (team0)、network_interfaces は物理 (イーサネット) インターフェイス (em1, em2) のコンマ区切りリストを表します。

注記

RHCOS が次のバージョンの RHEL に切り替わると、チーミングは非推奨になる予定です。詳細は、こちらの Red Hat ナレッジベース記事 を参照してください。

次の例を使用して、ネットワークチームを設定します。

team=team0:em1,em2
ip=team0:dhcp
Copy to Clipboard Toggle word wrap

2.3.8. ブートストラッププロセスの完了まで待機する

OpenShift Container Platform ブートストラッププロセスは、初回のクラスターノードのディスクにインストールされている永続的な RHCOS 環境での起動後に開始します。Ignition 設定ファイルで指定される設定情報は、ブートストラッププロセスを初期化し、マシンに OpenShift Container Platform をインストールするために使用されます。ブートストラッププロセスが完了するまで待機する必要があります。

前提条件

  • クラスターの Ignition 設定ファイルを作成している。
  • 適切なネットワーク、DNS および負荷分散インフラストラクチャーを設定している。
  • インストールプログラムを取得し、クラスターの Ignition 設定ファイルを生成している。
  • RHCOS をクラスターマシンにインストールし、OpenShift Container Platform インストールプログラムで生成される Ignition 設定ファイルを指定している。
  • お使いのマシンでインターネットに直接アクセスできるか、HTTP または HTTPS プロキシーが利用できる。

手順

  1. ブートストラッププロセスをモニターします。

    $ ./openshift-install --dir <installation_directory> wait-for bootstrap-complete \ 
    1
    
        --log-level=info 
    2
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。
    2
    異なるインストールの詳細情報を表示するには、info ではなく、warndebug、または error を指定します。

    出力例

    INFO Waiting up to 30m0s for the Kubernetes API at https://api.test.example.com:6443...
    INFO API v1.33.4 up
    INFO Waiting up to 30m0s for bootstrapping to complete...
    INFO It is now safe to remove the bootstrap resources
    Copy to Clipboard Toggle word wrap

    Kubernetes API サーバーでこれがコントロールプレーンマシンにブートストラップされていることを示すシグナルが出されるとコマンドは成功します。

  2. ブートストラッププロセスが完了したら、ブートストラップマシンをロードバランサーから削除します。

    重要

    この時点で、ブートストラップマシンをロードバランサーから削除する必要があります。さらに、ブートストラップマシン自体を削除し、再フォーマットすることができます。

2.3.9. CLI の使用によるクラスターへのログイン

クラスター kubeconfig ファイルをエクスポートし、デフォルトシステムユーザーとしてクラスターにログインできます。kubeconfig ファイルには、クライアントを正しいクラスターおよび API サーバーに接続するために CLI で使用されるクラスターに関する情報が含まれます。このファイルはクラスターに固有のファイルであり、OpenShift Container Platform のインストール時に作成されます。

前提条件

  • OpenShift Container Platform クラスターをデプロイしていること。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. 次のコマンドを実行して、kubeadmin 認証情報をエクスポートします。

    $ export KUBECONFIG=<installation_directory>/auth/kubeconfig 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。
  2. 次のコマンドを実行し、エクスポートされた設定を使用して oc コマンドを正常に実行できることを確認します。

    $ oc whoami
    Copy to Clipboard Toggle word wrap

    出力例

    system:admin
    Copy to Clipboard Toggle word wrap

2.3.10. マシンの証明書署名要求の承認

マシンをクラスターに追加する際に、追加したそれぞれのマシンに対して 2 つの保留状態の証明書署名要求 (CSR) が生成されます。これらの CSR が承認されていることを確認するか、必要な場合はそれらを承認してください。最初にクライアント要求を承認し、次にサーバー要求を承認する必要があります。

前提条件

  • マシンがクラスターに追加されています。

手順

  1. クラスターがマシンを認識していることを確認します。

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME      STATUS    ROLES   AGE  VERSION
    master-0  Ready     master  63m  v1.33.4
    master-1  Ready     master  63m  v1.33.4
    master-2  Ready     master  64m  v1.33.4
    Copy to Clipboard Toggle word wrap

    出力には作成したすべてのマシンがリスト表示されます。

    注記

    上記の出力には、一部の CSR が承認されるまで、ワーカーノード (ワーカーノードとも呼ばれる) が含まれない場合があります。

  2. 保留中の証明書署名要求 (CSR) を確認し、クラスターに追加したそれぞれのマシンのクライアントおよびサーバー要求に Pending または Approved ステータスが表示されていることを確認します。

    $ oc get csr
    Copy to Clipboard Toggle word wrap

    出力例

    NAME        AGE   REQUESTOR                                   CONDITION
    csr-mddf5   20m   system:node:master-01.example.com   Approved,Issued
    csr-z5rln   16m   system:node:worker-21.example.com   Approved,Issued
    Copy to Clipboard Toggle word wrap

  3. 追加したマシンの保留中の CSR すべてが Pending ステータスになった後に CSR が承認されない場合には、クラスターマシンの CSR を承認します。

    注記

    CSR のローテーションは自動的に実行されるため、クラスターにマシンを追加後 1 時間以内に CSR を承認してください。1 時間以内に承認しない場合には、証明書のローテーションが行われ、各ノードに 3 つ以上の証明書が存在するようになります。これらの証明書すべてを承認する必要があります。クライアントの CSR が承認された後に、Kubelet は提供証明書のセカンダリー CSR を作成します。これには、手動の承認が必要になります。次に、後続の提供証明書の更新要求は、Kubelet が同じパラメーターを持つ新規証明書を要求する場合に machine-approver によって自動的に承認されます。

    注記

    ベアメタルおよび他の user-provisioned infrastructure などのマシン API ではないプラットフォームで実行されているクラスターの場合、kubelet 提供証明書要求 (CSR) を自動的に承認する方法を実装する必要があります。要求が承認されない場合、API サーバーが kubelet に接続する際に提供証明書が必須であるため、oc execoc rsh、および oc logs コマンドは正常に実行できません。Kubelet エンドポイントにアクセスする操作には、この証明書の承認が必要です。この方法は新規 CSR の有無を監視し、CSR が system:node または system:admin グループの node-bootstrapper サービスアカウントによって提出されていることを確認し、ノードの ID を確認します。

    • それらを個別に承認するには、それぞれの有効な CSR に以下のコマンドを実行します。

      $ oc adm certificate approve <csr_name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <csr_name> は、現行の CSR のリストからの CSR の名前です。
    • すべての保留中の CSR を承認するには、以下のコマンドを実行します。

      $ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs --no-run-if-empty oc adm certificate approve
      Copy to Clipboard Toggle word wrap
      注記

      一部の Operator は、一部の CSR が承認されるまで利用できない可能性があります。

  4. クライアント要求が承認されたら、クラスターに追加した各マシンのサーバー要求を確認する必要があります。

    $ oc get csr
    Copy to Clipboard Toggle word wrap

    出力例

    NAME        AGE     REQUESTOR                                                                   CONDITION
    csr-bfd72   5m26s   system:node:ip-10-0-50-126.us-east-2.compute.internal                       Pending
    csr-c57lv   5m26s   system:node:ip-10-0-95-157.us-east-2.compute.internal                       Pending
    ...
    Copy to Clipboard Toggle word wrap

  5. 残りの CSR が承認されず、それらが Pending ステータスにある場合、クラスターマシンの CSR を承認します。

    • それらを個別に承認するには、それぞれの有効な CSR に以下のコマンドを実行します。

      $ oc adm certificate approve <csr_name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <csr_name> は、現行の CSR のリストからの CSR の名前です。
    • すべての保留中の CSR を承認するには、以下のコマンドを実行します。

      $ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs oc adm certificate approve
      Copy to Clipboard Toggle word wrap
  6. すべてのクライアントおよびサーバーの CSR が承認された後に、マシンのステータスが Ready になります。以下のコマンドを実行して、これを確認します。

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME      STATUS    ROLES   AGE  VERSION
    master-0  Ready     master  73m  v1.33.4
    master-1  Ready     master  73m  v1.33.4
    master-2  Ready     master  74m  v1.33.4
    worker-0  Ready     worker  11m  v1.33.4
    worker-1  Ready     worker  11m  v1.33.4
    Copy to Clipboard Toggle word wrap

    注記

    サーバー CSR の承認後にマシンが Ready ステータスに移行するまでに数分の時間がかかる場合があります。

関連情報

2.3.11. Operator の初期設定

コントロールプレーンの初期化後に、一部の Operator を利用可能にするためにそれらをすぐに設定する必要があります。

前提条件

  • コントロールプレーンが初期化されています。

手順

  1. クラスターコンポーネントがオンラインになることを確認します。

    $ watch -n5 oc get clusteroperators
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
    authentication                             4.20.0    True        False         False      19m
    baremetal                                  4.20.0    True        False         False      37m
    cloud-credential                           4.20.0    True        False         False      40m
    cluster-autoscaler                         4.20.0    True        False         False      37m
    config-operator                            4.20.0    True        False         False      38m
    console                                    4.20.0    True        False         False      26m
    csi-snapshot-controller                    4.20.0    True        False         False      37m
    dns                                        4.20.0    True        False         False      37m
    etcd                                       4.20.0    True        False         False      36m
    image-registry                             4.20.0    True        False         False      31m
    ingress                                    4.20.0    True        False         False      30m
    insights                                   4.20.0    True        False         False      31m
    kube-apiserver                             4.20.0    True        False         False      26m
    kube-controller-manager                    4.20.0    True        False         False      36m
    kube-scheduler                             4.20.0    True        False         False      36m
    kube-storage-version-migrator              4.20.0    True        False         False      37m
    machine-api                                4.20.0    True        False         False      29m
    machine-approver                           4.20.0    True        False         False      37m
    machine-config                             4.20.0    True        False         False      36m
    marketplace                                4.20.0    True        False         False      37m
    monitoring                                 4.20.0    True        False         False      29m
    network                                    4.20.0    True        False         False      38m
    node-tuning                                4.20.0    True        False         False      37m
    openshift-apiserver                        4.20.0    True        False         False      32m
    openshift-controller-manager               4.20.0    True        False         False      30m
    openshift-samples                          4.20.0    True        False         False      32m
    operator-lifecycle-manager                 4.20.0    True        False         False      37m
    operator-lifecycle-manager-catalog         4.20.0    True        False         False      37m
    operator-lifecycle-manager-packageserver   4.20.0    True        False         False      32m
    service-ca                                 4.20.0    True        False         False      38m
    storage                                    4.20.0    True        False         False      37m
    Copy to Clipboard Toggle word wrap

  2. 利用不可の Operator を設定します。
2.3.11.1. イメージレジストリーストレージの設定

Image Registry Operator は、デフォルトストレージを提供しないプラットフォームでは最初は利用できません。インストール後に、レジストリー Operator を使用できるようにレジストリーをストレージを使用するように設定する必要があります。

実稼働クラスターに必要な永続ボリュームの設定に関する手順が示されます。該当する場合、空のディレクトリーをストレージの場所として設定する方法が表示されます。これは、実稼働以外のクラスターでのみ利用できます。

アップグレード時に Recreate ロールアウトストラテジーを使用して、イメージレジストリーがブロックストレージタイプを使用することを許可するための追加の手順が提供されます。

2.3.11.1.1. IBM Z の場合のレジストリーストレージの設定

クラスター管理者は、インストール後にレジストリーをストレージを使用できるように設定する必要があります。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。
  • IBM Z® にクラスターがある。
  • Red Hat OpenShift Data Foundation などのクラスターのプロビジョニングされた永続ストレージがある。

    重要

    OpenShift Container Platform は、1 つのレプリカのみが存在する場合にイメージレジストリーストレージの ReadWriteOnce アクセスをサポートします。ReadWriteOnce アクセスでは、レジストリーが Recreate ロールアウト戦略を使用する必要もあります。2 つ以上のレプリカで高可用性をサポートするイメージレジストリーをデプロイするには、ReadWriteMany アクセスが必要です。

  • 100 Gi の容量がある。

手順

  1. レジストリーをストレージを使用できるように設定するには、configs.imageregistry/cluster リソースの spec.storage.pvc を変更します。

    注記

    共有ストレージを使用する場合は、外部からアクセスを防ぐためにセキュリティー設定を確認します。

  2. レジストリー Pod がないことを確認します。

    $ oc get pod -n openshift-image-registry -l docker-registry=default
    Copy to Clipboard Toggle word wrap

    出力例

    No resources found in openshift-image-registry namespace
    Copy to Clipboard Toggle word wrap

    注記

    出力にレジストリー Pod がある場合は、この手順を続行する必要はありません。

  3. レジストリー設定を確認します。

    $ oc edit configs.imageregistry.operator.openshift.io
    Copy to Clipboard Toggle word wrap

    出力例

    storage:
      pvc:
        claim:
    Copy to Clipboard Toggle word wrap

    claim フィールドを空のままにし、image-registry-storage PVC の自動作成を可能にします。

  4. clusteroperator ステータスを確認します。

    $ oc get clusteroperator image-registry
    Copy to Clipboard Toggle word wrap

    出力例

    NAME             VERSION              AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
    image-registry   4.20                 True        False         False      6h50m
    Copy to Clipboard Toggle word wrap

  5. イメージのビルドおよびプッシュを有効にするためにレジストリーが managed に設定されていることを確認します。

    • 以下を実行します。

      $ oc edit configs.imageregistry/cluster
      Copy to Clipboard Toggle word wrap

      次に、行を変更します。

      managementState: Removed
      Copy to Clipboard Toggle word wrap

      次のように変更してください。

      managementState: Managed
      Copy to Clipboard Toggle word wrap
2.3.11.1.2. 実稼働以外のクラスターでのイメージレジストリーのストレージの設定

Image Registry Operator のストレージを設定する必要があります。実稼働用以外のクラスターの場合、イメージレジストリーは空のディレクトリーに設定することができます。これを実行する場合、レジストリーを再起動するとすべてのイメージが失われます。

手順

  • イメージレジストリーストレージを空のディレクトリーに設定するには、以下を実行します。

    $ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"storage":{"emptyDir":{}}}}'
    Copy to Clipboard Toggle word wrap
    警告

    実稼働用以外のクラスターにのみこのオプションを設定します。

    Image Registry Operator がそのコンポーネントを初期化する前にこのコマンドを実行する場合、oc patch コマンドは以下のエラーを出して失敗します。

    Error from server (NotFound): configs.imageregistry.operator.openshift.io "cluster" not found
    Copy to Clipboard Toggle word wrap

    数分待機した後に、このコマンドを再び実行します。

2.3.12. user-provisioned infrastructure でのインストールの完了

Operator の設定が完了したら、独自に提供するインフラストラクチャーへのクラスターのインストールを完了できます。

前提条件

  • コントロールプレーンが初期化されています。
  • Operator の初期設定を完了済みです。

手順

  1. 以下のコマンドを使用して、すべてのクラスターコンポーネントがオンラインであることを確認します。

    $ watch -n5 oc get clusteroperators
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
    authentication                             4.20.0    True        False         False      19m
    baremetal                                  4.20.0    True        False         False      37m
    cloud-credential                           4.20.0    True        False         False      40m
    cluster-autoscaler                         4.20.0    True        False         False      37m
    config-operator                            4.20.0    True        False         False      38m
    console                                    4.20.0    True        False         False      26m
    csi-snapshot-controller                    4.20.0    True        False         False      37m
    dns                                        4.20.0    True        False         False      37m
    etcd                                       4.20.0    True        False         False      36m
    image-registry                             4.20.0    True        False         False      31m
    ingress                                    4.20.0    True        False         False      30m
    insights                                   4.20.0    True        False         False      31m
    kube-apiserver                             4.20.0    True        False         False      26m
    kube-controller-manager                    4.20.0    True        False         False      36m
    kube-scheduler                             4.20.0    True        False         False      36m
    kube-storage-version-migrator              4.20.0    True        False         False      37m
    machine-api                                4.20.0    True        False         False      29m
    machine-approver                           4.20.0    True        False         False      37m
    machine-config                             4.20.0    True        False         False      36m
    marketplace                                4.20.0    True        False         False      37m
    monitoring                                 4.20.0    True        False         False      29m
    network                                    4.20.0    True        False         False      38m
    node-tuning                                4.20.0    True        False         False      37m
    openshift-apiserver                        4.20.0    True        False         False      32m
    openshift-controller-manager               4.20.0    True        False         False      30m
    openshift-samples                          4.20.0    True        False         False      32m
    operator-lifecycle-manager                 4.20.0    True        False         False      37m
    operator-lifecycle-manager-catalog         4.20.0    True        False         False      37m
    operator-lifecycle-manager-packageserver   4.20.0    True        False         False      32m
    service-ca                                 4.20.0    True        False         False      38m
    storage                                    4.20.0    True        False         False      37m
    Copy to Clipboard Toggle word wrap

    あるいは、以下のコマンドを使用すると、すべてのクラスターが利用可能な場合に通知されます。また、このコマンドは認証情報を取得して表示します。

    $ ./openshift-install --dir <installation_directory> wait-for install-complete 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。

    出力例

    INFO Waiting up to 30m0s for the cluster to initialize...
    Copy to Clipboard Toggle word wrap

    Cluster Version Operator が Kubernetes API サーバーから OpenShift Container Platform クラスターのデプロイを終了するとコマンドは成功します。

    重要
    • インストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の node-bootstrapper 証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。
    • 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
  2. Kubernetes API サーバーが Pod と通信していることを確認します。

    1. すべての Pod のリストを表示するには、以下のコマンドを使用します。

      $ oc get pods --all-namespaces
      Copy to Clipboard Toggle word wrap

      出力例

      NAMESPACE                         NAME                                            READY   STATUS      RESTARTS   AGE
      openshift-apiserver-operator      openshift-apiserver-operator-85cb746d55-zqhs8   1/1     Running     1          9m
      openshift-apiserver               apiserver-67b9g                                 1/1     Running     0          3m
      openshift-apiserver               apiserver-ljcmx                                 1/1     Running     0          1m
      openshift-apiserver               apiserver-z25h4                                 1/1     Running     0          2m
      openshift-authentication-operator authentication-operator-69d5d8bf84-vh2n8        1/1     Running     0          5m
      ...
      Copy to Clipboard Toggle word wrap

    2. 以下のコマンドを使用して、直前のコマンドの出力にリスト表示される Pod のログを表示します。

      $ oc logs <pod_name> -n <namespace> 
      1
      Copy to Clipboard Toggle word wrap
      1
      直前のコマンドの出力にあるように、Pod 名および namespace を指定します。

      Pod のログが表示される場合、Kubernetes API サーバーはクラスターマシンと通信できます。

  3. FCP (Fibre Channel Protocol) を使用したインストールでは、マルチパスを有効にするために追加の手順が必要です。インストール時にマルチパスを有効にしないでください。

    詳細は、インストール後のマシン設定タスク ドキュメントで、「RHCOS でのカーネル引数を使用したマルチパスの有効化」を参照してください。

検証

OpenShift Container Platform のブートストラッププロセス中にセキュアブートを有効にした場合は、次の検証手順が必要です。

  1. 次のコマンドを実行してノードをデバッグします。

    $ oc debug node/<node_name>
    chroot /host
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、セキュアブートが有効になっていることを確認します。

    $ cat /sys/firmware/ipl/secure
    Copy to Clipboard Toggle word wrap

    出力例

    1 
    1
    Copy to Clipboard Toggle word wrap

    1
    セキュアブートが有効になっている場合、値は 1 です。有効になっていない場合は 0 です。

2.3.13. OpenShift Container Platform の Telemetry アクセス

OpenShift Container Platform 4.20 では、Telemetry サービスにもインターネットアクセスが必要です。Telemetry サービスは、クラスターの健全性と更新の成功に関するメトリクスを提供するためにデフォルトで実行されます。クラスターがインターネットに接続されている場合、Telemetry は自動的に実行され、クラスターは OpenShift Cluster Manager に登録されます。

OpenShift Cluster Manager インベントリーが正常である (Telemetry によって自動的に維持、または OpenShift Cluster Manager を使用して手動で維持) ことを確認した後に、subscription watch を使用 して、アカウントまたはマルチクラスターレベルで OpenShift Container Platform サブスクリプションを追跡します。

2.3.14. 次のステップ

2.4. 非接続環境で IBM Z および IBM LinuxONE に z/VM を使用したクラスターをインストールする

OpenShift Container Platform バージョン 4.20 では、非接続環境で、ユーザーがプロビジョニングする IBM Z® または IBM® LinuxONE インフラストラクチャーにクラスターをインストールできます。

注記

このドキュメントは IBM Z® のみを参照しますが、これに含まれるすべての情報は IBM® LinuxONE にも適用されます。

2.4.1. 前提条件

2.4.2. ネットワークが制限された環境でのインストールについて

OpenShift Container Platform 4.20 では、ソフトウェアコンポーネントを取得するためにインターネットへのアクティブな接続を必要としないインストールを実行できます。ネットワークが制限された環境のインストールは、クラスターのインストール先となるクラウドプラットフォームに応じて、installer-provisioned infrastructure または user-provisioned infrastructure を使用して実行できます。

クラウドプラットフォーム上でネットワークが制限されたインストールの実行を選択した場合でも、そのクラウド API へのアクセスが必要になります。Amazon Web Service の Route 53 DNS や IAM サービスなどの一部のクラウド機能には、インターネットアクセスが必要です。ネットワークによっては、ベアメタルハードウェア、Nutanix、または VMware vSphere へのインストールに必要なインターネットアクセスが少なくて済む場合があります。

ネットワークが制限されたインストールを完了するには、OpenShift イメージレジストリーのコンテンツをミラーリングし、インストールメディアを含むレジストリーを作成する必要があります。このミラーは、インターネットと制限されたネットワークの両方にアクセスできるミラーホストで、または制限に対応する他の方法を使用して作成できます。

重要

user-provisioned installation の設定は複雑であるため、user-provisioned infrastructure を使用してネットワークが制限されたインストールを試行する前に、標準的な user-provisioned infrastructure を実行することを検討してください。このテストが完了すると、ネットワークが制限されたインストール時に発生する可能性のある問題の切り分けやトラブルシューティングがより容易になります。

2.4.2.1. その他の制限

ネットワークが制限された環境のクラスターには、以下の追加の制限および制約があります。

  • ClusterVersion ステータスには Unable to retrieve available updates エラーが含まれます。
  • デフォルトでは、必要なイメージストリームタグにアクセスできないため、開発者カタログのコンテンツは使用できません。

2.4.3. user-provisioned infrastructure の準備

user-provisioned infrastructure に OpenShift Container Platform をインストールする前に、基礎となるインフラストラクチャーを準備する必要があります。

このセクションでは、OpenShift Container Platform インストールの準備としてクラスターインフラストラクチャーを設定するために必要な手順の概要を説明します。これには、クラスターノード用の IP ネットワークおよびネットワーク接続の設定、Ignition ファイルの Web サーバーの準備、ファイアウォール経由での必要なポートの有効化、必要な DNS および負荷分散インフラストラクチャーの設定が含まれます。

準備後、クラスターインフラストラクチャーは、user-provisioned infrastructure を使用したクラスターの要件 セクションで説明されている要件を満たす必要があります。

前提条件

手順

  1. 静的 IP アドレスをセットアップします。
  2. HTTP または HTTPS サーバーを設定し、Ignition ファイルをクラスターノードに提供します。
  3. ネットワークインフラストラクチャーがクラスターコンポーネント間の必要なネットワーク接続を提供することを確認します。要件に関する詳細は、user-provisioned infrastructure のネットワーク要件 のセクションを参照してください。
  4. OpenShift Container Platform クラスターコンポーネントで通信するために必要なポートを有効にするようにファイアウォールを設定します。必要なポートの詳細は、user-provisioned infrastructure のネットワーク要件 のセクションを参照してください。

    重要

    デフォルトで、ポート 1936 は OpenShift Container Platform クラスターにアクセスできます。これは、各コントロールプレーンノードがこのポートへのアクセスを必要とするためです。

    Ingress ロードバランサーを使用してこのポートを公開しないでください。これを実行すると、Ingress コントローラーに関連する統計やメトリクスなどの機密情報が公開される可能性があるためです。

  5. クラスターに必要な DNS インフラストラクチャーを設定します。

    1. Kubernetes API、アプリケーションワイルドカード、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンの DNS 名前解決を設定します。
    2. Kubernetes API、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンの逆引き DNS 解決を設定します。

      OpenShift Container Platform DNS 要件の詳細は、user-provisioned DNS 要件 のセクションを参照してください。

  6. DNS 設定を検証します。

    1. インストールノードから、Kubernetes API、ワイルドカードルート、およびクラスターノードのレコード名に対して DNS ルックアップを実行します。応答の IP アドレスが正しいコンポーネントに対応することを確認します。
    2. インストールノードから、ロードバランサーとクラスターノードの IP アドレスに対して逆引き DNS ルックアップを実行します。応答のレコード名が正しいコンポーネントに対応することを確認します。

      DNS 検証手順の詳細は、user-provisioned infrastructure の DNS 解決の検証 のセクションを参照してください。

  7. 必要な API およびアプリケーションの Ingress 負荷分散インフラストラクチャーをプロビジョニングします。要件に関する詳細は、user-provisioned infrastructure の負荷分散要件 のセクションを参照してください。
注記

一部の負荷分散ソリューションでは、負荷分散を初期化する前に、クラスターノードの DNS 名前解決を有効化する必要があります。

2.4.4. インストール設定ファイルの手動作成

クラスターをインストールするには、インストール設定ファイルを手動で作成する必要があります。

前提条件

  • インストールプログラムで使用するための SSH 公開鍵がローカルマシン上に存在する。この鍵は、デバッグや障害復旧のために、クラスターノードへの SSH 認証に使用できます。
  • OpenShift Container Platform インストールプログラムとクラスターのプルシークレットを取得している。

手順

  1. 必要なインストールアセットを保存するためのインストールディレクトリーを作成します。

    $ mkdir <installation_directory>
    Copy to Clipboard Toggle word wrap
    重要

    このディレクトリーは必ず作成してください。ブートストラップ X.509 証明書などの一部のインストールアセットは、有効期限が短いため、インストールディレクトリーを再利用しないでください。別のクラスターインストールの個別のファイルを再利用する必要がある場合は、それらをディレクトリーにコピーすることができます。ただし、インストールアセットのファイル名はリリース間で変更される可能性があります。インストールファイルを以前のバージョンの OpenShift Container Platform からコピーする場合は注意してください。

  2. 提供されているサンプルの install-config.yaml ファイルテンプレートをカスタマイズし、ファイルを <installation_directory> に保存します。

    注記

    この設定ファイルの名前を install-config.yaml と付ける必要があります。

  3. 多くのクラスターのインストールに使用できるように、install-config.yaml ファイルをバックアップします。

    重要

    インストールプロセスの次のステップで install-config.yaml ファイルを使用するため、今すぐこのファイルをバックアップしてください。

2.4.4.1. IBM Z のサンプル install-config.yaml ファイル

install-config.yaml ファイルをカスタマイズして、OpenShift Container Platform クラスターのプラットフォームに関する詳細を指定するか、必要なパラメーターの値を変更することができます。

apiVersion: v1
baseDomain: example.com 
1

compute: 
2

- hyperthreading: Enabled 
3

  name: worker
  replicas: 0 
4

  architecture: s390x
controlPlane: 
5

  hyperthreading: Enabled 
6

  name: master
  replicas: 3 
7

  architecture: s390x
metadata:
  name: test 
8

networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14 
9

    hostPrefix: 23 
10

  networkType: OVNKubernetes 
11

  serviceNetwork: 
12

  - 172.30.0.0/16
platform:
  none: {} 
13

fips: false 
14

pullSecret: '{"auths":{"<local_registry>": {"auth": "<credentials>","email": "you@example.com"}}}' 
15

sshKey: 'ssh-ed25519 AAAA...' 
16

additionalTrustBundle: | 
17

  -----BEGIN CERTIFICATE-----
  ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  -----END CERTIFICATE-----
imageContentSources: 
18

- mirrors:
  - <local_repository>/ocp4/openshift4
  source: quay.io/openshift-release-dev/ocp-release
- mirrors:
  - <local_repository>/ocp4/openshift4
  source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
Copy to Clipboard Toggle word wrap
1
クラスターのベースドメイン。すべての DNS レコードはこのベースのサブドメインである必要があり、クラスター名が含まれる必要があります。
2 5
controlPlane セクションは単一マッピングですが、compute セクションはマッピングのシーケンスになります。複数の異なるデータ構造の要件を満たすには、compute セクションの最初の行はハイフン - で始め、controlPlane セクションの最初の行はハイフンで始めることができません。1 つのコントロールプレーンプールのみが使用されます。
3 6
同時マルチスレッド (SMT) またはハイパースレッディングを有効/無効にするかどうかを指定します。デフォルトでは、SMT はマシンのコアのパフォーマンスを上げるために有効にされます。パラメーター値を Disabled に設定するとこれを無効にすることができます。SMT を無効にする場合、これをすべてのクラスターマシンで無効にする必要があります。これにはコントロールプレーンとコンピュートマシンの両方が含まれます。
注記

同時マルチスレッド (SMT) はデフォルトで有効になっています。SMT が OpenShift Container Platform ノードで利用できない場合、hyperthreading パラメーターは影響を受けません。

重要

OpenShift Container Platform ノードまたは install-config.yaml ファイルであるかに関係なく hyperthreading を無効にする場合、容量計画においてマシンのパフォーマンスの大幅な低下が考慮に入れられていることを確認します。

4
OpenShift Container Platform を user-provisioned infrastructure にインストールする場合は、この値を 0 に設定する必要があります。installer-provisioned installation では、パラメーターはクラスターが作成し、管理するコンピュートマシンの数を制御します。user-provisioned installation では、クラスターのインストールの終了前にコンピュートマシンを手動でデプロイする必要があります。
注記

3 ノードクラスターをインストールする場合は、Red Hat Enterprise Linux CoreOS (RHCOS) マシンをインストールする際にコンピュートマシンをデプロイしないでください。

7
クラスターに追加するコントロールプレーンマシンの数。クラスターをこれらの値をクラスターの etcd エンドポイント数として使用するため、値はデプロイするコントロールプレーンマシンの数に一致する必要があります。
8
DNS レコードに指定したクラスター名。
9
Pod IP アドレスの割り当てに使用する IP アドレスのブロック。このブロックは既存の物理ネットワークと重複できません。これらの IP アドレスは Pod ネットワークに使用されます。外部ネットワークから Pod にアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定する必要があります。
注記

クラス E の CIDR 範囲は、将来の使用のために予約されています。クラス E CIDR 範囲を使用するには、ネットワーク環境がクラス E CIDR 範囲内の IP アドレスを受け入れるようにする必要があります。

10
それぞれの個別ノードに割り当てるサブネット接頭辞長。たとえば、hostPrefix23 に設定されている場合、各ノードに指定の cidr から /23 サブネットが割り当てられます。これにより、510 (2^(32 - 23) - 2) Pod IP アドレスが許可されます。外部ネットワークからのノードへのアクセスを提供する必要がある場合には、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
11
インストールするクラスターネットワークプラグイン。サポートされる値はデフォルト値の OVNKubernetes のみです。
12
サービス IP アドレスに使用する IP アドレスプール。1 つの IP アドレスプールのみを入力できます。このブロックは既存の物理ネットワークと重複できません。外部ネットワークからサービスにアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
13
プラットフォームを none に設定する必要があります。IBM Z® インフラストラクチャー用に追加のプラットフォーム設定変数を指定できません。
重要

プラットフォームタイプ none でインストールされたクラスターは、Machine API を使用したコンピューティングマシンの管理など、一部の機能を使用できません。この制限は、クラスターに接続されている計算マシンが、通常はこの機能をサポートするプラットフォームにインストールされている場合でも適用されます。このパラメーターは、インストール後に変更することはできません。

14
FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
重要

クラスターで FIPS モードを有効にするには、FIPS モードで動作するように設定された Red Hat Enterprise Linux (RHEL) コンピューターからインストールプログラムを実行する必要があります。RHEL で FIPS モードを設定する方法の詳細は、RHEL から FIPS モードへの切り替え を参照してください。

FIPS モードでブートされた Red Hat Enterprise Linux (RHEL) または Red Hat Enterprise Linux CoreOS (RHCOS) を実行する場合、OpenShift Container Platform コアコンポーネントは、x86_64、ppc64le、および s390x アーキテクチャーのみで、FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用します。

15
<local_registry> には、レジストリードメイン名と、ミラーレジストリーがコンテンツを提供するために使用するポートをオプションで指定します。例: registry.example.com または registry.example.com:5000<credentials> に、ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードを指定します。
16
Red Hat Enterprise Linux CoreOS (RHCOS) の core ユーザーの SSH 公開鍵。
注記

インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、ssh-agent プロセスが使用する SSH キーを指定します。

17
additionalTrustBundle パラメーターおよび値を追加します。この値は、ミラーレジストリーに使用した証明書ファイルの内容である必要があります。証明書ファイルは、既存の信頼できる認証局、またはミラーレジストリー用に生成した自己署名証明書のいずれかです。
18
リポジトリーのミラーリングに使用したコマンドの出力に従って、imageContentSources セクションを指定します。
重要
  • oc adm release mirror コマンドを使用する場合は、imageContentSources セクションの出力を使用します。
  • oc mirror コマンドを使用する場合は、コマンドの実行によって生成される ImageContentSourcePolicy ファイルの repositoryDigestMirrors セクションを使用します。
  • ImageContentSourcePolicy は非推奨になりました。詳細は、イメージレジストリーリポジトリーミラーリングの設定 を参照してください。
2.4.4.2. インストール時のクラスター全体のプロキシーの設定

実稼働環境では、インターネットへの直接アクセスを拒否し、代わりに HTTP または HTTPS プロキシーを使用することができます。プロキシー設定を install-config.yaml ファイルで行うことにより、新規の OpenShift Container Platform クラスターをプロキシーを使用するように設定できます。

前提条件

  • 既存の install-config.yaml ファイルがある。
  • クラスターがアクセスする必要のあるサイトを確認済みで、それらのいずれかがプロキシーをバイパスする必要があるかどうかを判別している。デフォルトで、すべてのクラスター Egress トラフィック (クラスターをホストするクラウドに関するクラウドプロバイダー API に対する呼び出しを含む) はプロキシーされます。プロキシーを必要に応じてバイパスするために、サイトを Proxy オブジェクトの spec.noProxy フィールドに追加している。

    注記

    Proxy オブジェクトの status.noProxy フィールドには、インストール設定の networking.machineNetwork[].cidrnetworking.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) も設定されます。

手順

  1. 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.com 
    3
    
    additionalTrustBundle: | 
    4
    
        -----BEGIN CERTIFICATE-----
        <MY_TRUSTED_CA_CERT>
        -----END CERTIFICATE-----
    additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle> 
    5
    Copy to Clipboard Toggle word wrap
    1
    クラスター外の HTTP 接続を作成するために使用するプロキシー URL。URL スキームは http である必要があります。
    2
    クラスター外で HTTPS 接続を作成するために使用するプロキシー URL。
    3
    プロキシーから除外するための宛先ドメイン名、IP アドレス、または他のネットワーク CIDR のコンマ区切りのリスト。サブドメインのみと一致するように、ドメインの前に . を付けます。たとえば、.y.comx.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 config 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
    Copy to Clipboard Toggle word wrap
  2. ファイルを保存し、OpenShift Container Platform のインストール時にこれを参照します。

インストールプログラムは、指定の install-config.yaml ファイルのプロキシー設定を使用する cluster という名前のクラスター全体のプロキシーを作成します。プロキシー設定が指定されていない場合、cluster Proxy オブジェクトが依然として作成されますが、これには spec がありません。

注記

cluster という名前の Proxy オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。

2.4.4.3. 3 ノードクラスターの設定

オプションで、3 台のコントロールプレーンマシンのみで構成される最小の 3 つのノードクラスターにゼロコンピュートマシンをデプロイできます。これにより、テスト、開発、および実稼働に使用するための小規模なリソース効率の高いクラスターが、クラスター管理者および開発者に提供されます。

3 ノードの OpenShift Container Platform 環境では、3 つのコントロールプレーンマシンがスケジュール対象となります。つまり、アプリケーションのワークロードがそれらで実行されるようにスケジュールされます。

前提条件

  • 既存の install-config.yaml ファイルがある。

手順

  • 以下の compute スタンザに示されるように、コンピュートレプリカの数が install-config.yaml ファイルで 0 に設定されることを確認します。

    compute:
    - name: worker
      platform: {}
      replicas: 0
    Copy to Clipboard Toggle word wrap
    注記

    デプロイするコンピュートマシンの数にかかわらず、OpenShift Container Platform を user-provisioned infrastructure にインストールする際に、コンピュートマシンの replicas パラメーターの値を 0 に設定する必要があります。installer-provisioned installation では、パラメーターはクラスターが作成し、管理するコンピュートマシンの数を制御します。これは、コンピュートマシンが手動でデプロイされる、user-provisioned installation には適用されません。

    注記

    コントロールプレーンノードの推奨リソースは 6 vCPU および 21 GB です。コントロールプレーンノードが 3 つの場合には、これは最小の 5 ノードクラスターと同等のメモリー + vCPU です。3 つのノードをバックする必要があります。それぞれに、SMT2 が有効な IFL が 3 つ含まれる 120 GB ディスクにインストールします。各コントロールプレーンノードのテスト済みの最小設定とは、120 GB ディスクに 3 つの vCPU および 10 GB が指定された設定です。

3 ノードのクラスターのインストールで、以下の手順を実行します。

  • ゼロ (0) コンピュートノードで 3 ノードクラスターをデプロイする場合、Ingress コントローラー Pod はコントロールプレーンノードで実行されます。3 ノードクラスターデプロイメントでは、HTTP および HTTPS トラフィックをコントロールプレーンノードにルーティングするようにアプリケーション Ingress ロードバランサーを設定する必要があります。詳細は、user-provisioned infrastructure の負荷分散要件 のセクションを参照してください。
  • 以下の手順で Kubernetes マニフェストファイルを作成する際に、<installation_directory>/manifests/cluster-scheduler-02-config.yml ファイルの mastersSchedulable パラメーターが true に設定されていることを確認します。これにより、アプリケーションのワークロードがコントロールプレーンノードで実行できます。
  • Red Hat Enterprise Linux CoreOS (RHCOS) マシンを作成する際は、コンピュートノードをデプロイしないでください。

2.4.5. Cluster Network Operator の設定

クラスターネットワークの設定は、Cluster Network Operator (CNO) 設定の一部として指定され、cluster という名前のカスタムリソース (CR) オブジェクトに保存されます。CR は operator.openshift.io API グループの Network API のフィールドを指定します。

CNO 設定は、Network.config.openshift.io API グループの Network API からクラスターのインストール時に以下のフィールドを継承します。

clusterNetwork
Pod IP アドレスの割り当てに使用する IP アドレスプール。
serviceNetwork
サービスの IP アドレスプール。
defaultNetwork.type
クラスターネットワークプラグイン。OVNKubernetes は、インストール時にサポートされる唯一のプラグインです。

defaultNetwork オブジェクトのフィールドを cluster という名前の CNO オブジェクトに設定することにより、クラスターのクラスターネットワークプラグイン設定を指定できます。

2.4.5.1. Cluster Network Operator 設定オブジェクト

Cluster Network Operator (CNO) のフィールドは以下の表で説明されています。

Expand
表2.24 Cluster Network Operator 設定オブジェクト
フィールド説明

metadata.name

string

CNO オブジェクトの名前。この名前は常に cluster です。

spec.clusterNetwork

array

Pod IP アドレスの割り当て、サブネット接頭辞の長さのクラスター内の個別ノードへの割り当てに使用される IP アドレスのブロックを指定するリストです。以下に例を示します。

spec:
  clusterNetwork:
  - cidr: 10.128.0.0/19
    hostPrefix: 23
  - cidr: 10.128.32.0/19
    hostPrefix: 23
Copy to Clipboard Toggle word wrap

spec.serviceNetwork

array

サービスの IP アドレスのブロック。OVN-Kubernetes ネットワークプラグインは、サービスネットワークに対して単一の IP アドレスブロックのみをサポートします。以下に例を示します。

spec:
  serviceNetwork:
  - 172.30.0.0/14
Copy to Clipboard Toggle word wrap

マニフェストを作成する前に、このフィールドを install-config.yaml ファイルでのみカスタマイズすることができます。この値は、マニフェストファイルでは読み取り専用です。

spec.defaultNetwork

object

クラスターネットワークのネットワークプラグインを設定します。

spec.additionalRoutingCapabilities.providers

array

この設定により、動的ルーティングプロバイダーが有効になります。ルートアドバタイズ機能には、FRR ルーティング機能プロバイダーが必要です。サポートされている値は FRR のみです。

  • FRR: FRR ルーティングプロバイダー
spec:
  additionalRoutingCapabilities:
    providers:
    - FRR
Copy to Clipboard Toggle word wrap

spec.kubeProxyConfig

object

このオブジェクトのフィールドは、kube-proxy 設定を指定します。OVN-Kubernetes クラスターネットワークプラグインを使用している場合、kube-proxy 設定は機能しません。

重要

複数のネットワークにオブジェクトをデプロイする必要があるクラスターの場合は、install-config.yaml ファイルで定義されている各ネットワークタイプの clusterNetwork.hostPrefix パラメーターに、必ず同じ値を指定してください。clusterNetwork.hostPrefix パラメーターにそれぞれ異なる値を設定すると、OVN-Kubernetes ネットワークプラグインに影響が及び、異なるノード間のオブジェクトトラフィックをプラグインが効果的にルーティングできなくなる可能性があります。

2.4.5.1.1. defaultNetwork オブジェクト設定

defaultNetwork オブジェクトの値は、以下の表で定義されます。

Expand
表2.25 defaultNetwork オブジェクト
フィールド説明

type

string

OVNKubernetes。Red Hat OpenShift Networking ネットワークプラグインは、インストール中に選択されます。この値は、クラスターのインストール後は変更できません。

注記

OpenShift Container Platform は、デフォルトで OVN-Kubernetes ネットワークプラグインを使用します。

ovnKubernetesConfig

object

このオブジェクトは、OVN-Kubernetes ネットワークプラグインに対してのみ有効です。

2.4.5.1.1.1. OVN-Kubernetes ネットワークプラグインの設定

次の表では、OVN-Kubernetes ネットワークプラグインの設定フィールドを説明します。

Expand
表2.26 ovnKubernetesConfig オブジェクト
フィールド説明

mtu

integer

Geneve (Generic Network Virtualization Encapsulation) オーバーレイネットワークの MTU (maximum transmission unit)。これは、プライマリーネットワークインターフェイスの MTU に基づいて自動的に検出されます。通常、検出された MTU をオーバーライドする必要はありません。

自動検出した値が予想される値ではない場合は、ノード上のプライマリーネットワークインターフェイスの MTU が正しいことを確認します。このオプションを使用して、ノード上のプライマリーネットワークインターフェイスの MTU 値を変更することはできません。

クラスターで異なるノードに異なる MTU 値が必要な場合、この値をクラスター内の最小の MTU 値よりも 100 小さく設定する必要があります。たとえば、クラスター内の一部のノードでは MTU が 9001 であり、MTU が 1500 のクラスターもある場合には、この値を 1400 に設定する必要があります。

genevePort

integer

すべての Geneve パケットに使用するポート。デフォルト値は 6081 です。この値は、クラスターのインストール後は変更できません。

ipsecConfig

object

IPsec 設定をカスタマイズするための設定オブジェクトを指定します。

ipv4

object

IPv4 設定の設定オブジェクトを指定します。

ipv6

object

IPv6 設定の設定オブジェクトを指定します。

policyAuditConfig

object

ネットワークポリシー監査ロギングをカスタマイズする設定オブジェクトを指定します。指定されていない場合は、デフォルトの監査ログ設定が使用されます。

routeAdvertisements

string

クラスターネットワークルートをアドバタイズするかどうかを指定します。デフォルト値は、Disabled です。

  • Enabled: ルートをクラスターネットワークにインポートし、RouteAdvertisements オブジェクトで設定されているとおりに、クラスターネットワークルートをアドバタイズします。
  • Disabled: クラスターネットワークにルートをインポートしたり、クラスターネットワークルートをアドバタイズしたりしないでください。

gatewayConfig

object

オプション: Egress トラフィックのノードゲートウェイへの送信方法をカスタマイズするための設定オブジェクトを指定します。有効な値は SharedLocal です。デフォルト値は Shared です。デフォルト設定では、Open vSwitch (OVS) がトラフィックをノード IP インターフェイスに直接出力します。Local 設定では、トラフィックがホストネットワークを通過し、その結果、ホストのルーティングテーブルに適用されます。

注記

Egress トラフィックの移行中は、Cluster Network Operator (CNO) が変更を正常にロールアウトするまで、ワークロードとサービストラフィックに多少の中断が発生することが予想されます。

Expand
表2.27 ovnKubernetesConfig.ipv4 object
フィールド説明

internalTransitSwitchSubnet

string

既存のネットワークインフラストラクチャーが 100.88.0.0/16 IPv4 サブネットと重複している場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。east-west トラフィックを可能にする分散トランジットスイッチのサブネット。このサブネットは、OVN-Kubernetes またはホスト自体で使用される他のサブネットと重複することはできません。クラスター内のノードごとに 1 つの IP アドレスを収容できる必要があります。

デフォルト値は 100.88.0.0/16 です。

internalJoinSubnet

string

既存のネットワークインフラストラクチャーが 100.64.0.0/16 IPv4 サブネットと重複している場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。IP アドレス範囲が、OpenShift Container Platform インストールで使用される他のサブネットと重複しないようにする必要があります。IP アドレス範囲は、クラスターに追加できるノードの最大数より大きくする必要があります。たとえば、clusterNetwork.cidr 値が 10.128.0.0/14 で、clusterNetwork.hostPrefix 値が /23 の場合、ノードの最大数は 2^(23-14)=512 です。

デフォルト値は 100.64.0.0/16 です。

Expand
表2.28 ovnKubernetesConfig.ipv6 object
フィールド説明

internalTransitSwitchSubnet

string

既存のネットワークインフラストラクチャーが fd97::/64 IPv6 サブネットと重複する場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。east-west トラフィックを可能にする分散トランジットスイッチのサブネット。このサブネットは、OVN-Kubernetes またはホスト自体で使用される他のサブネットと重複することはできません。クラスター内のノードごとに 1 つの IP アドレスを収容できる必要があります。

デフォルト値は fd97::/64 です。

internalJoinSubnet

string

既存のネットワークインフラストラクチャーが fd98::/64 IPv6 サブネットと重複する場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。IP アドレス範囲が、OpenShift Container Platform インストールで使用される他のサブネットと重複しないようにする必要があります。IP アドレス範囲は、クラスターに追加できるノードの最大数より大きくする必要があります。

デフォルト値は fd98::/64 です。

Expand
表2.29 policyAuditConfig オブジェクト
フィールド説明

rateLimit

integer

ノードごとに毎秒生成されるメッセージの最大数。デフォルト値は、1 秒あたり 20 メッセージです。

maxFileSize

integer

監査ログの最大サイズ (バイト単位)。デフォルト値は 50000000 (50MB) です。

maxLogFiles

integer

保持されるログファイルの最大数。

destination

string

以下の追加の監査ログターゲットのいずれかになります。

libc
ホスト上の journald プロセスの libc syslog() 関数。
udp:<host>:<port>
syslog サーバー。<host>:<port> を syslog サーバーのホストおよびポートに置き換えます。
unix:<file>
<file> で指定された Unix ドメインソケットファイル。
null
監査ログを追加のターゲットに送信しないでください。

syslogFacility

string

RFC5424 で定義される kern などの syslog ファシリティー。デフォルト値は local0 です。

Expand
表2.30 gatewayConfig オブジェクト
フィールド説明

routingViaHost

boolean

Pod からホストネットワークスタックへの Egress トラフィックを送信するには、このフィールドを true に設定します。インストールおよびアプリケーションがカーネルルーティングテーブルに手動設定されたルートに依存するなど非常に特化されている場合には、Egress トラフィックをホストネットワークスタックにルーティングすることを推奨します。デフォルトでは、Egress トラフィックは OVN で処理され、クラスターを終了するために処理され、トラフィックはカーネルルーティングテーブルの特殊なルートによる影響を受けません。デフォルト値は false です。

このフィールドで、Open vSwitch ハードウェアオフロード機能との対話が可能になりました。このフィールドを true に設定すると、Egress トラフィックがホストネットワークスタックで処理されるため、パフォーマンス的に、オフロードによる利点は得られません。

ipForwarding

object

Network リソースの ipForwarding 仕様を使用して、OVN-Kubernetes マネージドインターフェイス上のすべてのトラフィックの IP フォワーディングを制御できます。Kubernetes 関連のトラフィックの IP フォワーディングのみを許可するには、Restricted を指定します。すべての IP トラフィックの転送を許可するには、Global を指定します。新規インストールの場合、デフォルトは Restricted です。OpenShift Container Platform 4.14 以降に更新する場合、デフォルトは Global です。

注記

デフォルト値の Restricted では、IP 転送がドロップされるように設定されます。

ipv4

object

オプション: IPv4 アドレスのホストからサービスへのトラフィック用の内部 OVN-Kubernetes マスカレードアドレスを設定するオブジェクトを指定します。

ipv6

object

オプション: IPv6 アドレスのホストからサービスへのトラフィックの内部 OVN-Kubernetes マスカレードアドレスを設定するオブジェクトを指定します。

Expand
表2.31 gatewayConfig.ipv4 object
フィールド説明

internalMasqueradeSubnet

string

ホストからサービスへのトラフィックを有効にするために内部的に使用されるマスカレード IPv4 アドレス。ホストは、これらの IP アドレスと共有ゲートウェイブリッジインターフェイスを使用して設定されます。デフォルト値は 169.254.169.0/29 です。

重要

OpenShift Container Platform 4.17 以降のバージョンでは、クラスターはデフォルトのマスカレードサブネットとして 169.254.0.0/17 を使用します。アップグレードされたクラスターの場合は、デフォルトのマスカレードサブネットに変更がありません。

Expand
表2.32 gatewayConfig.ipv6 object
フィールド説明

internalMasqueradeSubnet

string

ホストからサービスへのトラフィックを有効にするために内部的に使用されるマスカレード IPv6 アドレス。ホストは、これらの IP アドレスと共有ゲートウェイブリッジインターフェイスを使用して設定されます。デフォルト値は fd69::/125 です。

重要

OpenShift Container Platform 4.17 以降のバージョンでは、クラスターはデフォルトのマスカレードサブネットとして fd69::/112 を使用します。アップグレードされたクラスターの場合は、デフォルトのマスカレードサブネットに変更がありません。

Expand
表2.33 ipsecConfig オブジェクト
フィールド説明

mode

string

IPsec 実装の動作を指定します。次の値のいずれかである必要があります。

  • Disabled: クラスターノードで IPsec が有効になりません。
  • External: 外部ホストとのネットワークトラフィックに対して IPsec が有効になります。
  • Full: Pod トラフィックおよび外部ホストとのネットワークトラフィックに対して IPsec が有効になります。

IPSec が有効な OVN-Kubernetes 設定の例

defaultNetwork:
  type: OVNKubernetes
  ovnKubernetesConfig:
    mtu: 1400
    genevePort: 6081
    ipsecConfig:
      mode: Full
Copy to Clipboard Toggle word wrap

2.4.6. Kubernetes マニフェストおよび Ignition 設定ファイルの作成

一部のクラスター定義ファイルを変更し、クラスターマシンを手動で起動する必要があるため、クラスターがマシンを設定するために必要な Kubernetes マニフェストと Ignition 設定ファイルを生成する必要があります。

インストール設定ファイルは Kubernetes マニフェストに変換されます。マニフェストは Ignition 設定ファイルにラップされます。これはクラスターマシンを設定するために後で使用されます。

重要
  • OpenShift Container Platform のインストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の node-bootstrapper 証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。
  • 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
注記

マニフェストおよび Ignition ファイルを生成するインストールプログラムはアーキテクチャー固有であり、クライアントイメージミラー から取得できます。インストールプログラムの Linux バージョンは s390x でのみ実行されます。このインストーラープログラムは、Mac OS バージョンとしても利用できます。

前提条件

  • OpenShift Container Platform インストールプログラムを取得していること。ネットワークが制限されたインストールでは、これらのファイルがミラーホスト上に置かれます。
  • install-config.yaml インストール設定ファイルを作成していること。

手順

  1. OpenShift Container Platform のインストールプログラムが含まれるディレクトリーに切り替え、クラスターの Kubernetes マニフェストを生成します。

    $ ./openshift-install create manifests --dir <installation_directory> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、作成した install-config.yaml ファイルが含まれるインストールディレクトリーを指定します。
    警告

    3 ノードクラスターをインストールしている場合は、以下の手順を省略してコントロールプレーンノードをスケジュール対象にします。

    重要

    コントロールプレーンノードをデフォルトのスケジュール不可からスケジュール可に設定するには、追加のサブスクリプションが必要です。これは、コントロールプレーンノードがコンピュートノードになるためです。

  2. <installation_directory>/manifests/cluster-scheduler-02-config.yml Kubernetes マニフェストファイルの mastersSchedulable パラメーターが false に設定されていることを確認します。この設定により、Pod がコントロールプレーンマシンにスケジュールされなくなります。

    1. <installation_directory>/manifests/cluster-scheduler-02-config.yml ファイルを開きます。
    2. mastersSchedulable パラメーターを見つけ、これが false に設定されていることを確認します。
    3. ファイルを保存し、終了します。
  3. Ignition 設定ファイルを作成するには、インストールプログラムが含まれるディレクトリーから以下のコマンドを実行します。

    $ ./openshift-install create ignition-configs --dir <installation_directory> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、同じインストールディレクトリーを指定します。

    Ignition 設定ファイルは、インストールディレクトリー内のブートストラップ、コントロールプレーン、およびコンピュートノード用に作成されます。kubeadmin-password および kubeconfig ファイルが ./<installation_directory>/auth ディレクトリーに作成されます。

    .
    ├── auth
    │   ├── kubeadmin-password
    │   └── kubeconfig
    ├── bootstrap.ign
    ├── master.ign
    ├── metadata.json
    └── worker.ign
    Copy to Clipboard Toggle word wrap

2.4.7. IBM Z または IBM LinuxONE 環境でのブートボリューム暗号化の設定

IBM Z® または IBM® LinuxONE 上の OpenShift Container Platform コントロールプレーンおよびコンピュートノードのブートボリュームをオプションで暗号化するには、次の 2 つの方法から選択できます。

  • IBM® Crypto Express (CEX) による Linux Unified Key Setup (LUKS) 暗号化
  • Network Bound Disk Encryption (NBDE)
2.4.7.1. IBM Z または IBM LinuxONE 環境での CEX 経由の LUKS 暗号化

IBM Z® または IBM® LinuxONE 環境で IBM® Crypto Express (CEX) を介してハードウェアベースの Linux Unified Key Setup (LUKS) 暗号化を有効にするには、追加の手順が必要です。このセクションでは、この手順を詳しく説明します。

前提条件

  • butane ユーティリティーをインストールした。
  • Butane でマシン設定を作成する手順を確認した。

手順

  1. 適切な方法を選択し、コントロールプレーンとコンピュートノードの Butane 設定ファイルを作成します。

    • DASD タイプのディスクにインストールする場合は、ディスク暗号化が設定されたコントロールプレーンノード用に、以下の Butane 設定を使用して main-storage.bu という名前のファイルを作成します。次に例を示します。

      variant: openshift
      version: 4.20.0
      metadata:
        name: main-storage
        labels:
          machineconfiguration.openshift.io/role: master
      boot_device:
        layout: s390x-eckd
        luks:
          device: /dev/dasda
          cex:
            enabled: true
      openshift:
        fips: true 
      1
      
        kernel_arguments:
          - rd.luks.key=/etc/luks/cex.key 
      2
      Copy to Clipboard Toggle word wrap
      1
      FIPS モードを有効にするか無効にするかを指定します。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
      2
      デバイスの復号に必要なキーの場所を指定します。この値を変更することはできません。
    • FCP タイプのディスクにインストールする場合は、ディスク暗号化が設定されたコントロールプレーンノード用に、以下の Butane 設定を使用して main-storage.bu という名前のファイルを作成します。次に例を示します。

      variant: openshift
      version: 4.20.0
      metadata:
        name: main-storage
        labels:
          machineconfiguration.openshift.io/role: master
      storage:
        filesystems:
          - device: /dev/mapper/root
            format: xfs
            label: root
            wipe_filesystem: true
        luks:
          - device: /dev/disk/by-label/root
            label: luks-root
            name: root
            wipe_volume: true
            cex:
              enabled: true
      openshift:
        fips: true 
      1
      
        kernel_arguments:
          - rd.luks.key=/etc/luks/cex.key 
      2
      Copy to Clipboard Toggle word wrap
      1
      FIPS モードを有効にするか無効にするかを指定します。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
      2
      デバイスの復号に必要なキーの場所を指定します。この値を変更することはできません。
  2. ignition.platform.id=metal および ignition.firstboot を含むパラメーターファイルを作成します。

    コントロールプレーンマシンのカーネルパラメーターファイルの例

    cio_ignore=all,!condev rd.neednet=1 \
    console=ttysclp0 \
    coreos.inst.install_dev=/dev/disk/by-id/scsi-<serial_number> \
    1
    
    ignition.firstboot ignition.platform.id=metal \
    coreos.inst.ignition_url=http://<http_server>/master.ign \
    2
    
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
    3
    
    ip=<ip_address>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.zfcp=0.0.5677,0x600606680g7f0056,0x034F000000000000 
    4
    Copy to Clipboard Toggle word wrap

    1
    ディスクのタイプに応じて、一意の完全修飾パスを指定します。DASD タイプまたは FCP タイプのディスクを指定できます。
    2
    Ignition 設定ファイルの場所を指定します。master.ign または worker.ign を使用します。HTTP および HTTPS プロトコルのみを使用できます。
    3
    起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP および HTTPS プロトコルのみを使用できます。
    4
    ルートデバイスを指定します。DASD タイプのディスクにインストールする場合は、rd.dasd=0.0.xxxx に置き換えて DASD デバイスを指定します。
    注記

    パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

2.4.7.2. IBM Z または IBM& LinuxONE 環境での静的 IP を使用した NBDE の設定

IBM Z® または IBM® LinuxONE 環境で NBDE ディスク暗号化を有効にするには、追加の手順が必要です。このセクションで詳しく説明します。

前提条件

  • 外部 Tang サーバーをセットアップした。手順は、Network-Bound Disk Encryption を参照してください。
  • butane ユーティリティーをインストールした。
  • Butane でマシン設定を作成する手順を確認した。

手順

  1. コントロールプレーンとコンピュートノードの Butane 設定ファイルを作成します。

    次のコントロールプレーンノードの Butane 設定の例では、ディスク暗号化用に master-storage.bu という名前のファイルを作成します。

    variant: openshift
    version: 4.20.0
    metadata:
      name: master-storage
      labels:
        machineconfiguration.openshift.io/role: master
    storage:
      luks:
        - clevis:
            tang:
              - thumbprint: QcPr_NHFJammnRCA3fFMVdNBwjs
                url: http://clevis.example.com:7500
          device: /dev/disk/by-partlabel/root 
    1
    
          label: luks-root
          name: root
          wipe_volume: true
      filesystems:
        - device: /dev/mapper/root
          format: xfs
          label: root
          wipe_filesystem: true
    openshift:
      fips: true 
    2
    Copy to Clipboard Toggle word wrap
    1
    DASD タイプのディスクにインストールする場合は、device: /dev/disk/by-label/root に置き換えます。
    2
    FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
  2. 次のコマンドを実行して、マシンを起動するためのカスタマイズされた initramfs ファイルを作成します。

    $ coreos-installer pxe customize \
        /root/rhcos-bootfiles/rhcos-<release>-live-initramfs.s390x.img \
        --dest-device /dev/disk/by-id/scsi-<serial_number> --dest-karg-append \
        ip=<ip_address>::<gateway_ip>:<subnet_mask>::<network_device>:none \
        --dest-karg-append nameserver=<nameserver_ip> \
        --dest-karg-append rd.neednet=1 -o \
        /root/rhcos-bootfiles/<node_name>-initramfs.s390x.img
    Copy to Clipboard Toggle word wrap
    注記

    最初のブートの前に、クラスター内の各ノードの initramfs をカスタマイズし、PXE カーネルパラメーターを追加する必要があります。

  3. ignition.platform.id=metal および ignition.firstboot を含むパラメーターファイルを作成します。

    コントロールプレーンマシンのカーネルパラメーターファイルの例

    cio_ignore=all,!condev rd.neednet=1 \
    console=ttysclp0 \
    coreos.inst.install_dev=/dev/<block_device> \
    1
    
    ignition.firstboot ignition.platform.id=metal \
    coreos.inst.ignition_url=http://<http_server>/master.ign \
    2
    
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
    3
    
    ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.zfcp=0.0.5677,0x600606680g7f0056,0x034F000000000000 \
    4
    
    zfcp.allow_lun_scan=0
    Copy to Clipboard Toggle word wrap

    1
    ブロックデバイスタイプを指定します。DASD タイプのディスクにインストールする場合は、/dev/dasda を指定します。FCP タイプのディスクにインストールする場合は、/dev/sda を指定します。
    2
    Ignition 設定ファイルの場所を指定します。master.ign または worker.ign を使用します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    3
    起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    4
    DASD タイプのディスクにインストールする場合は、rd.dasd=0.0.xxxx に置き換えて DASD デバイスを指定します。
    注記

    パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

2.4.8. RHCOS のインストールおよび OpenShift Container Platform ブートストラッププロセスの開始

OpenShift Container Platform を独自にプロビジョニングする IBM Z® インフラストラクチャーにインストールするには、Red Hat Enterprise Linux CoreOS (RHCOS) を z/VM ゲスト仮想マシンにインストールする必要があります。RHCOS のインストール時に、インストールするマシンのタイプに、OpenShift Container Platform インストールプログラムによって生成された Ignition 設定ファイルを指定する必要があります。適切なネットワーク、DNS、および負荷分散インフラストラクチャーが設定されている場合、OpenShift Container Platform ブートストラッププロセスは RHCOS z/VM ゲスト仮想マシンの再起動後に自動的に開始されます。

マシンを作成するには、以下の手順を実行します。

前提条件

  • 作成するマシンがアクセスできるプロビジョニングマシンで稼働している HTTP または HTTPS サーバー。
  • セキュアブートを有効にする場合は、適切な Product Signing Key を取得し、IBM ドキュメントの Secure boot on IBM Z and IBM LinuxONE を確認した。

手順

  1. プロビジョニングマシンで Linux にログインします。
  2. RHCOS イメージミラー から Red Hat Enterprise Linux CoreOS (RHCOS) カーネル、initramfs および rootfs ファイルを取得します。

    重要

    RHCOS イメージは OpenShift Container Platform の各リリースごとに変更されない可能性があります。インストールする OpenShift Container Platform バージョンと等しいか、それ以下のバージョンの内で最も新しいバージョンのイメージをダウンロードする必要があります。この手順で説明されている適切な kernel、initramfs、および rootfs アーティファクトのみを使用します。

    ファイル名には、OpenShift Container Platform のバージョン番号が含まれます。以下の例のようになります。

    • kernel: rhcos-<version>-live-kernel-<architecture>
    • initramfs: rhcos-<version>-live-initramfs.<architecture>.img
    • rootfs: rhcos-<version>-live-rootfs.<architecture>.img

      注記

      rootfs イメージは FCP および DASD の場合と同じです。

  3. パラメーターファイルを作成します。以下のパラメーターは特定の仮想マシンに固有のものです。

    • ip= には、以下の 7 つのエントリーを指定します。

      1. マシンの IP アドレス。
      2. 空の文字列。
      3. ゲートウェイ。
      4. ネットマスク。
      5. hostname.domainname 形式のマシンホストおよびドメイン名。この値を省略すると、RHCOS が逆引き DNS ルックアップによりホスト名を取得します。
      6. ネットワークインターフェイス名。この値を省略すると、RHCOS が利用可能なすべてのインターフェイスに IP 設定を適用します。
      7. 静的 IP アドレスを使用する場合、none を指定します。
    • coreos.inst.ignition_url= の場合、マシンロールの Ignition ファイルを指定します。bootstrap.ignmaster.ign、または worker.ign を使用します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    • coreos.live.rootfs_url= の場合、起動しているカーネルおよび initramfs の一致する rootfs アーティファクトを指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    • オプション: セキュアブートを有効にするには、coreos.inst.secure_ipl を追加します。
    • DASD タイプのディスクへのインストールには、以下のタスクを実行します。

      1. coreos.inst.install_dev= には、/dev/disk/by-path/ccw-<device_id> を指定します。<device_id> には、たとえば 0.0.1000 を指定します。
      2. rd.dasd= を使用して、RHCOS がインストールされる DASD を指定します。
      3. その他のパラメーターはすべて変更しません。

        ブートストラップマシンのパラメーターファイルのサンプル bootstrap-0.parm:

        cio_ignore=all,!condev rd.neednet=1 \
        console=ttysclp0 \
        coreos.inst.install_dev=/dev/disk/by-id/scsi-<serial_number> \
        1
        
        coreos.inst.ignition_url=http://<http_server>/bootstrap.ign \
        2
        
        coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
        3
        
        coreos.inst.secure_ipl \
        4
        
        ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
        rd.znet=qeth,0.0.bdf0,0.0.bdf1,0.0.bdf2,layer2=1,portno=0 \
        rd.dasd=0.0.3490
        Copy to Clipboard Toggle word wrap
        1
        ディスクの種類に応じて一意の完全修飾パスを指定します。これは、DASD タイプまたは FCP タイプのディスクのいずれかです。
        2
        Ignition 設定ファイルの場所を指定します。bootstrap.ignmaster.ign、または worker.ign を使用します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
        3
        起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
        4
        オプション: セキュアブートを有効にするには、coreos.inst.secure_ipl を追加します。

        パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

    • FCP タイプのディスクへのインストールには、以下のタスクを実行します。

      1. rd.zfcp=<adapter>,<wwpn>,<lun> を使用して RHCOS がインストールされる FCP ディスクを指定します。マルチパスの場合、それぞれの追加のステップでこのステップを繰り返します。

        注記

        複数のパスを使用してインストールする場合は、問題が発生する可能性があるため、後でではなくインストールの直後にマルチパスを有効にする必要があります。

      2. インストールデバイスを coreos.inst.install_dev=/dev/disk/by-id/scsi-<serial_number> として設定します。
  4. オプション: generic.ins ファイルを作成します。

    インストール方法によっては、Hardware Management Console (HMC)、DVD、または FTP サーバーのファイルシステム内のインストールデータの場所と、データがコピーされるメモリー位置のマッピングを含む generic.ins ファイルも必要です。サンプルの generic.ins ファイルが、RHEL インストールメディアに付属しています。ファイルには、初期 RAM ディスク (initrd.img)、カーネルイメージ (kernel.img)、およびパラメーター (generic.prm) ファイルのファイル名と、各ファイルのメモリー位置が含まれています。

    generic.ins ファイルの例

    images/kernel.img 0x00000000
    images/initrd.img 0x02000000
    images/genericdvd.prm 0x00010480
    images/initrd.addrsize 0x00010408
    Copy to Clipboard Toggle word wrap

  5. その他のパラメーターはすべて変更しません。

    重要

    マルチパスを完全に有効にするには、インストール後の追加の手順が必要です。詳細は、マシン設定 の「RHCOS のカーネル引数でのマルチパスの有効化」を参照してください。

    以下は、マルチパスが設定されたコンピュートノードのパラメーターファイルのサンプル worker-1.parm です。

    cio_ignore=all,!condev rd.neednet=1 \
    console=ttysclp0 \
    coreos.inst.install_dev=/dev/disk/by-id/scsi-<serial_number> \
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
    coreos.inst.ignition_url=http://<http_server>/worker.ign \
    ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
    rd.znet=qeth,0.0.bdf0,0.0.bdf1,0.0.bdf2,layer2=1,portno=0 \
    rd.zfcp=0.0.1987,0x50050763070bc5e3,0x4008400B00000000 \
    rd.zfcp=0.0.19C7,0x50050763070bc5e3,0x4008400B00000000 \
    rd.zfcp=0.0.1987,0x50050763071bc5e3,0x4008400B00000000 \
    rd.zfcp=0.0.19C7,0x50050763071bc5e3,0x4008400B00000000
    Copy to Clipboard Toggle word wrap

    パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

  6. FTP などを使用し、initramfs、kernel、パラメーターファイル、および RHCOS イメージを z/VM に転送します。FTP を使用してファイルを転送し、仮想リーダーから起動する方法の詳細は、IBM Z® でインストールを起動して z/VM に RHEL をインストールする を参照してください。
  7. ブートストラップノードになる z/VM ゲスト仮想マシンの仮想リーダーに対してファイルの punch を実行します。

    PUNCH (IBM® ドキュメント) を参照してください。

    ヒント

    CP PUNCH コマンドを使用するか、Linux を使用している場合は、vmur コマンドを使用して 2 つの z/VM ゲスト仮想マシン間でファイルを転送できます。

  8. ブートストラップマシンで CMS にログインします。
  9. リーダーからブートストラップマシンに対して IPL を実行します。

    $ ipl c
    Copy to Clipboard Toggle word wrap

    IPL (IBM® ドキュメント) を参照してください。

  10. クラスター内の他のマシンに、この手順を繰り返します。
2.4.8.1. 詳細の RHCOS インストールリファレンス

このセクションでは、Red Hat Enterprise Linux CoreOS (RHCOS) の手動インストールプロセスを変更できるようにするネットワーク設定および他の高度なオプションを説明します。以下の表では、RHCOS ライブインストーラーおよび coreos-installer コマンドで使用できるカーネル引数およびコマンドラインのオプションを説明します。

2.4.8.1.1. ISO インストールのネットワークおよびボンディングのオプション

ISO イメージから RHCOS をインストールする場合、そのイメージを起動してノードのネットワークを設定する際に手動でカーネル引数を追加できます。ネットワークの引数が指定されていない場合、RHCOS が Ignition 設定ファイルを取得するためにネットワークが必要であることを検知する際に、DHCP が initramfs でアクティベートされます。

重要

ネットワーク引数を手動で追加する場合は、rd.neednet=1 カーネル引数を追加して、ネットワークを initramfs で有効にする必要があります。

以下の情報は、ISO インストール用に RHCOS ノードでネットワークおよびボンディングを設定する例を示しています。この例では、ip=nameserver=、および bond= カーネル引数の使用方法を説明しています。

注記

順序は、カーネル引数の ip=nameserver=、および bond= を追加する場合に重要です。

ネットワークオプションは、システムの起動時に dracut ツールに渡されます。dracut でサポートされるネットワークオプションの詳細は、dracut.cmdline man ページ を参照してください。

次の例は、ISO インストールのネットワークオプションです。

2.4.8.1.1.1. DHCP または静的 IP アドレスの設定

IP アドレスを設定するには、DHCP (ip=dhcp) を使用するか、個別の静的 IP アドレス (ip=<host_ip>) を設定します。静的 IP を設定する場合、各ノードで DNS サーバー IP アドレス (nameserver=<dns_ip>) を特定する必要があります。次の例では、以下を設定します。

  • ノードの IP アドレス: 10.10.10.2
  • ゲートウェイアドレス: 10.10.10.254
  • ネットワーク: 255.255.255.0
  • ホスト名: core0.example.com
  • DNS サーバーアドレス: 4.4.4.41
  • auto-configuration の値を none に設定します。IP ネットワークが静的に設定されている場合には、自動設定は必要ありません。
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
nameserver=4.4.4.41
Copy to Clipboard Toggle word wrap
注記

DHCP を使用して RHCOS マシンの IP アドレスを設定する場合、マシンは DHCP を介して DNS サーバー情報も取得します。DHCP ベースのデプロイメントの場合、DHCP サーバー設定を使用して RHCOS ノードが使用する DNS サーバーアドレスを定義できます。

2.4.8.1.1.2. 静的ホスト名を使用しない IP アドレスの設定

静的ホスト名を割り当てずに IP アドレスを設定できます。静的ホスト名がユーザーによって設定されていない場合は、逆引き DNS ルックアップによって取得され、自動的に設定されます。静的ホスト名なしで IP アドレスを設定するには、次の例を参照してください。

  • ノードの IP アドレス: 10.10.10.2
  • ゲートウェイアドレス: 10.10.10.254
  • ネットワーク: 255.255.255.0
  • DNS サーバーアドレス: 4.4.4.41
  • auto-configuration の値を none に設定します。IP ネットワークが静的に設定されている場合には、自動設定は必要ありません。
ip=10.10.10.2::10.10.10.254:255.255.255.0::enp1s0:none
nameserver=4.4.4.41
Copy to Clipboard Toggle word wrap
2.4.8.1.1.3. 複数のネットワークインターフェイスの指定

複数の ip= エントリーを設定することで、複数のネットワークインターフェイスを指定できます。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
ip=10.10.10.3::10.10.10.254:255.255.255.0:core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.4.8.1.1.4. デフォルトゲートウェイとルートの設定

オプション: rd.route= value を設定して、追加のネットワークへのルートを設定できます。

注記

1 つまたは複数のネットワークを設定する場合、1 つのデフォルトゲートウェイが必要です。追加のネットワークゲートウェイがプライマリーネットワークゲートウェイと異なる場合、デフォルトゲートウェイはプライマリーネットワークゲートウェイである必要があります。

  • 次のコマンドを実行して、デフォルトゲートウェイを設定します。

    ip=::10.10.10.254::::
    Copy to Clipboard Toggle word wrap
  • 次のコマンドを入力して、追加ネットワークのルートを設定します。

    rd.route=20.20.20.0/24:20.20.20.254:enp2s0
    Copy to Clipboard Toggle word wrap
2.4.8.1.1.5. 単一インターフェイスでの DHCP の無効化

2 つ以上のネットワークインターフェイスがあり、1 つのインターフェイスのみが使用される場合などに、1 つのインターフェイスで DHCP を無効にします。この例では、enp1s0 インターフェイスには静的ネットワーク設定があり、使用されていない enp2s0 では DHCP が無効になっています。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
ip=::::core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.4.8.1.1.6. DHCP と静的 IP 設定の組み合わせ

以下のように、複数のネットワークインターフェイスを持つシステムで、DHCP および静的 IP 設定を組み合わせることができます。

ip=enp1s0:dhcp
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.4.8.1.1.7. 個々のインターフェイスでの VLAN の設定

オプション: vlan= パラメーターを使用して、個別のインターフェイスに VLAN を設定できます。

  • ネットワークインターフェイスで VLAN を設定し、静的 IP アドレスを使用するには、次のコマンドを実行します。

    ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp2s0.100:none
    vlan=enp2s0.100:enp2s0
    Copy to Clipboard Toggle word wrap
  • ネットワークインターフェイスで VLAN を設定し、DHCP を使用するには、次のコマンドを実行します。

    ip=enp2s0.100:dhcp
    vlan=enp2s0.100:enp2s0
    Copy to Clipboard Toggle word wrap
2.4.8.1.1.8. 複数の DNS サーバーの指定

以下のように、各サーバーに nameserver= エントリーを追加して、複数の DNS サーバーを指定できます。

nameserver=1.1.1.1
nameserver=8.8.8.8
Copy to Clipboard Toggle word wrap
2.4.8.1.1.9. 複数のネットワークインターフェイスの単一インターフェイスへのボンディング

オプション: bond= オプションを使用して、複数のネットワークインターフェイスを単一のインターフェイスにボンディングできます。次の例を参照してください。

  • ボンディングされたインターフェイスを設定するための構文は、bond=<name>[:<network_interfaces>][:options] です。

    <name> はボンディングデバイス名 (bond0)、<network_interfaces> は物理 (イーサネット) インターフェイスのコンマ区切りのリスト (em1,em2) を表し、options はボンディングオプションのコンマ区切りのリストです。modinfo bonding を入力して、利用可能なオプションを表示します。

  • bond= を使用してボンディングされたインターフェイスを作成する場合は、ボンディングされたインターフェイスの IP アドレスの割り当て方法やその他の情報を指定する必要があります。

    • DHCP を使用するようにボンディングされたインターフェイスを設定するには、ボンドの IP アドレスを dhcp に設定します。以下に例を示します。

      bond=bond0:em1,em2:mode=active-backup
      ip=bond0:dhcp
      Copy to Clipboard Toggle word wrap
    • 静的 IP アドレスを使用するようにボンディングされたインターフェイスを設定するには、必要な特定の IP アドレスと関連情報を入力します。以下に例を示します。
bond=bond0:em1,em2:mode=active-backup,fail_over_mac=1
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:bond0:none
Copy to Clipboard Toggle word wrap

共有 OSA/RoCE カードを使用する場合の問題を回避するために、常にアクティブバックアップモードで fail_over_mac=1 オプションを設定してください。

2.4.8.1.1.10. 複数のネットワークインターフェイスの単一インターフェイスへのボンディング

任意: 以下のように、vlan= パラメーターを指定して、DHCP を使用して、ボンディングされたインターフェイスで VLAN を設定できます。

ip=bond0.100:dhcp
bond=bond0:em1,em2:mode=active-backup
vlan=bond0.100:bond0
Copy to Clipboard Toggle word wrap

次の例を使用して、VLAN でボンディングされたインターフェイスを設定し、静的 IP アドレスを使用します。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:bond0.100:none
bond=bond0:em1,em2:mode=active-backup
vlan=bond0.100:bond0
Copy to Clipboard Toggle word wrap
2.4.8.1.1.11. ネットワークチーミングの使用

任意: team= パラメーターを指定して、ボンディングの代わりにネットワークチーミングを使用できます。

  • チームインターフェイス設定の構文は team=name[:network_interfaces] です。

    name はチームデバイス名 (team0)、network_interfaces は物理 (イーサネット) インターフェイス (em1, em2) のコンマ区切りリストを表します。

注記

RHCOS が次のバージョンの RHEL に切り替わると、チーミングは非推奨になる予定です。詳細は、こちらの Red Hat ナレッジベース記事 を参照してください。

次の例を使用して、ネットワークチームを設定します。

team=team0:em1,em2
ip=team0:dhcp
Copy to Clipboard Toggle word wrap

2.4.9. ブートストラッププロセスの完了まで待機する

OpenShift Container Platform ブートストラッププロセスは、初回のクラスターノードのディスクにインストールされている永続的な RHCOS 環境での起動後に開始します。Ignition 設定ファイルで指定される設定情報は、ブートストラッププロセスを初期化し、マシンに OpenShift Container Platform をインストールするために使用されます。ブートストラッププロセスが完了するまで待機する必要があります。

前提条件

  • クラスターの Ignition 設定ファイルを作成している。
  • 適切なネットワーク、DNS および負荷分散インフラストラクチャーを設定している。
  • インストールプログラムを取得し、クラスターの Ignition 設定ファイルを生成している。
  • RHCOS をクラスターマシンにインストールし、OpenShift Container Platform インストールプログラムで生成される Ignition 設定ファイルを指定している。

手順

  1. ブートストラッププロセスをモニターします。

    $ ./openshift-install --dir <installation_directory> wait-for bootstrap-complete \ 
    1
    
        --log-level=info 
    2
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。
    2
    異なるインストールの詳細情報を表示するには、info ではなく、warndebug、または error を指定します。

    出力例

    INFO Waiting up to 30m0s for the Kubernetes API at https://api.test.example.com:6443...
    INFO API v1.33.4 up
    INFO Waiting up to 30m0s for bootstrapping to complete...
    INFO It is now safe to remove the bootstrap resources
    Copy to Clipboard Toggle word wrap

    Kubernetes API サーバーでこれがコントロールプレーンマシンにブートストラップされていることを示すシグナルが出されるとコマンドは成功します。

  2. ブートストラッププロセスが完了したら、ブートストラップマシンをロードバランサーから削除します。

    重要

    この時点で、ブートストラップマシンをロードバランサーから削除する必要があります。さらに、ブートストラップマシン自体を削除し、再フォーマットすることができます。

2.4.10. CLI の使用によるクラスターへのログイン

クラスター kubeconfig ファイルをエクスポートし、デフォルトシステムユーザーとしてクラスターにログインできます。kubeconfig ファイルには、クライアントを正しいクラスターおよび API サーバーに接続するために CLI で使用されるクラスターに関する情報が含まれます。このファイルはクラスターに固有のファイルであり、OpenShift Container Platform のインストール時に作成されます。

前提条件

  • OpenShift Container Platform クラスターをデプロイしていること。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. 次のコマンドを実行して、kubeadmin 認証情報をエクスポートします。

    $ export KUBECONFIG=<installation_directory>/auth/kubeconfig 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。
  2. 次のコマンドを実行し、エクスポートされた設定を使用して oc コマンドを正常に実行できることを確認します。

    $ oc whoami
    Copy to Clipboard Toggle word wrap

    出力例

    system:admin
    Copy to Clipboard Toggle word wrap

2.4.11. マシンの証明書署名要求の承認

マシンをクラスターに追加する際に、追加したそれぞれのマシンに対して 2 つの保留状態の証明書署名要求 (CSR) が生成されます。これらの CSR が承認されていることを確認するか、必要な場合はそれらを承認してください。最初にクライアント要求を承認し、次にサーバー要求を承認する必要があります。

前提条件

  • マシンがクラスターに追加されています。

手順

  1. クラスターがマシンを認識していることを確認します。

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME      STATUS    ROLES   AGE  VERSION
    master-0  Ready     master  63m  v1.33.4
    master-1  Ready     master  63m  v1.33.4
    master-2  Ready     master  64m  v1.33.4
    Copy to Clipboard Toggle word wrap

    出力には作成したすべてのマシンがリスト表示されます。

    注記

    上記の出力には、一部の CSR が承認されるまで、ワーカーノード (ワーカーノードとも呼ばれる) が含まれない場合があります。

  2. 保留中の証明書署名要求 (CSR) を確認し、クラスターに追加したそれぞれのマシンのクライアントおよびサーバー要求に Pending または Approved ステータスが表示されていることを確認します。

    $ oc get csr
    Copy to Clipboard Toggle word wrap

    出力例

    NAME        AGE     REQUESTOR                                                                   CONDITION
    csr-8b2br   15m     system:serviceaccount:openshift-machine-config-operator:node-bootstrapper   Pending
    csr-8vnps   15m     system:serviceaccount:openshift-machine-config-operator:node-bootstrapper   Pending
    ...
    Copy to Clipboard Toggle word wrap

    この例では、2 つのマシンがクラスターに参加しています。このリストにはさらに多くの承認された CSR が表示される可能性があります。

  3. 追加したマシンの保留中の CSR すべてが Pending ステータスになった後に CSR が承認されない場合には、クラスターマシンの CSR を承認します。

    注記

    CSR のローテーションは自動的に実行されるため、クラスターにマシンを追加後 1 時間以内に CSR を承認してください。1 時間以内に承認しない場合には、証明書のローテーションが行われ、各ノードに 3 つ以上の証明書が存在するようになります。これらの証明書すべてを承認する必要があります。クライアントの CSR が承認された後に、Kubelet は提供証明書のセカンダリー CSR を作成します。これには、手動の承認が必要になります。次に、後続の提供証明書の更新要求は、Kubelet が同じパラメーターを持つ新規証明書を要求する場合に machine-approver によって自動的に承認されます。

    注記

    ベアメタルおよび他の user-provisioned infrastructure などのマシン API ではないプラットフォームで実行されているクラスターの場合、kubelet 提供証明書要求 (CSR) を自動的に承認する方法を実装する必要があります。要求が承認されない場合、API サーバーが kubelet に接続する際に提供証明書が必須であるため、oc execoc rsh、および oc logs コマンドは正常に実行できません。Kubelet エンドポイントにアクセスする操作には、この証明書の承認が必要です。この方法は新規 CSR の有無を監視し、CSR が system:node または system:admin グループの node-bootstrapper サービスアカウントによって提出されていることを確認し、ノードの ID を確認します。

    • それらを個別に承認するには、それぞれの有効な CSR に以下のコマンドを実行します。

      $ oc adm certificate approve <csr_name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <csr_name> は、現行の CSR のリストからの CSR の名前です。
    • すべての保留中の CSR を承認するには、以下のコマンドを実行します。

      $ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs --no-run-if-empty oc adm certificate approve
      Copy to Clipboard Toggle word wrap
      注記

      一部の Operator は、一部の CSR が承認されるまで利用できない可能性があります。

  4. クライアント要求が承認されたら、クラスターに追加した各マシンのサーバー要求を確認する必要があります。

    $ oc get csr
    Copy to Clipboard Toggle word wrap

    出力例

    NAME        AGE     REQUESTOR                                                                   CONDITION
    csr-bfd72   5m26s   system:node:ip-10-0-50-126.us-east-2.compute.internal                       Pending
    csr-c57lv   5m26s   system:node:ip-10-0-95-157.us-east-2.compute.internal                       Pending
    ...
    Copy to Clipboard Toggle word wrap

  5. 残りの CSR が承認されず、それらが Pending ステータスにある場合、クラスターマシンの CSR を承認します。

    • それらを個別に承認するには、それぞれの有効な CSR に以下のコマンドを実行します。

      $ oc adm certificate approve <csr_name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <csr_name> は、現行の CSR のリストからの CSR の名前です。
    • すべての保留中の CSR を承認するには、以下のコマンドを実行します。

      $ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs oc adm certificate approve
      Copy to Clipboard Toggle word wrap
  6. すべてのクライアントおよびサーバーの CSR が承認された後に、マシンのステータスが Ready になります。以下のコマンドを実行して、これを確認します。

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME      STATUS    ROLES   AGE  VERSION
    master-0  Ready     master  73m  v1.33.4
    master-1  Ready     master  73m  v1.33.4
    master-2  Ready     master  74m  v1.33.4
    worker-0  Ready     worker  11m  v1.33.4
    worker-1  Ready     worker  11m  v1.33.4
    Copy to Clipboard Toggle word wrap

    注記

    サーバー CSR の承認後にマシンが Ready ステータスに移行するまでに数分の時間がかかる場合があります。

関連情報

2.4.12. Operator の初期設定

コントロールプレーンの初期化後に、一部の Operator を利用可能にするためにそれらをすぐに設定する必要があります。

前提条件

  • コントロールプレーンが初期化されています。

手順

  1. クラスターコンポーネントがオンラインになることを確認します。

    $ watch -n5 oc get clusteroperators
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
    authentication                             4.20.0    True        False         False      19m
    baremetal                                  4.20.0    True        False         False      37m
    cloud-credential                           4.20.0    True        False         False      40m
    cluster-autoscaler                         4.20.0    True        False         False      37m
    config-operator                            4.20.0    True        False         False      38m
    console                                    4.20.0    True        False         False      26m
    csi-snapshot-controller                    4.20.0    True        False         False      37m
    dns                                        4.20.0    True        False         False      37m
    etcd                                       4.20.0    True        False         False      36m
    image-registry                             4.20.0    True        False         False      31m
    ingress                                    4.20.0    True        False         False      30m
    insights                                   4.20.0    True        False         False      31m
    kube-apiserver                             4.20.0    True        False         False      26m
    kube-controller-manager                    4.20.0    True        False         False      36m
    kube-scheduler                             4.20.0    True        False         False      36m
    kube-storage-version-migrator              4.20.0    True        False         False      37m
    machine-api                                4.20.0    True        False         False      29m
    machine-approver                           4.20.0    True        False         False      37m
    machine-config                             4.20.0    True        False         False      36m
    marketplace                                4.20.0    True        False         False      37m
    monitoring                                 4.20.0    True        False         False      29m
    network                                    4.20.0    True        False         False      38m
    node-tuning                                4.20.0    True        False         False      37m
    openshift-apiserver                        4.20.0    True        False         False      32m
    openshift-controller-manager               4.20.0    True        False         False      30m
    openshift-samples                          4.20.0    True        False         False      32m
    operator-lifecycle-manager                 4.20.0    True        False         False      37m
    operator-lifecycle-manager-catalog         4.20.0    True        False         False      37m
    operator-lifecycle-manager-packageserver   4.20.0    True        False         False      32m
    service-ca                                 4.20.0    True        False         False      38m
    storage                                    4.20.0    True        False         False      37m
    Copy to Clipboard Toggle word wrap

  2. 利用不可の Operator を設定します。
2.4.12.1. デフォルトのソフトウェアカタログソースの無効化

OpenShift Container Platform のインストール時に、Red Hat およびコミュニティープロジェクトが提供するコンテンツをソースとする Operator カタログが、ソフトウェアカタログ用にデフォルトで設定されます。ネットワークが制限された環境では、クラスター管理者としてデフォルトのカタログを無効にする必要があります。

手順

  • disableAllDefaultSources: trueOperatorHub オブジェクトに追加して、デフォルトカタログのソースを無効にします。

    $ oc patch OperatorHub cluster --type json \
        -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'
    Copy to Clipboard Toggle word wrap
ヒント

または、Web コンソールを使用してカタログソースを管理できます。AdministrationCluster SettingsConfigurationOperatorHub ページから、Sources タブをクリックして、個別のソースを作成、更新、削除、無効化、有効化できます。

2.4.12.2. イメージレジストリーストレージの設定

Image Registry Operator は、デフォルトストレージを提供しないプラットフォームでは最初は利用できません。インストール後に、レジストリー Operator を使用できるようにレジストリーをストレージを使用するように設定する必要があります。

実稼働クラスターに必要な永続ボリュームの設定に関する手順が示されます。該当する場合、空のディレクトリーをストレージの場所として設定する方法が表示されます。これは、実稼働以外のクラスターでのみ利用できます。

アップグレード時に Recreate ロールアウトストラテジーを使用して、イメージレジストリーがブロックストレージタイプを使用することを許可するための追加の手順が提供されます。

2.4.12.2.1. IBM Z の場合のレジストリーストレージの設定

クラスター管理者は、インストール後にレジストリーをストレージを使用できるように設定する必要があります。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。
  • IBM Z® にクラスターがある。
  • Red Hat OpenShift Data Foundation などのクラスターのプロビジョニングされた永続ストレージがある。

    重要

    OpenShift Container Platform は、1 つのレプリカのみが存在する場合にイメージレジストリーストレージの ReadWriteOnce アクセスをサポートします。ReadWriteOnce アクセスでは、レジストリーが Recreate ロールアウト戦略を使用する必要もあります。2 つ以上のレプリカで高可用性をサポートするイメージレジストリーをデプロイするには、ReadWriteMany アクセスが必要です。

  • 100 Gi の容量がある。

手順

  1. レジストリーをストレージを使用できるように設定するには、configs.imageregistry/cluster リソースの spec.storage.pvc を変更します。

    注記

    共有ストレージを使用する場合は、外部からアクセスを防ぐためにセキュリティー設定を確認します。

  2. レジストリー Pod がないことを確認します。

    $ oc get pod -n openshift-image-registry -l docker-registry=default
    Copy to Clipboard Toggle word wrap

    出力例

    No resources found in openshift-image-registry namespace
    Copy to Clipboard Toggle word wrap

    注記

    出力にレジストリー Pod がある場合は、この手順を続行する必要はありません。

  3. レジストリー設定を確認します。

    $ oc edit configs.imageregistry.operator.openshift.io
    Copy to Clipboard Toggle word wrap

    出力例

    storage:
      pvc:
        claim:
    Copy to Clipboard Toggle word wrap

    claim フィールドを空のままにし、image-registry-storage PVC の自動作成を可能にします。

  4. clusteroperator ステータスを確認します。

    $ oc get clusteroperator image-registry
    Copy to Clipboard Toggle word wrap

    出力例

    NAME             VERSION              AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
    image-registry   4.20                 True        False         False      6h50m
    Copy to Clipboard Toggle word wrap

  5. イメージのビルドおよびプッシュを有効にするためにレジストリーが managed に設定されていることを確認します。

    • 以下を実行します。

      $ oc edit configs.imageregistry/cluster
      Copy to Clipboard Toggle word wrap

      次に、行を変更します。

      managementState: Removed
      Copy to Clipboard Toggle word wrap

      次のように変更してください。

      managementState: Managed
      Copy to Clipboard Toggle word wrap
2.4.12.2.2. 実稼働以外のクラスターでのイメージレジストリーのストレージの設定

Image Registry Operator のストレージを設定する必要があります。実稼働用以外のクラスターの場合、イメージレジストリーは空のディレクトリーに設定することができます。これを実行する場合、レジストリーを再起動するとすべてのイメージが失われます。

手順

  • イメージレジストリーストレージを空のディレクトリーに設定するには、以下を実行します。

    $ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"storage":{"emptyDir":{}}}}'
    Copy to Clipboard Toggle word wrap
    警告

    実稼働用以外のクラスターにのみこのオプションを設定します。

    Image Registry Operator がそのコンポーネントを初期化する前にこのコマンドを実行する場合、oc patch コマンドは以下のエラーを出して失敗します。

    Error from server (NotFound): configs.imageregistry.operator.openshift.io "cluster" not found
    Copy to Clipboard Toggle word wrap

    数分待機した後に、このコマンドを再び実行します。

2.4.13. user-provisioned infrastructure でのインストールの完了

Operator の設定が完了したら、独自に提供するインフラストラクチャーへのクラスターのインストールを完了できます。

前提条件

  • コントロールプレーンが初期化されています。
  • Operator の初期設定を完了済みです。

手順

  1. 以下のコマンドを使用して、すべてのクラスターコンポーネントがオンラインであることを確認します。

    $ watch -n5 oc get clusteroperators
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
    authentication                             4.20.0    True        False         False      19m
    baremetal                                  4.20.0    True        False         False      37m
    cloud-credential                           4.20.0    True        False         False      40m
    cluster-autoscaler                         4.20.0    True        False         False      37m
    config-operator                            4.20.0    True        False         False      38m
    console                                    4.20.0    True        False         False      26m
    csi-snapshot-controller                    4.20.0    True        False         False      37m
    dns                                        4.20.0    True        False         False      37m
    etcd                                       4.20.0    True        False         False      36m
    image-registry                             4.20.0    True        False         False      31m
    ingress                                    4.20.0    True        False         False      30m
    insights                                   4.20.0    True        False         False      31m
    kube-apiserver                             4.20.0    True        False         False      26m
    kube-controller-manager                    4.20.0    True        False         False      36m
    kube-scheduler                             4.20.0    True        False         False      36m
    kube-storage-version-migrator              4.20.0    True        False         False      37m
    machine-api                                4.20.0    True        False         False      29m
    machine-approver                           4.20.0    True        False         False      37m
    machine-config                             4.20.0    True        False         False      36m
    marketplace                                4.20.0    True        False         False      37m
    monitoring                                 4.20.0    True        False         False      29m
    network                                    4.20.0    True        False         False      38m
    node-tuning                                4.20.0    True        False         False      37m
    openshift-apiserver                        4.20.0    True        False         False      32m
    openshift-controller-manager               4.20.0    True        False         False      30m
    openshift-samples                          4.20.0    True        False         False      32m
    operator-lifecycle-manager                 4.20.0    True        False         False      37m
    operator-lifecycle-manager-catalog         4.20.0    True        False         False      37m
    operator-lifecycle-manager-packageserver   4.20.0    True        False         False      32m
    service-ca                                 4.20.0    True        False         False      38m
    storage                                    4.20.0    True        False         False      37m
    Copy to Clipboard Toggle word wrap

    あるいは、以下のコマンドを使用すると、すべてのクラスターが利用可能な場合に通知されます。また、このコマンドは認証情報を取得して表示します。

    $ ./openshift-install --dir <installation_directory> wait-for install-complete 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。

    出力例

    INFO Waiting up to 30m0s for the cluster to initialize...
    Copy to Clipboard Toggle word wrap

    Cluster Version Operator が Kubernetes API サーバーから OpenShift Container Platform クラスターのデプロイを終了するとコマンドは成功します。

    重要
    • インストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の node-bootstrapper 証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。
    • 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
  2. Kubernetes API サーバーが Pod と通信していることを確認します。

    1. すべての Pod のリストを表示するには、以下のコマンドを使用します。

      $ oc get pods --all-namespaces
      Copy to Clipboard Toggle word wrap

      出力例

      NAMESPACE                         NAME                                            READY   STATUS      RESTARTS   AGE
      openshift-apiserver-operator      openshift-apiserver-operator-85cb746d55-zqhs8   1/1     Running     1          9m
      openshift-apiserver               apiserver-67b9g                                 1/1     Running     0          3m
      openshift-apiserver               apiserver-ljcmx                                 1/1     Running     0          1m
      openshift-apiserver               apiserver-z25h4                                 1/1     Running     0          2m
      openshift-authentication-operator authentication-operator-69d5d8bf84-vh2n8        1/1     Running     0          5m
      ...
      Copy to Clipboard Toggle word wrap

    2. 以下のコマンドを使用して、直前のコマンドの出力にリスト表示される Pod のログを表示します。

      $ oc logs <pod_name> -n <namespace> 
      1
      Copy to Clipboard Toggle word wrap
      1
      直前のコマンドの出力にあるように、Pod 名および namespace を指定します。

      Pod のログが表示される場合、Kubernetes API サーバーはクラスターマシンと通信できます。

  3. FCP (Fibre Channel Protocol) を使用したインストールでは、マルチパスを有効にするために追加の手順が必要です。インストール時にマルチパスを有効にしないでください。

    詳細は、インストール後のマシン設定タスク ドキュメントで、「RHCOS でのカーネル引数を使用したマルチパスの有効化」を参照してください。

  4. Cluster registration ページでクラスターを登録します。

検証

OpenShift Container Platform のブートストラッププロセス中にセキュアブートを有効にした場合は、次の検証手順が必要です。

  1. 次のコマンドを実行してノードをデバッグします。

    $ oc debug node/<node_name>
    chroot /host
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、セキュアブートが有効になっていることを確認します。

    $ cat /sys/firmware/ipl/secure
    Copy to Clipboard Toggle word wrap

    出力例

    1 
    1
    Copy to Clipboard Toggle word wrap

    1
    セキュアブートが有効になっている場合、値は 1 です。有効になっていない場合は 0 です。

2.4.14. 次のステップ

2.5. RHEL KVM を使用したクラスターの IBM Z および IBM LinuxONE へのインストール

OpenShift Container Platform バージョン 4.20 では、ユーザーがプロビジョニングする IBM Z® または IBM® LinuxONE インフラストラクチャーにクラスターをインストールできます。

注記

このドキュメントは IBM Z® のみを参照しますが、これに含まれるすべての情報は IBM® LinuxONE にも適用されます。

2.5.1. 前提条件

2.5.2. user-provisioned infrastructure の準備

user-provisioned infrastructure に OpenShift Container Platform をインストールする前に、基礎となるインフラストラクチャーを準備する必要があります。

このセクションでは、OpenShift Container Platform インストールの準備としてクラスターインフラストラクチャーを設定するために必要な手順の概要を説明します。これには、クラスターノード用の IP ネットワークおよびネットワーク接続を設定し、ファイアウォール経由で必要なポートを有効にし、必要な DNS および負荷分散インフラストラクチャーの設定が含まれます。

準備後、クラスターインフラストラクチャーは、user-provisioned infrastructure を使用したクラスターの要件 セクションで説明されている要件を満たす必要があります。

前提条件

手順

  1. DHCP を使用して IP ネットワーク設定をクラスターノードに提供する場合は、DHCP サービスを設定します。

    1. ノードの永続 IP アドレスを DHCP サーバー設定に追加します。設定で、関連するネットワークインターフェイスの MAC アドレスを、各ノードの目的の IP アドレスと一致させます。
    2. DHCP を使用してクラスターマシンの IP アドレスを設定する場合、マシンは DHCP を介して DNS サーバー情報も取得します。DHCP サーバー設定を介してクラスターノードが使用する永続 DNS サーバーアドレスを定義します。

      注記

      DHCP サービスを使用しない場合、IP ネットワーク設定と DNS サーバーのアドレスを RHCOS インストール時にノードに指定する必要があります。ISO イメージからインストールしている場合は、ブート引数として渡すことができます。静的 IP プロビジョニングと高度なネットワークオプションの詳細は、RHCOS のインストールと OpenShift Container Platform ブートストラッププロセスの開始 のセクションを参照してください。

    3. DHCP サーバー設定でクラスターノードのホスト名を定義します。ホスト名に関する考慮事項の詳細は、DHCP を使用したクラスターノードのホスト名の設定 セクションを参照してください。

      注記

      DHCP サービスを使用しない場合、クラスターノードは逆引き DNS ルックアップを介してホスト名を取得します。

  2. Red Hat Enterprise Linux CoreOS (RHCOS) の高速インストールまたは Red Hat Enterprise Linux CoreOS (RHCOS) のフルインストールのいずれかの実行を選択します。フルインストールでは、HTTP または HTTPS サーバーを設定し、Ignition ファイルを提供し、イメージをクラスターノードにインストールする必要があります。高速インストールの場合、HTTP または HTTPS サーバーは必要はありませんが、DHCP サーバーが必要です。「高速インストール: Red Hat Enterprise Linux CoreOS (RHCOS) マシンの作成」および「フルインストール: Red Hat Enterprise Linux CoreOS (RHCOS) マシンの作成」のセクションを参照してください。
  3. ネットワークインフラストラクチャーがクラスターコンポーネント間の必要なネットワーク接続を提供することを確認します。要件に関する詳細は、user-provisioned infrastructure のネットワーク要件 のセクションを参照してください。
  4. OpenShift Container Platform クラスターコンポーネントで通信するために必要なポートを有効にするようにファイアウォールを設定します。必要なポートの詳細は、user-provisioned infrastructure のネットワーク要件 のセクションを参照してください。

    重要

    デフォルトで、ポート 1936 は OpenShift Container Platform クラスターにアクセスできます。これは、各コントロールプレーンノードがこのポートへのアクセスを必要とするためです。

    Ingress ロードバランサーを使用してこのポートを公開しないでください。これを実行すると、Ingress コントローラーに関連する統計やメトリクスなどの機密情報が公開される可能性があるためです。

  5. クラスターに必要な DNS インフラストラクチャーを設定します。

    1. Kubernetes API、アプリケーションワイルドカード、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンの DNS 名前解決を設定します。
    2. Kubernetes API、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンの逆引き DNS 解決を設定します。

      OpenShift Container Platform DNS 要件の詳細は、user-provisioned DNS 要件 のセクションを参照してください。

  6. DNS 設定を検証します。

    1. インストールノードから、Kubernetes API、ワイルドカードルート、およびクラスターノードのレコード名に対して DNS ルックアップを実行します。応答の IP アドレスが正しいコンポーネントに対応することを確認します。
    2. インストールノードから、ロードバランサーとクラスターノードの IP アドレスに対して逆引き DNS ルックアップを実行します。応答のレコード名が正しいコンポーネントに対応することを確認します。

      DNS 検証手順の詳細は、user-provisioned infrastructure の DNS 解決の検証 のセクションを参照してください。

  7. 必要な API およびアプリケーションの Ingress 負荷分散インフラストラクチャーをプロビジョニングします。要件に関する詳細は、user-provisioned infrastructure の負荷分散要件 のセクションを参照してください。
注記

一部の負荷分散ソリューションでは、負荷分散を初期化する前に、クラスターノードの DNS 名前解決を有効化する必要があります。

2.5.3. インストール設定ファイルの手動作成

クラスターをインストールするには、インストール設定ファイルを手動で作成する必要があります。

前提条件

  • インストールプログラムで使用するための SSH 公開鍵がローカルマシン上に存在する。この鍵は、デバッグや障害復旧のために、クラスターノードへの SSH 認証に使用できます。
  • OpenShift Container Platform インストールプログラムとクラスターのプルシークレットを取得している。

手順

  1. 必要なインストールアセットを保存するためのインストールディレクトリーを作成します。

    $ mkdir <installation_directory>
    Copy to Clipboard Toggle word wrap
    重要

    このディレクトリーは必ず作成してください。ブートストラップ X.509 証明書などの一部のインストールアセットは、有効期限が短いため、インストールディレクトリーを再利用しないでください。別のクラスターインストールの個別のファイルを再利用する必要がある場合は、それらをディレクトリーにコピーすることができます。ただし、インストールアセットのファイル名はリリース間で変更される可能性があります。インストールファイルを以前のバージョンの OpenShift Container Platform からコピーする場合は注意してください。

  2. 提供されているサンプルの install-config.yaml ファイルテンプレートをカスタマイズし、ファイルを <installation_directory> に保存します。

    注記

    この設定ファイルの名前を install-config.yaml と付ける必要があります。

  3. 多くのクラスターのインストールに使用できるように、install-config.yaml ファイルをバックアップします。

    重要

    インストールプロセスの次のステップで install-config.yaml ファイルを使用するため、今すぐこのファイルをバックアップしてください。

2.5.3.1. IBM Z のサンプル install-config.yaml ファイル

install-config.yaml ファイルをカスタマイズして、OpenShift Container Platform クラスターのプラットフォームに関する詳細を指定するか、必要なパラメーターの値を変更することができます。

apiVersion: v1
baseDomain: example.com 
1

compute: 
2

- hyperthreading: Enabled 
3

  name: worker
  replicas: 0 
4

  architecture: s390x
controlPlane: 
5

  hyperthreading: Enabled 
6

  name: master
  replicas: 3 
7

  architecture: s390x
metadata:
  name: test 
8

networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14 
9

    hostPrefix: 23 
10

  networkType: OVNKubernetes 
11

  serviceNetwork: 
12

  - 172.30.0.0/16
platform:
  none: {} 
13

fips: false 
14

pullSecret: '{"auths": ...}' 
15

sshKey: 'ssh-ed25519 AAAA...' 
16
Copy to Clipboard Toggle word wrap
1
クラスターのベースドメイン。すべての DNS レコードはこのベースのサブドメインである必要があり、クラスター名が含まれる必要があります。
2 5
controlPlane セクションは単一マッピングですが、compute セクションはマッピングのシーケンスになります。複数の異なるデータ構造の要件を満たすには、compute セクションの最初の行はハイフン - で始め、controlPlane セクションの最初の行はハイフンで始めることができません。1 つのコントロールプレーンプールのみが使用されます。
3 6
同時マルチスレッド (SMT) またはハイパースレッディングを有効/無効にするかどうかを指定します。デフォルトでは、SMT はマシンのコアのパフォーマンスを上げるために有効にされます。パラメーター値を Disabled に設定するとこれを無効にすることができます。SMT を無効にする場合、これをすべてのクラスターマシンで無効にする必要があります。これにはコントロールプレーンとコンピュートマシンの両方が含まれます。
注記

同時マルチスレッド (SMT) はデフォルトで有効になっています。SMT が OpenShift Container Platform ノードで利用できない場合、hyperthreading パラメーターは影響を受けません。

重要

OpenShift Container Platform ノードまたは install-config.yaml ファイルであるかに関係なく hyperthreading を無効にする場合、容量計画においてマシンのパフォーマンスの大幅な低下が考慮に入れられていることを確認します。

4
OpenShift Container Platform を user-provisioned infrastructure にインストールする場合は、この値を 0 に設定する必要があります。installer-provisioned installation では、パラメーターはクラスターが作成し、管理するコンピュートマシンの数を制御します。user-provisioned installation では、クラスターのインストールの終了前にコンピュートマシンを手動でデプロイする必要があります。
注記

3 ノードクラスターをインストールする場合は、Red Hat Enterprise Linux CoreOS (RHCOS) マシンをインストールする際にコンピュートマシンをデプロイしないでください。

7
クラスターに追加するコントロールプレーンマシンの数。クラスターをこれらの値をクラスターの etcd エンドポイント数として使用するため、値はデプロイするコントロールプレーンマシンの数に一致する必要があります。
8
DNS レコードに指定したクラスター名。
9
Pod IP アドレスの割り当てに使用する IP アドレスのブロック。このブロックは既存の物理ネットワークと重複できません。これらの IP アドレスは Pod ネットワークに使用されます。外部ネットワークから Pod にアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定する必要があります。
注記

クラス E の CIDR 範囲は、将来の使用のために予約されています。クラス E CIDR 範囲を使用するには、ネットワーク環境がクラス E CIDR 範囲内の IP アドレスを受け入れるようにする必要があります。

10
それぞれの個別ノードに割り当てるサブネット接頭辞長。たとえば、hostPrefix23 に設定されている場合、各ノードに指定の cidr から /23 サブネットが割り当てられます。これにより、510 (2^(32 - 23) - 2) Pod IP アドレスが許可されます。外部ネットワークからのノードへのアクセスを提供する必要がある場合には、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
11
インストールするクラスターネットワークプラグイン。サポートされる値はデフォルト値の OVNKubernetes のみです。
12
サービス IP アドレスに使用する IP アドレスプール。1 つの IP アドレスプールのみを入力できます。このブロックは既存の物理ネットワークと重複できません。外部ネットワークからサービスにアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
13
プラットフォームを none に設定する必要があります。IBM Z® インフラストラクチャー用に追加のプラットフォーム設定変数を指定できません。
重要

プラットフォームタイプ none でインストールされたクラスターは、Machine API を使用したコンピューティングマシンの管理など、一部の機能を使用できません。この制限は、クラスターに接続されている計算マシンが、通常はこの機能をサポートするプラットフォームにインストールされている場合でも適用されます。このパラメーターは、インストール後に変更することはできません。

14
FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
重要

クラスターで FIPS モードを有効にするには、FIPS モードで動作するように設定された Red Hat Enterprise Linux (RHEL) コンピューターからインストールプログラムを実行する必要があります。RHEL で FIPS モードを設定する方法の詳細は、RHEL から FIPS モードへの切り替え を参照してください。

FIPS モードでブートされた Red Hat Enterprise Linux (RHEL) または Red Hat Enterprise Linux CoreOS (RHCOS) を実行する場合、OpenShift Container Platform コアコンポーネントは、x86_64、ppc64le、および s390x アーキテクチャーのみで、FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用します。

15
Red Hat OpenShift Cluster Manager からのプルシークレット。このプルシークレットを使用し、OpenShift Container Platform コンポーネントのコンテナーイメージを提供する Quay.io など、組み込まれた各種の認証局によって提供されるサービスで認証できます。
16
Red Hat Enterprise Linux CoreOS (RHCOS) の core ユーザーの SSH 公開鍵。
注記

インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、ssh-agent プロセスが使用する SSH キーを指定します。

2.5.3.2. インストール時のクラスター全体のプロキシーの設定

実稼働環境では、インターネットへの直接アクセスを拒否し、代わりに HTTP または HTTPS プロキシーを使用することができます。プロキシー設定を install-config.yaml ファイルで行うことにより、新規の OpenShift Container Platform クラスターをプロキシーを使用するように設定できます。

前提条件

  • 既存の install-config.yaml ファイルがある。
  • クラスターがアクセスする必要のあるサイトを確認済みで、それらのいずれかがプロキシーをバイパスする必要があるかどうかを判別している。デフォルトで、すべてのクラスター Egress トラフィック (クラスターをホストするクラウドに関するクラウドプロバイダー API に対する呼び出しを含む) はプロキシーされます。プロキシーを必要に応じてバイパスするために、サイトを Proxy オブジェクトの spec.noProxy フィールドに追加している。

    注記

    Proxy オブジェクトの status.noProxy フィールドには、インストール設定の networking.machineNetwork[].cidrnetworking.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) も設定されます。

手順

  1. 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.com 
    3
    
    additionalTrustBundle: | 
    4
    
        -----BEGIN CERTIFICATE-----
        <MY_TRUSTED_CA_CERT>
        -----END CERTIFICATE-----
    additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle> 
    5
    Copy to Clipboard Toggle word wrap
    1
    クラスター外の HTTP 接続を作成するために使用するプロキシー URL。URL スキームは http である必要があります。
    2
    クラスター外で HTTPS 接続を作成するために使用するプロキシー URL。
    3
    プロキシーから除外するための宛先ドメイン名、IP アドレス、または他のネットワーク CIDR のコンマ区切りのリスト。サブドメインのみと一致するように、ドメインの前に . を付けます。たとえば、.y.comx.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 config 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
    Copy to Clipboard Toggle word wrap
  2. ファイルを保存し、OpenShift Container Platform のインストール時にこれを参照します。

インストールプログラムは、指定の install-config.yaml ファイルのプロキシー設定を使用する cluster という名前のクラスター全体のプロキシーを作成します。プロキシー設定が指定されていない場合、cluster Proxy オブジェクトが依然として作成されますが、これには spec がありません。

注記

cluster という名前の Proxy オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。

2.5.3.3. 3 ノードクラスターの設定

オプションで、3 台のコントロールプレーンマシンのみで構成される最小の 3 つのノードクラスターにゼロコンピュートマシンをデプロイできます。これにより、テスト、開発、および実稼働に使用するための小規模なリソース効率の高いクラスターが、クラスター管理者および開発者に提供されます。

3 ノードの OpenShift Container Platform 環境では、3 つのコントロールプレーンマシンがスケジュール対象となります。つまり、アプリケーションのワークロードがそれらで実行されるようにスケジュールされます。

前提条件

  • 既存の install-config.yaml ファイルがある。

手順

  • 以下の compute スタンザに示されるように、コンピュートレプリカの数が install-config.yaml ファイルで 0 に設定されることを確認します。

    compute:
    - name: worker
      platform: {}
      replicas: 0
    Copy to Clipboard Toggle word wrap
    注記

    デプロイするコンピュートマシンの数にかかわらず、OpenShift Container Platform を user-provisioned infrastructure にインストールする際に、コンピュートマシンの replicas パラメーターの値を 0 に設定する必要があります。installer-provisioned installation では、パラメーターはクラスターが作成し、管理するコンピュートマシンの数を制御します。これは、コンピュートマシンが手動でデプロイされる、user-provisioned installation には適用されません。

    注記

    コントロールプレーンノードの推奨リソースは 6 vCPU および 21 GB です。コントロールプレーンノードが 3 つの場合には、これは最小の 5 ノードクラスターと同等のメモリー + vCPU です。3 つのノードをバックする必要があります。それぞれに、SMT2 が有効な IFL が 3 つ含まれる 120 GB ディスクにインストールします。各コントロールプレーンノードのテスト済みの最小設定とは、120 GB ディスクに 3 つの vCPU および 10 GB が指定された設定です。

3 ノードのクラスターのインストールで、以下の手順を実行します。

  • ゼロ (0) コンピュートノードで 3 ノードクラスターをデプロイする場合、Ingress コントローラー Pod はコントロールプレーンノードで実行されます。3 ノードクラスターデプロイメントでは、HTTP および HTTPS トラフィックをコントロールプレーンノードにルーティングするようにアプリケーション Ingress ロードバランサーを設定する必要があります。詳細は、user-provisioned infrastructure の負荷分散要件 のセクションを参照してください。
  • 以下の手順で Kubernetes マニフェストファイルを作成する際に、<installation_directory>/manifests/cluster-scheduler-02-config.yml ファイルの mastersSchedulable パラメーターが true に設定されていることを確認します。これにより、アプリケーションのワークロードがコントロールプレーンノードで実行できます。
  • Red Hat Enterprise Linux CoreOS (RHCOS) マシンを作成する際は、コンピュートノードをデプロイしないでください。

2.5.4. Cluster Network Operator の設定

クラスターネットワークの設定は、Cluster Network Operator (CNO) 設定の一部として指定され、cluster という名前のカスタムリソース (CR) オブジェクトに保存されます。CR は operator.openshift.io API グループの Network API のフィールドを指定します。

CNO 設定は、Network.config.openshift.io API グループの Network API からクラスターのインストール時に以下のフィールドを継承します。

clusterNetwork
Pod IP アドレスの割り当てに使用する IP アドレスプール。
serviceNetwork
サービスの IP アドレスプール。
defaultNetwork.type
クラスターネットワークプラグイン。OVNKubernetes は、インストール時にサポートされる唯一のプラグインです。

defaultNetwork オブジェクトのフィールドを cluster という名前の CNO オブジェクトに設定することにより、クラスターのクラスターネットワークプラグイン設定を指定できます。

2.5.4.1. Cluster Network Operator 設定オブジェクト

Cluster Network Operator (CNO) のフィールドは以下の表で説明されています。

Expand
表2.34 Cluster Network Operator 設定オブジェクト
フィールド説明

metadata.name

string

CNO オブジェクトの名前。この名前は常に cluster です。

spec.clusterNetwork

array

Pod IP アドレスの割り当て、サブネット接頭辞の長さのクラスター内の個別ノードへの割り当てに使用される IP アドレスのブロックを指定するリストです。以下に例を示します。

spec:
  clusterNetwork:
  - cidr: 10.128.0.0/19
    hostPrefix: 23
  - cidr: 10.128.32.0/19
    hostPrefix: 23
Copy to Clipboard Toggle word wrap

spec.serviceNetwork

array

サービスの IP アドレスのブロック。OVN-Kubernetes ネットワークプラグインは、サービスネットワークに対して単一の IP アドレスブロックのみをサポートします。以下に例を示します。

spec:
  serviceNetwork:
  - 172.30.0.0/14
Copy to Clipboard Toggle word wrap

マニフェストを作成する前に、このフィールドを install-config.yaml ファイルでのみカスタマイズすることができます。この値は、マニフェストファイルでは読み取り専用です。

spec.defaultNetwork

object

クラスターネットワークのネットワークプラグインを設定します。

spec.additionalRoutingCapabilities.providers

array

この設定により、動的ルーティングプロバイダーが有効になります。ルートアドバタイズ機能には、FRR ルーティング機能プロバイダーが必要です。サポートされている値は FRR のみです。

  • FRR: FRR ルーティングプロバイダー
spec:
  additionalRoutingCapabilities:
    providers:
    - FRR
Copy to Clipboard Toggle word wrap

spec.kubeProxyConfig

object

このオブジェクトのフィールドは、kube-proxy 設定を指定します。OVN-Kubernetes クラスターネットワークプラグインを使用している場合、kube-proxy 設定は機能しません。

重要

複数のネットワークにオブジェクトをデプロイする必要があるクラスターの場合は、install-config.yaml ファイルで定義されている各ネットワークタイプの clusterNetwork.hostPrefix パラメーターに、必ず同じ値を指定してください。clusterNetwork.hostPrefix パラメーターにそれぞれ異なる値を設定すると、OVN-Kubernetes ネットワークプラグインに影響が及び、異なるノード間のオブジェクトトラフィックをプラグインが効果的にルーティングできなくなる可能性があります。

2.5.4.1.1. defaultNetwork オブジェクト設定

defaultNetwork オブジェクトの値は、以下の表で定義されます。

Expand
表2.35 defaultNetwork オブジェクト
フィールド説明

type

string

OVNKubernetes。Red Hat OpenShift Networking ネットワークプラグインは、インストール中に選択されます。この値は、クラスターのインストール後は変更できません。

注記

OpenShift Container Platform は、デフォルトで OVN-Kubernetes ネットワークプラグインを使用します。

ovnKubernetesConfig

object

このオブジェクトは、OVN-Kubernetes ネットワークプラグインに対してのみ有効です。

2.5.4.1.1.1. OVN-Kubernetes ネットワークプラグインの設定

次の表では、OVN-Kubernetes ネットワークプラグインの設定フィールドを説明します。

Expand
表2.36 ovnKubernetesConfig オブジェクト
フィールド説明

mtu

integer

Geneve (Generic Network Virtualization Encapsulation) オーバーレイネットワークの MTU (maximum transmission unit)。これは、プライマリーネットワークインターフェイスの MTU に基づいて自動的に検出されます。通常、検出された MTU をオーバーライドする必要はありません。

自動検出した値が予想される値ではない場合は、ノード上のプライマリーネットワークインターフェイスの MTU が正しいことを確認します。このオプションを使用して、ノード上のプライマリーネットワークインターフェイスの MTU 値を変更することはできません。

クラスターで異なるノードに異なる MTU 値が必要な場合、この値をクラスター内の最小の MTU 値よりも 100 小さく設定する必要があります。たとえば、クラスター内の一部のノードでは MTU が 9001 であり、MTU が 1500 のクラスターもある場合には、この値を 1400 に設定する必要があります。

genevePort

integer

すべての Geneve パケットに使用するポート。デフォルト値は 6081 です。この値は、クラスターのインストール後は変更できません。

ipsecConfig

object

IPsec 設定をカスタマイズするための設定オブジェクトを指定します。

ipv4

object

IPv4 設定の設定オブジェクトを指定します。

ipv6

object

IPv6 設定の設定オブジェクトを指定します。

policyAuditConfig

object

ネットワークポリシー監査ロギングをカスタマイズする設定オブジェクトを指定します。指定されていない場合は、デフォルトの監査ログ設定が使用されます。

routeAdvertisements

string

クラスターネットワークルートをアドバタイズするかどうかを指定します。デフォルト値は、Disabled です。

  • Enabled: ルートをクラスターネットワークにインポートし、RouteAdvertisements オブジェクトで設定されているとおりに、クラスターネットワークルートをアドバタイズします。
  • Disabled: クラスターネットワークにルートをインポートしたり、クラスターネットワークルートをアドバタイズしたりしないでください。

gatewayConfig

object

オプション: Egress トラフィックのノードゲートウェイへの送信方法をカスタマイズするための設定オブジェクトを指定します。有効な値は SharedLocal です。デフォルト値は Shared です。デフォルト設定では、Open vSwitch (OVS) がトラフィックをノード IP インターフェイスに直接出力します。Local 設定では、トラフィックがホストネットワークを通過し、その結果、ホストのルーティングテーブルに適用されます。

注記

Egress トラフィックの移行中は、Cluster Network Operator (CNO) が変更を正常にロールアウトするまで、ワークロードとサービストラフィックに多少の中断が発生することが予想されます。

Expand
表2.37 ovnKubernetesConfig.ipv4 object
フィールド説明

internalTransitSwitchSubnet

string

既存のネットワークインフラストラクチャーが 100.88.0.0/16 IPv4 サブネットと重複している場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。east-west トラフィックを可能にする分散トランジットスイッチのサブネット。このサブネットは、OVN-Kubernetes またはホスト自体で使用される他のサブネットと重複することはできません。クラスター内のノードごとに 1 つの IP アドレスを収容できる必要があります。

デフォルト値は 100.88.0.0/16 です。

internalJoinSubnet

string

既存のネットワークインフラストラクチャーが 100.64.0.0/16 IPv4 サブネットと重複している場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。IP アドレス範囲が、OpenShift Container Platform インストールで使用される他のサブネットと重複しないようにする必要があります。IP アドレス範囲は、クラスターに追加できるノードの最大数より大きくする必要があります。たとえば、clusterNetwork.cidr 値が 10.128.0.0/14 で、clusterNetwork.hostPrefix 値が /23 の場合、ノードの最大数は 2^(23-14)=512 です。

デフォルト値は 100.64.0.0/16 です。

Expand
表2.38 ovnKubernetesConfig.ipv6 object
フィールド説明

internalTransitSwitchSubnet

string

既存のネットワークインフラストラクチャーが fd97::/64 IPv6 サブネットと重複する場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。east-west トラフィックを可能にする分散トランジットスイッチのサブネット。このサブネットは、OVN-Kubernetes またはホスト自体で使用される他のサブネットと重複することはできません。クラスター内のノードごとに 1 つの IP アドレスを収容できる必要があります。

デフォルト値は fd97::/64 です。

internalJoinSubnet

string

既存のネットワークインフラストラクチャーが fd98::/64 IPv6 サブネットと重複する場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。IP アドレス範囲が、OpenShift Container Platform インストールで使用される他のサブネットと重複しないようにする必要があります。IP アドレス範囲は、クラスターに追加できるノードの最大数より大きくする必要があります。

デフォルト値は fd98::/64 です。

Expand
表2.39 policyAuditConfig オブジェクト
フィールド説明

rateLimit

integer

ノードごとに毎秒生成されるメッセージの最大数。デフォルト値は、1 秒あたり 20 メッセージです。

maxFileSize

integer

監査ログの最大サイズ (バイト単位)。デフォルト値は 50000000 (50MB) です。

maxLogFiles

integer

保持されるログファイルの最大数。

destination

string

以下の追加の監査ログターゲットのいずれかになります。

libc
ホスト上の journald プロセスの libc syslog() 関数。
udp:<host>:<port>
syslog サーバー。<host>:<port> を syslog サーバーのホストおよびポートに置き換えます。
unix:<file>
<file> で指定された Unix ドメインソケットファイル。
null
監査ログを追加のターゲットに送信しないでください。

syslogFacility

string

RFC5424 で定義される kern などの syslog ファシリティー。デフォルト値は local0 です。

Expand
表2.40 gatewayConfig オブジェクト
フィールド説明

routingViaHost

boolean

Pod からホストネットワークスタックへの Egress トラフィックを送信するには、このフィールドを true に設定します。インストールおよびアプリケーションがカーネルルーティングテーブルに手動設定されたルートに依存するなど非常に特化されている場合には、Egress トラフィックをホストネットワークスタックにルーティングすることを推奨します。デフォルトでは、Egress トラフィックは OVN で処理され、クラスターを終了するために処理され、トラフィックはカーネルルーティングテーブルの特殊なルートによる影響を受けません。デフォルト値は false です。

このフィールドで、Open vSwitch ハードウェアオフロード機能との対話が可能になりました。このフィールドを true に設定すると、Egress トラフィックがホストネットワークスタックで処理されるため、パフォーマンス的に、オフロードによる利点は得られません。

ipForwarding

object

Network リソースの ipForwarding 仕様を使用して、OVN-Kubernetes マネージドインターフェイス上のすべてのトラフィックの IP フォワーディングを制御できます。Kubernetes 関連のトラフィックの IP フォワーディングのみを許可するには、Restricted を指定します。すべての IP トラフィックの転送を許可するには、Global を指定します。新規インストールの場合、デフォルトは Restricted です。OpenShift Container Platform 4.14 以降に更新する場合、デフォルトは Global です。

注記

デフォルト値の Restricted では、IP 転送がドロップされるように設定されます。

ipv4

object

オプション: IPv4 アドレスのホストからサービスへのトラフィック用の内部 OVN-Kubernetes マスカレードアドレスを設定するオブジェクトを指定します。

ipv6

object

オプション: IPv6 アドレスのホストからサービスへのトラフィックの内部 OVN-Kubernetes マスカレードアドレスを設定するオブジェクトを指定します。

Expand
表2.41 gatewayConfig.ipv4 object
フィールド説明

internalMasqueradeSubnet

string

ホストからサービスへのトラフィックを有効にするために内部的に使用されるマスカレード IPv4 アドレス。ホストは、これらの IP アドレスと共有ゲートウェイブリッジインターフェイスを使用して設定されます。デフォルト値は 169.254.169.0/29 です。

重要

OpenShift Container Platform 4.17 以降のバージョンでは、クラスターはデフォルトのマスカレードサブネットとして 169.254.0.0/17 を使用します。アップグレードされたクラスターの場合は、デフォルトのマスカレードサブネットに変更がありません。

Expand
表2.42 gatewayConfig.ipv6 object
フィールド説明

internalMasqueradeSubnet

string

ホストからサービスへのトラフィックを有効にするために内部的に使用されるマスカレード IPv6 アドレス。ホストは、これらの IP アドレスと共有ゲートウェイブリッジインターフェイスを使用して設定されます。デフォルト値は fd69::/125 です。

重要

OpenShift Container Platform 4.17 以降のバージョンでは、クラスターはデフォルトのマスカレードサブネットとして fd69::/112 を使用します。アップグレードされたクラスターの場合は、デフォルトのマスカレードサブネットに変更がありません。

Expand
表2.43 ipsecConfig オブジェクト
フィールド説明

mode

string

IPsec 実装の動作を指定します。次の値のいずれかである必要があります。

  • Disabled: クラスターノードで IPsec が有効になりません。
  • External: 外部ホストとのネットワークトラフィックに対して IPsec が有効になります。
  • Full: Pod トラフィックおよび外部ホストとのネットワークトラフィックに対して IPsec が有効になります。

IPSec が有効な OVN-Kubernetes 設定の例

defaultNetwork:
  type: OVNKubernetes
  ovnKubernetesConfig:
    mtu: 1400
    genevePort: 6081
    ipsecConfig:
      mode: Full
Copy to Clipboard Toggle word wrap

2.5.5. Kubernetes マニフェストおよび Ignition 設定ファイルの作成

一部のクラスター定義ファイルを変更し、クラスターマシンを手動で起動する必要があるため、クラスターがマシンを設定するために必要な Kubernetes マニフェストと Ignition 設定ファイルを生成する必要があります。

インストール設定ファイルは Kubernetes マニフェストに変換されます。マニフェストは Ignition 設定ファイルにラップされます。これはクラスターマシンを設定するために後で使用されます。

重要
  • OpenShift Container Platform のインストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の node-bootstrapper 証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。
  • 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
注記

マニフェストおよび Ignition ファイルを生成するインストールプログラムはアーキテクチャー固有であり、クライアントイメージミラー から取得できます。インストールプログラムの Linux バージョンは s390x でのみ実行されます。このインストーラープログラムは、Mac OS バージョンとしても利用できます。

前提条件

  • OpenShift Container Platform インストールプログラムを取得していること。
  • install-config.yaml インストール設定ファイルを作成していること。

手順

  1. OpenShift Container Platform のインストールプログラムが含まれるディレクトリーに切り替え、クラスターの Kubernetes マニフェストを生成します。

    $ ./openshift-install create manifests --dir <installation_directory> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、作成した install-config.yaml ファイルが含まれるインストールディレクトリーを指定します。
    警告

    3 ノードクラスターをインストールしている場合は、以下の手順を省略してコントロールプレーンノードをスケジュール対象にします。

    重要

    コントロールプレーンノードをデフォルトのスケジュール不可からスケジュール可に設定するには、追加のサブスクリプションが必要です。これは、コントロールプレーンノードがコンピュートノードになるためです。

  2. <installation_directory>/manifests/cluster-scheduler-02-config.yml Kubernetes マニフェストファイルの mastersSchedulable パラメーターが false に設定されていることを確認します。この設定により、Pod がコントロールプレーンマシンにスケジュールされなくなります。

    1. <installation_directory>/manifests/cluster-scheduler-02-config.yml ファイルを開きます。
    2. mastersSchedulable パラメーターを見つけ、これが false に設定されていることを確認します。
    3. ファイルを保存し、終了します。
  3. Ignition 設定ファイルを作成するには、インストールプログラムが含まれるディレクトリーから以下のコマンドを実行します。

    $ ./openshift-install create ignition-configs --dir <installation_directory> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、同じインストールディレクトリーを指定します。

    Ignition 設定ファイルは、インストールディレクトリー内のブートストラップ、コントロールプレーン、およびコンピュートノード用に作成されます。kubeadmin-password および kubeconfig ファイルが ./<installation_directory>/auth ディレクトリーに作成されます。

    .
    ├── auth
    │   ├── kubeadmin-password
    │   └── kubeconfig
    ├── bootstrap.ign
    ├── master.ign
    ├── metadata.json
    └── worker.ign
    Copy to Clipboard Toggle word wrap

2.5.6. RHCOS のインストールおよび OpenShift Container Platform ブートストラッププロセスの開始

OpenShift Container Platform をプロビジョニングする IBM Z® インフラストラクチャーにインストールするには、Red Hat Enterprise Linux CoreOS (RHCOS) を Red Hat Enterprise Linux (RHEL) ゲスト仮想マシンとしてインストールする必要があります。RHCOS のインストール時に、インストールするマシンのタイプに、OpenShift Container Platform インストールプログラムによって生成された Ignition 設定ファイルを指定する必要があります。適切なネットワーク、DNS、および負荷分散インフラストラクチャーが設定されている場合、OpenShift Container Platform ブートストラッププロセスは RHCOS マシンの再起動後に自動的に開始されます。

事前にパッケージ化された QEMU コピーオンライト (QCOW2) ディスクイメージを使用する RHCOS の高速インストールを実行できます。または、新規の QCOW2 ディスクイメージでフルインストールを実行できます。

システムのセキュリティーをさらに強化するために、ファストトラックインストールに進む前に、オプションで IBM® Secure Execution を使用して RHCOS をインストールできます。

2.5.6.1. IBM Z または IBM LinuxONE 環境のノードの暗号化設定

必要に応じて、IBM Z® または IBM® LinuxONE 上の OpenShift Container Platform コントロールプレーンとコンピュートノードを保護するために、次の 3 つの方法から選択できます。

  • IBM® Secure Execution
  • IBM® Crypto Express (CEX) による Linux Unified Key Setup (LUKS) 暗号化
  • Network Bound Disk Encryption (NBDE)
2.5.6.1.1. IBM Secure Execution を使用した RHCOS のインストール

IBM® Secure Execution を使用して RHCOS をインストールする前に、基礎となるインフラストラクチャーを準備する必要があります。

前提条件

  • IBM® z15 以降、または IBM® LinuxONE III 以降。
  • Red Hat Enterprise Linux (RHEL) 8 以降
  • ブートストラップ Ignition ファイルがあります。ファイルは保護されていないため、他のユーザーが表示および編集できます。
  • インストール後にブートイメージが変更されていないことを確認しました。
  • すべてのノードを IBM® Secure Execution ゲストとして実行する必要があります。

手順

  1. RHEL KVM ホストを準備して、IBM® Secure Execution をサポートします。

    • デフォルトでは、KVM ホストは IBM® Secure Execution モードのゲストをサポートしません。ゲストを IBM® Secure Execution モードでサポートするには、KVM ホストを LPAR モードで起動し、カーネルパラメーターを prot_virt=1 に指定する必要があります。RHEL 8 で prot_virt=1 を有効にするには、次の手順に従います。

      1. /boot/loader/entries/ に移動して、ブートローダー設定ファイル *.conf を変更します。
      2. カーネルコマンドラインパラメーター prot_virt=1 を追加します。
      3. zipl コマンドを実行し、システムを再起動します。

        IBM® Secure Execution for Linux のサポートを使用して正常に始動する KVM ホストは、次のカーネルメッセージを発行します。

        prot_virt: Reserving <amount>MB as ultravisor base storage.
        Copy to Clipboard Toggle word wrap
      4. KVM ホストが IBM® Secure Execution をサポートするようになったことを確認するには、次のコマンドを実行します。

        # cat /sys/firmware/uv/prot_virt_host
        Copy to Clipboard Toggle word wrap

        出力例

        1
        Copy to Clipboard Toggle word wrap

        環境がセキュアホストの環境と一致していると検出された Linux インスタンスの場合、この属性の値は 1 です。他のインスタンスの場合、値は 0 です。

  2. Ignition を介して KVM ゲストにホストキーを追加します。

    最初の起動時に、RHCOS はホストキーを探して、それを使用して自身を再暗号化します。RHCOS は、/etc/se-hostkeys ディレクトリーで ibm-z-hostkey- で始まるファイルを検索します。クラスターが実行されている各マシンのすべてのホストキーは、管理者がディレクトリーにロードする必要があります。最初の起動後、他のマシンで VM を実行することはできません。

    注記

    安全なシステムで Ignition ファイルを準備する必要があります。例えば、別の IBM® Secure Execution ゲストです。

    以下に例を示します。

    {
      "ignition": { "version": "3.0.0" },
      "storage": {
        "files": [
          {
            "path": "/etc/se-hostkeys/ibm-z-hostkey-<your-hostkey>.crt",
            "contents": {
              "source": "data:;base64,<base64 encoded hostkey document>"
            },
            "mode": 420
          },
          {
            "path": "/etc/se-hostkeys/ibm-z-hostkey-<your-hostkey>.crt",
            "contents": {
              "source": "data:;base64,<base64 encoded hostkey document>"
            },
            "mode": 420
          }
        ]
      }
    }
    ```
    Copy to Clipboard Toggle word wrap
    注記

    ノードを複数の IBM Z® マシンで実行できるようにする場合は、必要な数のホストキーを追加できます。

  3. Base64 でエンコードされた文字列を生成するには、次のコマンドを実行します。

    base64 <your-hostkey>.crt
    Copy to Clipboard Toggle word wrap

    IBM® Secure Execution を実行していないゲストと比較すると、イグニションフェーズの前にイメージ全体がランダムに生成された LUKS パスフレーズで暗号化されるため、マシンの最初のブートに時間がかかります。

  4. Ignition 保護の追加

    Ignition 設定ファイルに保存されているシークレットが読み取られたり変更されたりしないようにするには、Ignition 設定ファイルを暗号化する必要があります。

    注記

    必要なセキュリティーを実現するために、IBM® Secure Execution の実行時は、Ignition ロギングとローカルログインがデフォルトで無効になります。

    1. 次のコマンドを実行して、secex-qemu.qcow2 イメージの公開 GPG キーを取得し、そのキーを使用して Ignition 設定を暗号化します。

      gpg --recipient-file /path/to/ignition.gpg.pub --yes --output /path/to/config.ign.gpg --verbose --armor --encrypt /path/to/config.ign
      Copy to Clipboard Toggle word wrap
  5. RHCOS の高速インストールに従って、IBM® Secure Execution QCOW イメージを使用してノードをインストールします。

    注記

    仮想マシンを起動する前に、serial=ignitionserial=ignition_crypted に置き換え、launchSecurity パラメーターを追加します。

検証

RHCOS の高速インストールが完了し、最初の起動時に Ignition が実行したら、復号化が成功したか確認します。

  • 復号化が成功すると、次の例のような出力が予想されます。

    出力例

    [    2.801433] systemd[1]: Starting coreos-ignition-setup-user.service - CoreOS Ignition User Config Setup...
    
    [    2.803959] coreos-secex-ignition-decrypt[731]: gpg: key <key_name>: public key "Secure Execution (secex) 38.20230323.dev.0" imported
    [    2.808874] coreos-secex-ignition-decrypt[740]: gpg: encrypted with rsa4096 key, ID <key_name>, created <yyyy-mm-dd>
    [  OK  ] Finished coreos-secex-igni…S Secex Ignition Config Decryptor.
    Copy to Clipboard Toggle word wrap

  • 復号化に失敗した場合は、次の例のような出力が予想されます。

    出力例

    Starting coreos-ignition-s…reOS Ignition User Config Setup...
    [    2.863675] coreos-secex-ignition-decrypt[729]: gpg: key <key_name>: public key "Secure Execution (secex) 38.20230323.dev.0" imported
    [    2.869178] coreos-secex-ignition-decrypt[738]: gpg: encrypted with RSA key, ID <key_name>
    [    2.870347] coreos-secex-ignition-decrypt[738]: gpg: public key decryption failed: No secret key
    [    2.870371] coreos-secex-ignition-decrypt[738]: gpg: decryption failed: No secret key
    Copy to Clipboard Toggle word wrap

2.5.6.1.2. IBM Z または IBM LinuxONE 環境での CEX 経由の LUKS 暗号化

IBM Z® または IBM® LinuxONE 環境で IBM® Crypto Express (CEX) を介してハードウェアベースの Linux Unified Key Setup (LUKS) 暗号化を有効にするには、追加の手順が必要です。このセクションでは、この手順を詳しく説明します。

前提条件

  • butane ユーティリティーをインストールした。
  • Butane でマシン設定を作成する手順を確認した。

手順

  1. コントロールプレーンとコンピュートノードの Butane 設定ファイルを作成します。

    • ディスク暗号化が設定されたコントロールプレーンノード用に、以下の Butane 設定を使用して main-storage.bu という名前のファイルを作成します。

      variant: openshift
      version: 4.20.0
      metadata:
        name: main-storage
        labels:
          machineconfiguration.openshift.io/role: master
      boot_device:
        layout: s390x-virt
        luks:
          cex:
            enabled: true
      openshift:
        fips: true 
      1
      
        kernel_arguments:
          - rd.luks.key=/etc/luks/cex.key 
      2
      Copy to Clipboard Toggle word wrap
      1
      FIPS モードを有効にするか無効にするかを指定します。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
      2
      デバイスの復号に必要なキーの場所を指定します。この値を変更することはできません。
  2. ignition.platform.id=metal および ignition.firstboot を含むパラメーターファイルを作成します。

    コントロールプレーンマシンのカーネルパラメーターファイルの例

    cio_ignore=all,!condev rd.neednet=1 \
    console=ttysclp0 \
    ignition.firstboot ignition.platform.id=metal \
    coreos.inst.ignition_url=http://<http_server>/master.ign \
    1
    
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
    2
    
    ip=<ip_address>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.zfcp=0.0.5677,0x600606680g7f0056,0x034F000000000000
    Copy to Clipboard Toggle word wrap

    1
    Ignition 設定ファイルの場所を指定します。master.ign または worker.ign を使用します。HTTP および HTTPS プロトコルのみを使用できます。
    2
    起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP および HTTPS プロトコルのみを使用できます。
    注記

    パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

2.5.6.1.3. IBM Z または IBM& LinuxONE 環境での静的 IP を使用した NBDE の設定

IBM Z® または IBM® LinuxONE 環境で NBDE ディスク暗号化を有効にするには、追加の手順が必要です。このセクションで詳しく説明します。

前提条件

  • 外部 Tang サーバーをセットアップした。手順は、Network-Bound Disk Encryption を参照してください。
  • butane ユーティリティーをインストールした。
  • Butane でマシン設定を作成する手順を確認した。

手順

  1. コントロールプレーンとコンピュートノードの Butane 設定ファイルを作成します。

    次のコントロールプレーンノードの Butane 設定の例では、ディスク暗号化用に master-storage.bu という名前のファイルを作成します。

    variant: openshift
    version: 4.20.0
    metadata:
      name: master-storage
      labels:
        machineconfiguration.openshift.io/role: master
    storage:
      luks:
        - clevis:
            tang:
              - thumbprint: QcPr_NHFJammnRCA3fFMVdNBwjs
                url: http://clevis.example.com:7500
          device: /dev/disk/by-partlabel/root
          label: luks-root
          name: root
          wipe_volume: true
      filesystems:
        - device: /dev/mapper/root
          format: xfs
          label: root
          wipe_filesystem: true
    openshift:
      fips: true 
    1
    Copy to Clipboard Toggle word wrap
    1
    FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
  2. 次のコマンドを実行して、マシンを起動するためのカスタマイズされた initramfs ファイルを作成します。

    $ coreos-installer pxe customize \
        /root/rhcos-bootfiles/rhcos-<release>-live-initramfs.s390x.img \
        --dest-device /dev/disk/by-id/scsi-<serial_number> --dest-karg-append \
        ip=<ip_address>::<gateway_ip>:<subnet_mask>::<network_device>:none \
        --dest-karg-append nameserver=<nameserver_ip> \
        --dest-karg-append rd.neednet=1 -o \
        /root/rhcos-bootfiles/<node_name>-initramfs.s390x.img
    Copy to Clipboard Toggle word wrap
    注記

    最初のブートの前に、クラスター内の各ノードの initramfs をカスタマイズし、PXE カーネルパラメーターを追加する必要があります。

  3. ignition.platform.id=metal および ignition.firstboot を含むパラメーターファイルを作成します。

    コントロールプレーンマシンのカーネルパラメーターファイルの例

    cio_ignore=all,!condev rd.neednet=1 \
    console=ttysclp0 \
    ignition.firstboot ignition.platform.id=metal \
    coreos.inst.ignition_url=http://<http_server>/master.ign \
    1
    
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
    2
    
    ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.zfcp=0.0.5677,0x600606680g7f0056,0x034F000000000000 \
    zfcp.allow_lun_scan=0
    Copy to Clipboard Toggle word wrap

    1
    Ignition 設定ファイルの場所を指定します。master.ign または worker.ign を使用します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    2
    起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    注記

    パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

2.5.6.2. 事前にパッケージ化された QCOW2 ディスクイメージを使用した高速インストール

Red Hat Enterprise Linux CoreOS (RHCOS) の高速インストールでマシンを作成するには、事前にパッケージ化された Red Hat Enterprise Linux CoreOS (RHCOS )QEMU コピーオンライト (QCOW2) ディスクイメージをインポートします。

前提条件

  • この手順では RHEL KVM ホストと呼ばれる、KVM を使用する RHEL 8.6 以降で実行されている少なくとも 1 つの LPAR。
  • KVM/QEMU ハイパーバイザーが RHEL KVM ホストにインストーされている
  • ノードのホスト名および逆引き参照を実行できるドメインネームサーバー (DNS)。
  • IP アドレスを提供する DHCP サーバー。

手順

  1. Red Hat カスタマーポータルの 製品のダウンロード ページまたは RHCOS イメージミラー ページから RHEL QEMU コピーオンライト (QCOW2) ディスクイメージファイルを取得します。

    重要

    RHCOS イメージは OpenShift Container Platform の各リリースごとに変更されない可能性があります。インストールする OpenShift Container Platform バージョンと等しいか、それ以下のバージョンの内で最も新しいバージョンのイメージをダウンロードする必要があります。この手順で説明されている適切な RHCOS QCOW2 イメージのみを使用します。

  2. QCOW2 ディスクイメージおよび Ignition ファイルを RHEL KVM ホストの共通ディレクトリーにダウンロードします。

    例: /var/lib/libvirt/images

    注記

    Ignition ファイルは OpenShift Container Platform インストーラーによって生成されます。

  3. 各 KVM ゲストノードの QCOW2 ディスクイメージバッキングファイルで、新しいディスクイメージを作成します。

    $ qemu-img create -f qcow2 -F qcow2 -b /var/lib/libvirt/images/{source_rhcos_qemu} /var/lib/libvirt/images/{vmname}.qcow2 {size}
    Copy to Clipboard Toggle word wrap
  4. Ignition ファイルと新規ディスクイメージを使用して、新規 KVM ゲストノードを作成します。

    $ virt-install --noautoconsole \
       --connect qemu:///system \
       --name <vm_name> \
       --memory <memory_mb> \
       --vcpus <vcpus> \
       --disk <disk> \
       --launchSecurity type="s390-pv" \ 
    1
    
       --import \
       --network network=<virt_network_parm>,mac=<mac_address> \
       --disk path=<ign_file>,format=raw,readonly=on,serial=ignition,startup_policy=optional 
    2
    Copy to Clipboard Toggle word wrap
    1
    IBM® Secure Execution が有効な場合は、launchSecurity type="s390-pv" パラメーターを追加します。
    2
    IBM® Secure Execution が有効な場合は、serial=ignitionserial=ignition_crypted に置き換えます。
2.5.6.3. 新規 QCOW2 ディスクイメージへのフルインストール

新規 QEMU copy-on-write (QCOW2) ディスクイメージのフルインストールでマシンを作成するには、以下の手順を実施します。

前提条件

  • この手順では RHEL KVM ホストと呼ばれる、KVM を使用する RHEL 8.6 以降で実行されている少なくとも 1 つの LPAR。
  • KVM/QEMU ハイパーバイザーが RHEL KVM ホストにインストーされている
  • ノードのホスト名および逆引き参照を実行できるドメインネームサーバー (DNS)。
  • HTTP または HTTPS サーバーが設定されている。

手順

  1. Red Hat カスタマーポータルの 製品のダウンロード ページ、または RHCOS イメージミラー ページから RHEL カーネル、initramfs、および rootfs ファイルを取得します。

    重要

    RHCOS イメージは OpenShift Container Platform の各リリースごとに変更されない可能性があります。インストールする OpenShift Container Platform バージョンと等しいか、それ以下のバージョンの内で最も新しいバージョンのイメージをダウンロードする必要があります。この手順で説明されている適切な RHCOS QCOW2 イメージのみを使用します。

    ファイル名には、OpenShift Container Platform のバージョン番号が含まれます。以下の例のようになります。

    • kernel: rhcos-<version>-live-kernel-<architecture>
    • initramfs: rhcos-<version>-live-initramfs.<architecture>.img
    • rootfs: rhcos-<version>-live-rootfs.<architecture>.img
  2. virt-install を起動する前に、ダウンロードした RHEL ライブカーネル、initramfs、および rootfs、および Ignition ファイルを HTTP または HTTPS サーバーに移動します。

    注記

    Ignition ファイルは OpenShift Container Platform インストーラーによって生成されます。

  3. RHEL カーネル、initramfs、および Ignition ファイル、新規ディスクイメージ、および調整された parm 引数を使用して、新規 KVM ゲストノードを作成します。

    $ virt-install \
       --connect qemu:///system \
       --name <vm_name> \
       --memory <memory_mb> \
       --vcpus <vcpus> \
       --location <media_location>,kernel=<rhcos_kernel>,initrd=<rhcos_initrd> \ / 
    1
    
       --disk <vm_name>.qcow2,size=<image_size>,cache=none,io=native \
       --network network=<virt_network_parm> \
       --boot hd \
       --extra-args "rd.neednet=1" \
       --extra-args "coreos.inst.install_dev=/dev/<block_device>" \
       --extra-args "coreos.inst.ignition_url=http://<http_server>/bootstrap.ign" \
    2
    
       --extra-args "coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img" \
    3
    
       --extra-args "ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns>" \
       --noautoconsole \
       --wait
    Copy to Clipboard Toggle word wrap
    1
    --location パラメーターには、HTTP または HTTPS サーバー上の kernel/initrd の場所を指定します。
    2
    Ignition 設定ファイルの場所を指定します。bootstrap.ignmaster.ign、または worker.ign を使用します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    3
    起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
2.5.6.4. 詳細の RHCOS インストールリファレンス

このセクションでは、Red Hat Enterprise Linux CoreOS (RHCOS) の手動インストールプロセスを変更できるようにするネットワーク設定および他の高度なオプションを説明します。以下の表では、RHCOS ライブインストーラーおよび coreos-installer コマンドで使用できるカーネル引数およびコマンドラインのオプションを説明します。

2.5.6.4.1. ISO インストールのネットワークオプション

ISO イメージから RHCOS をインストールする場合、そのイメージを起動してノードのネットワークを設定する際に手動でカーネル引数を追加できます。ネットワークの引数が指定されていない場合、RHCOS が Ignition 設定ファイルを取得するためにネットワークが必要であることを検知する際に、DHCP が initramfs でアクティベートされます。

重要

ネットワーク引数を手動で追加する場合は、rd.neednet=1 カーネル引数を追加して、ネットワークを initramfs で有効にする必要があります。

以下の表は、ISO インストール用に RHCOS ノードでネットワークおよびボンディングを設定する例を示しています。この例では、ip= および nameserver= カーネル引数の使用方法を説明します。

注記

カーネル引数 ( ip= and nameserver=) を追加するときは、順序付けが重要です。

ネットワークオプションは、システムの起動時に dracut ツールに渡されます。dracut でサポートされるネットワークオプションの詳細は、man ページの dracut.cmdline を参照してください。

次の例は、ISO インストールのネットワークオプションです。

2.5.6.4.1.1. DHCP または静的 IP アドレスの設定

IP アドレスを設定するには、DHCP (ip=dhcp) を使用するか、個別の静的 IP アドレス (ip=<host_ip>) を設定します。静的 IP を設定する場合、各ノードで DNS サーバー IP アドレス (nameserver=<dns_ip>) を特定する必要があります。次の例では、以下を設定します。

  • ノードの IP アドレス: 10.10.10.2
  • ゲートウェイアドレス: 10.10.10.254
  • ネットワーク: 255.255.255.0
  • ホスト名: core0.example.com
  • DNS サーバーアドレス: 4.4.4.41
  • auto-configuration の値を none に設定します。IP ネットワークが静的に設定されている場合には、自動設定は必要ありません。
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
nameserver=4.4.4.41
Copy to Clipboard Toggle word wrap
注記

DHCP を使用して RHCOS マシンの IP アドレスを設定する場合、マシンは DHCP を介して DNS サーバー情報も取得します。DHCP ベースのデプロイメントの場合、DHCP サーバー設定を使用して RHCOS ノードが使用する DNS サーバーアドレスを定義できます。

2.5.6.4.1.2. 静的ホスト名を使用しない IP アドレスの設定

静的ホスト名を割り当てずに IP アドレスを設定できます。静的ホスト名がユーザーによって設定されていない場合は、逆引き DNS ルックアップによって取得され、自動的に設定されます。静的ホスト名なしで IP アドレスを設定するには、次の例を参照してください。

  • ノードの IP アドレス: 10.10.10.2
  • ゲートウェイアドレス: 10.10.10.254
  • ネットワーク: 255.255.255.0
  • DNS サーバーアドレス: 4.4.4.41
  • auto-configuration の値を none に設定します。IP ネットワークが静的に設定されている場合には、自動設定は必要ありません。
ip=10.10.10.2::10.10.10.254:255.255.255.0::enp1s0:none
nameserver=4.4.4.41
Copy to Clipboard Toggle word wrap
2.5.6.4.1.3. 複数のネットワークインターフェイスの指定

複数の ip= エントリーを設定することで、複数のネットワークインターフェイスを指定できます。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
ip=10.10.10.3::10.10.10.254:255.255.255.0:core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.5.6.4.1.4. デフォルトゲートウェイとルートの設定

オプション: rd.route= value を設定して、追加のネットワークへのルートを設定できます。

注記

1 つまたは複数のネットワークを設定する場合、1 つのデフォルトゲートウェイが必要です。追加のネットワークゲートウェイがプライマリーネットワークゲートウェイと異なる場合、デフォルトゲートウェイはプライマリーネットワークゲートウェイである必要があります。

  • 次のコマンドを実行して、デフォルトゲートウェイを設定します。

    ip=::10.10.10.254::::
    Copy to Clipboard Toggle word wrap
  • 次のコマンドを入力して、追加ネットワークのルートを設定します。

    rd.route=20.20.20.0/24:20.20.20.254:enp2s0
    Copy to Clipboard Toggle word wrap
2.5.6.4.1.5. 単一インターフェイスでの DHCP の無効化

2 つ以上のネットワークインターフェイスがあり、1 つのインターフェイスのみが使用される場合などに、1 つのインターフェイスで DHCP を無効にします。この例では、enp1s0 インターフェイスには静的ネットワーク設定があり、使用されていない enp2s0 では DHCP が無効になっています。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
ip=::::core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.5.6.4.1.6. DHCP と静的 IP 設定の組み合わせ

以下のように、複数のネットワークインターフェイスを持つシステムで、DHCP および静的 IP 設定を組み合わせることができます。

ip=enp1s0:dhcp
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.5.6.4.1.7. 個々のインターフェイスでの VLAN の設定

オプション: vlan= パラメーターを使用して、個別のインターフェイスに VLAN を設定できます。

  • ネットワークインターフェイスで VLAN を設定し、静的 IP アドレスを使用するには、次のコマンドを実行します。

    ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp2s0.100:none
    vlan=enp2s0.100:enp2s0
    Copy to Clipboard Toggle word wrap
  • ネットワークインターフェイスで VLAN を設定し、DHCP を使用するには、次のコマンドを実行します。

    ip=enp2s0.100:dhcp
    vlan=enp2s0.100:enp2s0
    Copy to Clipboard Toggle word wrap
2.5.6.4.1.8. 複数の DNS サーバーの指定

以下のように、各サーバーに nameserver= エントリーを追加して、複数の DNS サーバーを指定できます。

nameserver=1.1.1.1
nameserver=8.8.8.8
Copy to Clipboard Toggle word wrap

2.5.7. ブートストラッププロセスの完了まで待機する

OpenShift Container Platform ブートストラッププロセスは、初回のクラスターノードのディスクにインストールされている永続的な RHCOS 環境での起動後に開始します。Ignition 設定ファイルで指定される設定情報は、ブートストラッププロセスを初期化し、マシンに OpenShift Container Platform をインストールするために使用されます。ブートストラッププロセスが完了するまで待機する必要があります。

前提条件

  • クラスターの Ignition 設定ファイルを作成している。
  • 適切なネットワーク、DNS および負荷分散インフラストラクチャーを設定している。
  • インストールプログラムを取得し、クラスターの Ignition 設定ファイルを生成している。
  • RHCOS をクラスターマシンにインストールし、OpenShift Container Platform インストールプログラムで生成される Ignition 設定ファイルを指定している。
  • お使いのマシンでインターネットに直接アクセスできるか、HTTP または HTTPS プロキシーが利用できる。

手順

  1. ブートストラッププロセスをモニターします。

    $ ./openshift-install --dir <installation_directory> wait-for bootstrap-complete \ 
    1
    
        --log-level=info 
    2
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。
    2
    異なるインストールの詳細情報を表示するには、info ではなく、warndebug、または error を指定します。

    出力例

    INFO Waiting up to 30m0s for the Kubernetes API at https://api.test.example.com:6443...
    INFO API v1.33.4 up
    INFO Waiting up to 30m0s for bootstrapping to complete...
    INFO It is now safe to remove the bootstrap resources
    Copy to Clipboard Toggle word wrap

    Kubernetes API サーバーでこれがコントロールプレーンマシンにブートストラップされていることを示すシグナルが出されるとコマンドは成功します。

  2. ブートストラッププロセスが完了したら、ブートストラップマシンをロードバランサーから削除します。

    重要

    この時点で、ブートストラップマシンをロードバランサーから削除する必要があります。さらに、ブートストラップマシン自体を削除し、再フォーマットすることができます。

2.5.8. CLI の使用によるクラスターへのログイン

クラスター kubeconfig ファイルをエクスポートし、デフォルトシステムユーザーとしてクラスターにログインできます。kubeconfig ファイルには、クライアントを正しいクラスターおよび API サーバーに接続するために CLI で使用されるクラスターに関する情報が含まれます。このファイルはクラスターに固有のファイルであり、OpenShift Container Platform のインストール時に作成されます。

前提条件

  • OpenShift Container Platform クラスターをデプロイしていること。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. 次のコマンドを実行して、kubeadmin 認証情報をエクスポートします。

    $ export KUBECONFIG=<installation_directory>/auth/kubeconfig 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。
  2. 次のコマンドを実行し、エクスポートされた設定を使用して oc コマンドを正常に実行できることを確認します。

    $ oc whoami
    Copy to Clipboard Toggle word wrap

    出力例

    system:admin
    Copy to Clipboard Toggle word wrap

2.5.9. マシンの証明書署名要求の承認

マシンをクラスターに追加する際に、追加したそれぞれのマシンに対して 2 つの保留状態の証明書署名要求 (CSR) が生成されます。これらの CSR が承認されていることを確認するか、必要な場合はそれらを承認してください。最初にクライアント要求を承認し、次にサーバー要求を承認する必要があります。

前提条件

  • マシンがクラスターに追加されています。

手順

  1. クラスターがマシンを認識していることを確認します。

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME      STATUS    ROLES   AGE  VERSION
    master-0  Ready     master  63m  v1.33.4
    master-1  Ready     master  63m  v1.33.4
    master-2  Ready     master  64m  v1.33.4
    Copy to Clipboard Toggle word wrap

    出力には作成したすべてのマシンがリスト表示されます。

    注記

    上記の出力には、一部の CSR が承認されるまで、ワーカーノード (ワーカーノードとも呼ばれる) が含まれない場合があります。

  2. 保留中の証明書署名要求 (CSR) を確認し、クラスターに追加したそれぞれのマシンのクライアントおよびサーバー要求に Pending または Approved ステータスが表示されていることを確認します。

    $ oc get csr
    Copy to Clipboard Toggle word wrap

    出力例

    NAME        AGE   REQUESTOR                                   CONDITION
    csr-mddf5   20m   system:node:master-01.example.com   Approved,Issued
    csr-z5rln   16m   system:node:worker-21.example.com   Approved,Issued
    Copy to Clipboard Toggle word wrap

  3. 追加したマシンの保留中の CSR すべてが Pending ステータスになった後に CSR が承認されない場合には、クラスターマシンの CSR を承認します。

    注記

    CSR のローテーションは自動的に実行されるため、クラスターにマシンを追加後 1 時間以内に CSR を承認してください。1 時間以内に承認しない場合には、証明書のローテーションが行われ、各ノードに 3 つ以上の証明書が存在するようになります。これらの証明書すべてを承認する必要があります。クライアントの CSR が承認された後に、Kubelet は提供証明書のセカンダリー CSR を作成します。これには、手動の承認が必要になります。次に、後続の提供証明書の更新要求は、Kubelet が同じパラメーターを持つ新規証明書を要求する場合に machine-approver によって自動的に承認されます。

    注記

    ベアメタルおよび他の user-provisioned infrastructure などのマシン API ではないプラットフォームで実行されているクラスターの場合、kubelet 提供証明書要求 (CSR) を自動的に承認する方法を実装する必要があります。要求が承認されない場合、API サーバーが kubelet に接続する際に提供証明書が必須であるため、oc execoc rsh、および oc logs コマンドは正常に実行できません。Kubelet エンドポイントにアクセスする操作には、この証明書の承認が必要です。この方法は新規 CSR の有無を監視し、CSR が system:node または system:admin グループの node-bootstrapper サービスアカウントによって提出されていることを確認し、ノードの ID を確認します。

    • それらを個別に承認するには、それぞれの有効な CSR に以下のコマンドを実行します。

      $ oc adm certificate approve <csr_name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <csr_name> は、現行の CSR のリストからの CSR の名前です。
    • すべての保留中の CSR を承認するには、以下のコマンドを実行します。

      $ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs --no-run-if-empty oc adm certificate approve
      Copy to Clipboard Toggle word wrap
      注記

      一部の Operator は、一部の CSR が承認されるまで利用できない可能性があります。

  4. クライアント要求が承認されたら、クラスターに追加した各マシンのサーバー要求を確認する必要があります。

    $ oc get csr
    Copy to Clipboard Toggle word wrap

    出力例

    NAME        AGE     REQUESTOR                                                                   CONDITION
    csr-bfd72   5m26s   system:node:ip-10-0-50-126.us-east-2.compute.internal                       Pending
    csr-c57lv   5m26s   system:node:ip-10-0-95-157.us-east-2.compute.internal                       Pending
    ...
    Copy to Clipboard Toggle word wrap

  5. 残りの CSR が承認されず、それらが Pending ステータスにある場合、クラスターマシンの CSR を承認します。

    • それらを個別に承認するには、それぞれの有効な CSR に以下のコマンドを実行します。

      $ oc adm certificate approve <csr_name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <csr_name> は、現行の CSR のリストからの CSR の名前です。
    • すべての保留中の CSR を承認するには、以下のコマンドを実行します。

      $ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs oc adm certificate approve
      Copy to Clipboard Toggle word wrap
  6. すべてのクライアントおよびサーバーの CSR が承認された後に、マシンのステータスが Ready になります。以下のコマンドを実行して、これを確認します。

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME      STATUS    ROLES   AGE  VERSION
    master-0  Ready     master  73m  v1.33.4
    master-1  Ready     master  73m  v1.33.4
    master-2  Ready     master  74m  v1.33.4
    worker-0  Ready     worker  11m  v1.33.4
    worker-1  Ready     worker  11m  v1.33.4
    Copy to Clipboard Toggle word wrap

    注記

    サーバー CSR の承認後にマシンが Ready ステータスに移行するまでに数分の時間がかかる場合があります。

関連情報

2.5.10. Operator の初期設定

コントロールプレーンの初期化後に、一部の Operator を利用可能にするためにそれらをすぐに設定する必要があります。

前提条件

  • コントロールプレーンが初期化されています。

手順

  1. クラスターコンポーネントがオンラインになることを確認します。

    $ watch -n5 oc get clusteroperators
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
    authentication                             4.20.0    True        False         False      19m
    baremetal                                  4.20.0    True        False         False      37m
    cloud-credential                           4.20.0    True        False         False      40m
    cluster-autoscaler                         4.20.0    True        False         False      37m
    config-operator                            4.20.0    True        False         False      38m
    console                                    4.20.0    True        False         False      26m
    csi-snapshot-controller                    4.20.0    True        False         False      37m
    dns                                        4.20.0    True        False         False      37m
    etcd                                       4.20.0    True        False         False      36m
    image-registry                             4.20.0    True        False         False      31m
    ingress                                    4.20.0    True        False         False      30m
    insights                                   4.20.0    True        False         False      31m
    kube-apiserver                             4.20.0    True        False         False      26m
    kube-controller-manager                    4.20.0    True        False         False      36m
    kube-scheduler                             4.20.0    True        False         False      36m
    kube-storage-version-migrator              4.20.0    True        False         False      37m
    machine-api                                4.20.0    True        False         False      29m
    machine-approver                           4.20.0    True        False         False      37m
    machine-config                             4.20.0    True        False         False      36m
    marketplace                                4.20.0    True        False         False      37m
    monitoring                                 4.20.0    True        False         False      29m
    network                                    4.20.0    True        False         False      38m
    node-tuning                                4.20.0    True        False         False      37m
    openshift-apiserver                        4.20.0    True        False         False      32m
    openshift-controller-manager               4.20.0    True        False         False      30m
    openshift-samples                          4.20.0    True        False         False      32m
    operator-lifecycle-manager                 4.20.0    True        False         False      37m
    operator-lifecycle-manager-catalog         4.20.0    True        False         False      37m
    operator-lifecycle-manager-packageserver   4.20.0    True        False         False      32m
    service-ca                                 4.20.0    True        False         False      38m
    storage                                    4.20.0    True        False         False      37m
    Copy to Clipboard Toggle word wrap

  2. 利用不可の Operator を設定します。
2.5.10.1. イメージレジストリーストレージの設定

Image Registry Operator は、デフォルトストレージを提供しないプラットフォームでは最初は利用できません。インストール後に、レジストリー Operator を使用できるようにレジストリーをストレージを使用するように設定する必要があります。

実稼働クラスターに必要な永続ボリュームの設定に関する手順が示されます。該当する場合、空のディレクトリーをストレージの場所として設定する方法が表示されます。これは、実稼働以外のクラスターでのみ利用できます。

アップグレード時に Recreate ロールアウトストラテジーを使用して、イメージレジストリーがブロックストレージタイプを使用することを許可するための追加の手順が提供されます。

2.5.10.1.1. IBM Z の場合のレジストリーストレージの設定

クラスター管理者は、インストール後にレジストリーをストレージを使用できるように設定する必要があります。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。
  • IBM Z® にクラスターがある。
  • Red Hat OpenShift Data Foundation などのクラスターのプロビジョニングされた永続ストレージがある。

    重要

    OpenShift Container Platform は、1 つのレプリカのみが存在する場合にイメージレジストリーストレージの ReadWriteOnce アクセスをサポートします。ReadWriteOnce アクセスでは、レジストリーが Recreate ロールアウト戦略を使用する必要もあります。2 つ以上のレプリカで高可用性をサポートするイメージレジストリーをデプロイするには、ReadWriteMany アクセスが必要です。

  • 100 Gi の容量がある。

手順

  1. レジストリーをストレージを使用できるように設定するには、configs.imageregistry/cluster リソースの spec.storage.pvc を変更します。

    注記

    共有ストレージを使用する場合は、外部からアクセスを防ぐためにセキュリティー設定を確認します。

  2. レジストリー Pod がないことを確認します。

    $ oc get pod -n openshift-image-registry -l docker-registry=default
    Copy to Clipboard Toggle word wrap

    出力例

    No resources found in openshift-image-registry namespace
    Copy to Clipboard Toggle word wrap

    注記

    出力にレジストリー Pod がある場合は、この手順を続行する必要はありません。

  3. レジストリー設定を確認します。

    $ oc edit configs.imageregistry.operator.openshift.io
    Copy to Clipboard Toggle word wrap

    出力例

    storage:
      pvc:
        claim:
    Copy to Clipboard Toggle word wrap

    claim フィールドを空のままにし、image-registry-storage PVC の自動作成を可能にします。

  4. clusteroperator ステータスを確認します。

    $ oc get clusteroperator image-registry
    Copy to Clipboard Toggle word wrap

    出力例

    NAME             VERSION              AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
    image-registry   4.20                 True        False         False      6h50m
    Copy to Clipboard Toggle word wrap

  5. イメージのビルドおよびプッシュを有効にするためにレジストリーが managed に設定されていることを確認します。

    • 以下を実行します。

      $ oc edit configs.imageregistry/cluster
      Copy to Clipboard Toggle word wrap

      次に、行を変更します。

      managementState: Removed
      Copy to Clipboard Toggle word wrap

      次のように変更してください。

      managementState: Managed
      Copy to Clipboard Toggle word wrap
2.5.10.1.2. 実稼働以外のクラスターでのイメージレジストリーのストレージの設定

Image Registry Operator のストレージを設定する必要があります。実稼働用以外のクラスターの場合、イメージレジストリーは空のディレクトリーに設定することができます。これを実行する場合、レジストリーを再起動するとすべてのイメージが失われます。

手順

  • イメージレジストリーストレージを空のディレクトリーに設定するには、以下を実行します。

    $ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"storage":{"emptyDir":{}}}}'
    Copy to Clipboard Toggle word wrap
    警告

    実稼働用以外のクラスターにのみこのオプションを設定します。

    Image Registry Operator がそのコンポーネントを初期化する前にこのコマンドを実行する場合、oc patch コマンドは以下のエラーを出して失敗します。

    Error from server (NotFound): configs.imageregistry.operator.openshift.io "cluster" not found
    Copy to Clipboard Toggle word wrap

    数分待機した後に、このコマンドを再び実行します。

2.5.11. user-provisioned infrastructure でのインストールの完了

Operator の設定が完了したら、独自に提供するインフラストラクチャーへのクラスターのインストールを完了できます。

前提条件

  • コントロールプレーンが初期化されています。
  • Operator の初期設定を完了済みです。

手順

  1. 以下のコマンドを使用して、すべてのクラスターコンポーネントがオンラインであることを確認します。

    $ watch -n5 oc get clusteroperators
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
    authentication                             4.20.0    True        False         False      19m
    baremetal                                  4.20.0    True        False         False      37m
    cloud-credential                           4.20.0    True        False         False      40m
    cluster-autoscaler                         4.20.0    True        False         False      37m
    config-operator                            4.20.0    True        False         False      38m
    console                                    4.20.0    True        False         False      26m
    csi-snapshot-controller                    4.20.0    True        False         False      37m
    dns                                        4.20.0    True        False         False      37m
    etcd                                       4.20.0    True        False         False      36m
    image-registry                             4.20.0    True        False         False      31m
    ingress                                    4.20.0    True        False         False      30m
    insights                                   4.20.0    True        False         False      31m
    kube-apiserver                             4.20.0    True        False         False      26m
    kube-controller-manager                    4.20.0    True        False         False      36m
    kube-scheduler                             4.20.0    True        False         False      36m
    kube-storage-version-migrator              4.20.0    True        False         False      37m
    machine-api                                4.20.0    True        False         False      29m
    machine-approver                           4.20.0    True        False         False      37m
    machine-config                             4.20.0    True        False         False      36m
    marketplace                                4.20.0    True        False         False      37m
    monitoring                                 4.20.0    True        False         False      29m
    network                                    4.20.0    True        False         False      38m
    node-tuning                                4.20.0    True        False         False      37m
    openshift-apiserver                        4.20.0    True        False         False      32m
    openshift-controller-manager               4.20.0    True        False         False      30m
    openshift-samples                          4.20.0    True        False         False      32m
    operator-lifecycle-manager                 4.20.0    True        False         False      37m
    operator-lifecycle-manager-catalog         4.20.0    True        False         False      37m
    operator-lifecycle-manager-packageserver   4.20.0    True        False         False      32m
    service-ca                                 4.20.0    True        False         False      38m
    storage                                    4.20.0    True        False         False      37m
    Copy to Clipboard Toggle word wrap

    あるいは、以下のコマンドを使用すると、すべてのクラスターが利用可能な場合に通知されます。また、このコマンドは認証情報を取得して表示します。

    $ ./openshift-install --dir <installation_directory> wait-for install-complete 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。

    出力例

    INFO Waiting up to 30m0s for the cluster to initialize...
    Copy to Clipboard Toggle word wrap

    Cluster Version Operator が Kubernetes API サーバーから OpenShift Container Platform クラスターのデプロイを終了するとコマンドは成功します。

    重要
    • インストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の node-bootstrapper 証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。
    • 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
  2. Kubernetes API サーバーが Pod と通信していることを確認します。

    1. すべての Pod のリストを表示するには、以下のコマンドを使用します。

      $ oc get pods --all-namespaces
      Copy to Clipboard Toggle word wrap

      出力例

      NAMESPACE                         NAME                                            READY   STATUS      RESTARTS   AGE
      openshift-apiserver-operator      openshift-apiserver-operator-85cb746d55-zqhs8   1/1     Running     1          9m
      openshift-apiserver               apiserver-67b9g                                 1/1     Running     0          3m
      openshift-apiserver               apiserver-ljcmx                                 1/1     Running     0          1m
      openshift-apiserver               apiserver-z25h4                                 1/1     Running     0          2m
      openshift-authentication-operator authentication-operator-69d5d8bf84-vh2n8        1/1     Running     0          5m
      ...
      Copy to Clipboard Toggle word wrap

    2. 以下のコマンドを使用して、直前のコマンドの出力にリスト表示される Pod のログを表示します。

      $ oc logs <pod_name> -n <namespace> 
      1
      Copy to Clipboard Toggle word wrap
      1
      直前のコマンドの出力にあるように、Pod 名および namespace を指定します。

      Pod のログが表示される場合、Kubernetes API サーバーはクラスターマシンと通信できます。

  3. FCP (Fibre Channel Protocol) を使用したインストールでは、マルチパスを有効にするために追加の手順が必要です。インストール時にマルチパスを有効にしないでください。

    詳細は、インストール後のマシン設定タスク ドキュメントで、「RHCOS でのカーネル引数を使用したマルチパスの有効化」を参照してください。

2.5.12. OpenShift Container Platform の Telemetry アクセス

OpenShift Container Platform 4.20 では、Telemetry サービスにもインターネットアクセスが必要です。Telemetry サービスは、クラスターの健全性と更新の成功に関するメトリクスを提供するためにデフォルトで実行されます。クラスターがインターネットに接続されている場合、Telemetry は自動的に実行され、クラスターは OpenShift Cluster Manager に登録されます。

OpenShift Cluster Manager インベントリーが正常である (Telemetry によって自動的に維持、または OpenShift Cluster Manager を使用して手動で維持) ことを確認した後に、subscription watch を使用 して、アカウントまたはマルチクラスターレベルで OpenShift Container Platform サブスクリプションを追跡します。

2.5.13. 次のステップ

2.6. 非接続環境で IBM Z および IBM LinuxONE に RHEL KVM を使用したクラスターをインストールする

OpenShift Container Platform バージョン 4.20 では、非接続環境で、ユーザーがプロビジョニングする IBM Z® または IBM® LinuxONE インフラストラクチャーにクラスターをインストールできます。

注記

このドキュメントは IBM Z® のみを参照しますが、これに含まれるすべての情報は IBM® LinuxONE にも適用されます。

2.6.1. 前提条件

2.6.2. ネットワークが制限された環境でのインストールについて

OpenShift Container Platform 4.20 では、ソフトウェアコンポーネントを取得するためにインターネットへのアクティブな接続を必要としないインストールを実行できます。ネットワークが制限された環境のインストールは、クラスターのインストール先となるクラウドプラットフォームに応じて、installer-provisioned infrastructure または user-provisioned infrastructure を使用して実行できます。

クラウドプラットフォーム上でネットワークが制限されたインストールの実行を選択した場合でも、そのクラウド API へのアクセスが必要になります。Amazon Web Service の Route 53 DNS や IAM サービスなどの一部のクラウド機能には、インターネットアクセスが必要です。ネットワークによっては、ベアメタルハードウェア、Nutanix、または VMware vSphere へのインストールに必要なインターネットアクセスが少なくて済む場合があります。

ネットワークが制限されたインストールを完了するには、OpenShift イメージレジストリーのコンテンツをミラーリングし、インストールメディアを含むレジストリーを作成する必要があります。このミラーは、インターネットと制限されたネットワークの両方にアクセスできるミラーホストで、または制限に対応する他の方法を使用して作成できます。

重要

user-provisioned installation の設定は複雑であるため、user-provisioned infrastructure を使用してネットワークが制限されたインストールを試行する前に、標準的な user-provisioned infrastructure を実行することを検討してください。このテストが完了すると、ネットワークが制限されたインストール時に発生する可能性のある問題の切り分けやトラブルシューティングがより容易になります。

2.6.2.1. その他の制限

ネットワークが制限された環境のクラスターには、以下の追加の制限および制約があります。

  • ClusterVersion ステータスには Unable to retrieve available updates エラーが含まれます。
  • デフォルトでは、必要なイメージストリームタグにアクセスできないため、開発者カタログのコンテンツは使用できません。

2.6.3. user-provisioned infrastructure の準備

user-provisioned infrastructure に OpenShift Container Platform をインストールする前に、基礎となるインフラストラクチャーを準備する必要があります。

このセクションでは、OpenShift Container Platform インストールの準備としてクラスターインフラストラクチャーを設定するために必要な手順の概要を説明します。これには、クラスターノード用の IP ネットワークおよびネットワーク接続を設定し、ファイアウォール経由で必要なポートを有効にし、必要な DNS および負荷分散インフラストラクチャーの設定が含まれます。

準備後、クラスターインフラストラクチャーは、user-provisioned infrastructure を使用したクラスターの要件 セクションで説明されている要件を満たす必要があります。

前提条件

手順

  1. DHCP を使用して IP ネットワーク設定をクラスターノードに提供する場合は、DHCP サービスを設定します。

    1. ノードの永続 IP アドレスを DHCP サーバー設定に追加します。設定で、関連するネットワークインターフェイスの MAC アドレスを、各ノードの目的の IP アドレスと一致させます。
    2. DHCP を使用してクラスターマシンの IP アドレスを設定する場合、マシンは DHCP を介して DNS サーバー情報も取得します。DHCP サーバー設定を介してクラスターノードが使用する永続 DNS サーバーアドレスを定義します。

      注記

      DHCP サービスを使用しない場合、IP ネットワーク設定と DNS サーバーのアドレスを RHCOS インストール時にノードに指定する必要があります。ISO イメージからインストールしている場合は、ブート引数として渡すことができます。静的 IP プロビジョニングと高度なネットワークオプションの詳細は、RHCOS のインストールと OpenShift Container Platform ブートストラッププロセスの開始 のセクションを参照してください。

    3. DHCP サーバー設定でクラスターノードのホスト名を定義します。ホスト名に関する考慮事項の詳細は、DHCP を使用したクラスターノードのホスト名の設定 セクションを参照してください。

      注記

      DHCP サービスを使用しない場合、クラスターノードは逆引き DNS ルックアップを介してホスト名を取得します。

  2. Red Hat Enterprise Linux CoreOS (RHCOS) の高速インストールまたは Red Hat Enterprise Linux CoreOS (RHCOS) のフルインストールのいずれかの実行を選択します。フルインストールでは、HTTP または HTTPS サーバーを設定し、Ignition ファイルを提供し、イメージをクラスターノードにインストールする必要があります。高速インストールの場合、HTTP または HTTPS サーバーは必要はありませんが、DHCP サーバーが必要です。「高速インストール: Red Hat Enterprise Linux CoreOS (RHCOS) マシンの作成」および「フルインストール: Red Hat Enterprise Linux CoreOS (RHCOS) マシンの作成」のセクションを参照してください。
  3. ネットワークインフラストラクチャーがクラスターコンポーネント間の必要なネットワーク接続を提供することを確認します。要件に関する詳細は、user-provisioned infrastructure のネットワーク要件 のセクションを参照してください。
  4. OpenShift Container Platform クラスターコンポーネントで通信するために必要なポートを有効にするようにファイアウォールを設定します。必要なポートの詳細は、user-provisioned infrastructure のネットワーク要件 のセクションを参照してください。

    重要

    デフォルトで、ポート 1936 は OpenShift Container Platform クラスターにアクセスできます。これは、各コントロールプレーンノードがこのポートへのアクセスを必要とするためです。

    Ingress ロードバランサーを使用してこのポートを公開しないでください。これを実行すると、Ingress コントローラーに関連する統計やメトリクスなどの機密情報が公開される可能性があるためです。

  5. クラスターに必要な DNS インフラストラクチャーを設定します。

    1. Kubernetes API、アプリケーションワイルドカード、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンの DNS 名前解決を設定します。
    2. Kubernetes API、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンの逆引き DNS 解決を設定します。

      OpenShift Container Platform DNS 要件の詳細は、user-provisioned DNS 要件 のセクションを参照してください。

  6. DNS 設定を検証します。

    1. インストールノードから、Kubernetes API、ワイルドカードルート、およびクラスターノードのレコード名に対して DNS ルックアップを実行します。応答の IP アドレスが正しいコンポーネントに対応することを確認します。
    2. インストールノードから、ロードバランサーとクラスターノードの IP アドレスに対して逆引き DNS ルックアップを実行します。応答のレコード名が正しいコンポーネントに対応することを確認します。

      DNS 検証手順の詳細は、user-provisioned infrastructure の DNS 解決の検証 のセクションを参照してください。

  7. 必要な API およびアプリケーションの Ingress 負荷分散インフラストラクチャーをプロビジョニングします。要件に関する詳細は、user-provisioned infrastructure の負荷分散要件 のセクションを参照してください。
注記

一部の負荷分散ソリューションでは、負荷分散を初期化する前に、クラスターノードの DNS 名前解決を有効化する必要があります。

2.6.4. インストール設定ファイルの手動作成

クラスターをインストールするには、インストール設定ファイルを手動で作成する必要があります。

前提条件

  • インストールプログラムで使用するための SSH 公開鍵がローカルマシン上に存在する。この鍵は、デバッグや障害復旧のために、クラスターノードへの SSH 認証に使用できます。
  • OpenShift Container Platform インストールプログラムとクラスターのプルシークレットを取得している。

手順

  1. 必要なインストールアセットを保存するためのインストールディレクトリーを作成します。

    $ mkdir <installation_directory>
    Copy to Clipboard Toggle word wrap
    重要

    このディレクトリーは必ず作成してください。ブートストラップ X.509 証明書などの一部のインストールアセットは、有効期限が短いため、インストールディレクトリーを再利用しないでください。別のクラスターインストールの個別のファイルを再利用する必要がある場合は、それらをディレクトリーにコピーすることができます。ただし、インストールアセットのファイル名はリリース間で変更される可能性があります。インストールファイルを以前のバージョンの OpenShift Container Platform からコピーする場合は注意してください。

  2. 提供されているサンプルの install-config.yaml ファイルテンプレートをカスタマイズし、ファイルを <installation_directory> に保存します。

    注記

    この設定ファイルの名前を install-config.yaml と付ける必要があります。

  3. 多くのクラスターのインストールに使用できるように、install-config.yaml ファイルをバックアップします。

    重要

    インストールプロセスの次のステップで install-config.yaml ファイルを使用するため、今すぐこのファイルをバックアップしてください。

2.6.4.1. IBM Z のサンプル install-config.yaml ファイル

install-config.yaml ファイルをカスタマイズして、OpenShift Container Platform クラスターのプラットフォームに関する詳細を指定するか、必要なパラメーターの値を変更することができます。

apiVersion: v1
baseDomain: example.com 
1

compute: 
2

- hyperthreading: Enabled 
3

  name: worker
  replicas: 0 
4

  architecture: s390x
controlPlane: 
5

  hyperthreading: Enabled 
6

  name: master
  replicas: 3 
7

  architecture: s390x
metadata:
  name: test 
8

networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14 
9

    hostPrefix: 23 
10

  networkType: OVNKubernetes 
11

  serviceNetwork: 
12

  - 172.30.0.0/16
platform:
  none: {} 
13

fips: false 
14

pullSecret: '{"auths":{"<local_registry>": {"auth": "<credentials>","email": "you@example.com"}}}' 
15

sshKey: 'ssh-ed25519 AAAA...' 
16

additionalTrustBundle: | 
17

  -----BEGIN CERTIFICATE-----
  ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  -----END CERTIFICATE-----
imageContentSources: 
18

- mirrors:
  - <local_repository>/ocp4/openshift4
  source: quay.io/openshift-release-dev/ocp-release
- mirrors:
  - <local_repository>/ocp4/openshift4
  source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
Copy to Clipboard Toggle word wrap
1
クラスターのベースドメイン。すべての DNS レコードはこのベースのサブドメインである必要があり、クラスター名が含まれる必要があります。
2 5
controlPlane セクションは単一マッピングですが、compute セクションはマッピングのシーケンスになります。複数の異なるデータ構造の要件を満たすには、compute セクションの最初の行はハイフン - で始め、controlPlane セクションの最初の行はハイフンで始めることができません。1 つのコントロールプレーンプールのみが使用されます。
3 6
同時マルチスレッド (SMT) またはハイパースレッディングを有効/無効にするかどうかを指定します。デフォルトでは、SMT はマシンのコアのパフォーマンスを上げるために有効にされます。パラメーター値を Disabled に設定するとこれを無効にすることができます。SMT を無効にする場合、これをすべてのクラスターマシンで無効にする必要があります。これにはコントロールプレーンとコンピュートマシンの両方が含まれます。
注記

同時マルチスレッド (SMT) はデフォルトで有効になっています。SMT が OpenShift Container Platform ノードで利用できない場合、hyperthreading パラメーターは影響を受けません。

重要

OpenShift Container Platform ノードまたは install-config.yaml ファイルであるかに関係なく hyperthreading を無効にする場合、容量計画においてマシンのパフォーマンスの大幅な低下が考慮に入れられていることを確認します。

4
OpenShift Container Platform を user-provisioned infrastructure にインストールする場合は、この値を 0 に設定する必要があります。installer-provisioned installation では、パラメーターはクラスターが作成し、管理するコンピュートマシンの数を制御します。user-provisioned installation では、クラスターのインストールの終了前にコンピュートマシンを手動でデプロイする必要があります。
注記

3 ノードクラスターをインストールする場合は、Red Hat Enterprise Linux CoreOS (RHCOS) マシンをインストールする際にコンピュートマシンをデプロイしないでください。

7
クラスターに追加するコントロールプレーンマシンの数。クラスターをこれらの値をクラスターの etcd エンドポイント数として使用するため、値はデプロイするコントロールプレーンマシンの数に一致する必要があります。
8
DNS レコードに指定したクラスター名。
9
Pod IP アドレスの割り当てに使用する IP アドレスのブロック。このブロックは既存の物理ネットワークと重複できません。これらの IP アドレスは Pod ネットワークに使用されます。外部ネットワークから Pod にアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定する必要があります。
注記

クラス E の CIDR 範囲は、将来の使用のために予約されています。クラス E CIDR 範囲を使用するには、ネットワーク環境がクラス E CIDR 範囲内の IP アドレスを受け入れるようにする必要があります。

10
それぞれの個別ノードに割り当てるサブネット接頭辞長。たとえば、hostPrefix23 に設定されている場合、各ノードに指定の cidr から /23 サブネットが割り当てられます。これにより、510 (2^(32 - 23) - 2) Pod IP アドレスが許可されます。外部ネットワークからのノードへのアクセスを提供する必要がある場合には、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
11
インストールするクラスターネットワークプラグイン。サポートされる値はデフォルト値の OVNKubernetes のみです。
12
サービス IP アドレスに使用する IP アドレスプール。1 つの IP アドレスプールのみを入力できます。このブロックは既存の物理ネットワークと重複できません。外部ネットワークからサービスにアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
13
プラットフォームを none に設定する必要があります。IBM Z® インフラストラクチャー用に追加のプラットフォーム設定変数を指定できません。
重要

プラットフォームタイプ none でインストールされたクラスターは、Machine API を使用したコンピューティングマシンの管理など、一部の機能を使用できません。この制限は、クラスターに接続されている計算マシンが、通常はこの機能をサポートするプラットフォームにインストールされている場合でも適用されます。このパラメーターは、インストール後に変更することはできません。

14
FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
重要

クラスターで FIPS モードを有効にするには、FIPS モードで動作するように設定された Red Hat Enterprise Linux (RHEL) コンピューターからインストールプログラムを実行する必要があります。RHEL で FIPS モードを設定する方法の詳細は、RHEL から FIPS モードへの切り替え を参照してください。

FIPS モードでブートされた Red Hat Enterprise Linux (RHEL) または Red Hat Enterprise Linux CoreOS (RHCOS) を実行する場合、OpenShift Container Platform コアコンポーネントは、x86_64、ppc64le、および s390x アーキテクチャーのみで、FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用します。

15
<local_registry> には、レジストリードメイン名と、ミラーレジストリーがコンテンツを提供するために使用するポートをオプションで指定します。例: registry.example.com または registry.example.com:5000<credentials> に、ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードを指定します。
16
Red Hat Enterprise Linux CoreOS (RHCOS) の core ユーザーの SSH 公開鍵。
注記

インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、ssh-agent プロセスが使用する SSH キーを指定します。

17
additionalTrustBundle パラメーターおよび値を追加します。この値は、ミラーレジストリーに使用した証明書ファイルの内容である必要があります。証明書ファイルは、既存の信頼できる認証局、またはミラーレジストリー用に生成した自己署名証明書のいずれかです。
18
リポジトリーのミラーリングに使用したコマンドの出力に従って、imageContentSources セクションを指定します。
重要
  • oc adm release mirror コマンドを使用する場合は、imageContentSources セクションの出力を使用します。
  • oc mirror コマンドを使用する場合は、コマンドの実行によって生成される ImageContentSourcePolicy ファイルの repositoryDigestMirrors セクションを使用します。
  • ImageContentSourcePolicy は非推奨になりました。詳細は、イメージレジストリーリポジトリーミラーリングの設定 を参照してください。
2.6.4.2. インストール時のクラスター全体のプロキシーの設定

実稼働環境では、インターネットへの直接アクセスを拒否し、代わりに HTTP または HTTPS プロキシーを使用することができます。プロキシー設定を install-config.yaml ファイルで行うことにより、新規の OpenShift Container Platform クラスターをプロキシーを使用するように設定できます。

前提条件

  • 既存の install-config.yaml ファイルがある。
  • クラスターがアクセスする必要のあるサイトを確認済みで、それらのいずれかがプロキシーをバイパスする必要があるかどうかを判別している。デフォルトで、すべてのクラスター Egress トラフィック (クラスターをホストするクラウドに関するクラウドプロバイダー API に対する呼び出しを含む) はプロキシーされます。プロキシーを必要に応じてバイパスするために、サイトを Proxy オブジェクトの spec.noProxy フィールドに追加している。

    注記

    Proxy オブジェクトの status.noProxy フィールドには、インストール設定の networking.machineNetwork[].cidrnetworking.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) も設定されます。

手順

  1. 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.com 
    3
    
    additionalTrustBundle: | 
    4
    
        -----BEGIN CERTIFICATE-----
        <MY_TRUSTED_CA_CERT>
        -----END CERTIFICATE-----
    additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle> 
    5
    Copy to Clipboard Toggle word wrap
    1
    クラスター外の HTTP 接続を作成するために使用するプロキシー URL。URL スキームは http である必要があります。
    2
    クラスター外で HTTPS 接続を作成するために使用するプロキシー URL。
    3
    プロキシーから除外するための宛先ドメイン名、IP アドレス、または他のネットワーク CIDR のコンマ区切りのリスト。サブドメインのみと一致するように、ドメインの前に . を付けます。たとえば、.y.comx.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 config 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
    Copy to Clipboard Toggle word wrap
  2. ファイルを保存し、OpenShift Container Platform のインストール時にこれを参照します。

インストールプログラムは、指定の install-config.yaml ファイルのプロキシー設定を使用する cluster という名前のクラスター全体のプロキシーを作成します。プロキシー設定が指定されていない場合、cluster Proxy オブジェクトが依然として作成されますが、これには spec がありません。

注記

cluster という名前の Proxy オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。

2.6.4.3. 3 ノードクラスターの設定

オプションで、3 台のコントロールプレーンマシンのみで構成される最小の 3 つのノードクラスターにゼロコンピュートマシンをデプロイできます。これにより、テスト、開発、および実稼働に使用するための小規模なリソース効率の高いクラスターが、クラスター管理者および開発者に提供されます。

3 ノードの OpenShift Container Platform 環境では、3 つのコントロールプレーンマシンがスケジュール対象となります。つまり、アプリケーションのワークロードがそれらで実行されるようにスケジュールされます。

前提条件

  • 既存の install-config.yaml ファイルがある。

手順

  • 以下の compute スタンザに示されるように、コンピュートレプリカの数が install-config.yaml ファイルで 0 に設定されることを確認します。

    compute:
    - name: worker
      platform: {}
      replicas: 0
    Copy to Clipboard Toggle word wrap
    注記

    デプロイするコンピュートマシンの数にかかわらず、OpenShift Container Platform を user-provisioned infrastructure にインストールする際に、コンピュートマシンの replicas パラメーターの値を 0 に設定する必要があります。installer-provisioned installation では、パラメーターはクラスターが作成し、管理するコンピュートマシンの数を制御します。これは、コンピュートマシンが手動でデプロイされる、user-provisioned installation には適用されません。

    注記

    コントロールプレーンノードの推奨リソースは 6 vCPU および 21 GB です。コントロールプレーンノードが 3 つの場合には、これは最小の 5 ノードクラスターと同等のメモリー + vCPU です。3 つのノードをバックする必要があります。それぞれに、SMT2 が有効な IFL が 3 つ含まれる 120 GB ディスクにインストールします。各コントロールプレーンノードのテスト済みの最小設定とは、120 GB ディスクに 3 つの vCPU および 10 GB が指定された設定です。

3 ノードのクラスターのインストールで、以下の手順を実行します。

  • ゼロ (0) コンピュートノードで 3 ノードクラスターをデプロイする場合、Ingress コントローラー Pod はコントロールプレーンノードで実行されます。3 ノードクラスターデプロイメントでは、HTTP および HTTPS トラフィックをコントロールプレーンノードにルーティングするようにアプリケーション Ingress ロードバランサーを設定する必要があります。詳細は、user-provisioned infrastructure の負荷分散要件 のセクションを参照してください。
  • 以下の手順で Kubernetes マニフェストファイルを作成する際に、<installation_directory>/manifests/cluster-scheduler-02-config.yml ファイルの mastersSchedulable パラメーターが true に設定されていることを確認します。これにより、アプリケーションのワークロードがコントロールプレーンノードで実行できます。
  • Red Hat Enterprise Linux CoreOS (RHCOS) マシンを作成する際は、コンピュートノードをデプロイしないでください。

2.6.5. Cluster Network Operator の設定

クラスターネットワークの設定は、Cluster Network Operator (CNO) 設定の一部として指定され、cluster という名前のカスタムリソース (CR) オブジェクトに保存されます。CR は operator.openshift.io API グループの Network API のフィールドを指定します。

CNO 設定は、Network.config.openshift.io API グループの Network API からクラスターのインストール時に以下のフィールドを継承します。

clusterNetwork
Pod IP アドレスの割り当てに使用する IP アドレスプール。
serviceNetwork
サービスの IP アドレスプール。
defaultNetwork.type
クラスターネットワークプラグイン。OVNKubernetes は、インストール時にサポートされる唯一のプラグインです。

defaultNetwork オブジェクトのフィールドを cluster という名前の CNO オブジェクトに設定することにより、クラスターのクラスターネットワークプラグイン設定を指定できます。

2.6.5.1. Cluster Network Operator 設定オブジェクト

Cluster Network Operator (CNO) のフィールドは以下の表で説明されています。

Expand
表2.44 Cluster Network Operator 設定オブジェクト
フィールド説明

metadata.name

string

CNO オブジェクトの名前。この名前は常に cluster です。

spec.clusterNetwork

array

Pod IP アドレスの割り当て、サブネット接頭辞の長さのクラスター内の個別ノードへの割り当てに使用される IP アドレスのブロックを指定するリストです。以下に例を示します。

spec:
  clusterNetwork:
  - cidr: 10.128.0.0/19
    hostPrefix: 23
  - cidr: 10.128.32.0/19
    hostPrefix: 23
Copy to Clipboard Toggle word wrap

spec.serviceNetwork

array

サービスの IP アドレスのブロック。OVN-Kubernetes ネットワークプラグインは、サービスネットワークに対して単一の IP アドレスブロックのみをサポートします。以下に例を示します。

spec:
  serviceNetwork:
  - 172.30.0.0/14
Copy to Clipboard Toggle word wrap

マニフェストを作成する前に、このフィールドを install-config.yaml ファイルでのみカスタマイズすることができます。この値は、マニフェストファイルでは読み取り専用です。

spec.defaultNetwork

object

クラスターネットワークのネットワークプラグインを設定します。

spec.additionalRoutingCapabilities.providers

array

この設定により、動的ルーティングプロバイダーが有効になります。ルートアドバタイズ機能には、FRR ルーティング機能プロバイダーが必要です。サポートされている値は FRR のみです。

  • FRR: FRR ルーティングプロバイダー
spec:
  additionalRoutingCapabilities:
    providers:
    - FRR
Copy to Clipboard Toggle word wrap

spec.kubeProxyConfig

object

このオブジェクトのフィールドは、kube-proxy 設定を指定します。OVN-Kubernetes クラスターネットワークプラグインを使用している場合、kube-proxy 設定は機能しません。

重要

複数のネットワークにオブジェクトをデプロイする必要があるクラスターの場合は、install-config.yaml ファイルで定義されている各ネットワークタイプの clusterNetwork.hostPrefix パラメーターに、必ず同じ値を指定してください。clusterNetwork.hostPrefix パラメーターにそれぞれ異なる値を設定すると、OVN-Kubernetes ネットワークプラグインに影響が及び、異なるノード間のオブジェクトトラフィックをプラグインが効果的にルーティングできなくなる可能性があります。

2.6.5.1.1. defaultNetwork オブジェクト設定

defaultNetwork オブジェクトの値は、以下の表で定義されます。

Expand
表2.45 defaultNetwork オブジェクト
フィールド説明

type

string

OVNKubernetes。Red Hat OpenShift Networking ネットワークプラグインは、インストール中に選択されます。この値は、クラスターのインストール後は変更できません。

注記

OpenShift Container Platform は、デフォルトで OVN-Kubernetes ネットワークプラグインを使用します。

ovnKubernetesConfig

object

このオブジェクトは、OVN-Kubernetes ネットワークプラグインに対してのみ有効です。

2.6.5.1.1.1. OVN-Kubernetes ネットワークプラグインの設定

次の表では、OVN-Kubernetes ネットワークプラグインの設定フィールドを説明します。

Expand
表2.46 ovnKubernetesConfig オブジェクト
フィールド説明

mtu

integer

Geneve (Generic Network Virtualization Encapsulation) オーバーレイネットワークの MTU (maximum transmission unit)。これは、プライマリーネットワークインターフェイスの MTU に基づいて自動的に検出されます。通常、検出された MTU をオーバーライドする必要はありません。

自動検出した値が予想される値ではない場合は、ノード上のプライマリーネットワークインターフェイスの MTU が正しいことを確認します。このオプションを使用して、ノード上のプライマリーネットワークインターフェイスの MTU 値を変更することはできません。

クラスターで異なるノードに異なる MTU 値が必要な場合、この値をクラスター内の最小の MTU 値よりも 100 小さく設定する必要があります。たとえば、クラスター内の一部のノードでは MTU が 9001 であり、MTU が 1500 のクラスターもある場合には、この値を 1400 に設定する必要があります。

genevePort

integer

すべての Geneve パケットに使用するポート。デフォルト値は 6081 です。この値は、クラスターのインストール後は変更できません。

ipsecConfig

object

IPsec 設定をカスタマイズするための設定オブジェクトを指定します。

ipv4

object

IPv4 設定の設定オブジェクトを指定します。

ipv6

object

IPv6 設定の設定オブジェクトを指定します。

policyAuditConfig

object

ネットワークポリシー監査ロギングをカスタマイズする設定オブジェクトを指定します。指定されていない場合は、デフォルトの監査ログ設定が使用されます。

routeAdvertisements

string

クラスターネットワークルートをアドバタイズするかどうかを指定します。デフォルト値は、Disabled です。

  • Enabled: ルートをクラスターネットワークにインポートし、RouteAdvertisements オブジェクトで設定されているとおりに、クラスターネットワークルートをアドバタイズします。
  • Disabled: クラスターネットワークにルートをインポートしたり、クラスターネットワークルートをアドバタイズしたりしないでください。

gatewayConfig

object

オプション: Egress トラフィックのノードゲートウェイへの送信方法をカスタマイズするための設定オブジェクトを指定します。有効な値は SharedLocal です。デフォルト値は Shared です。デフォルト設定では、Open vSwitch (OVS) がトラフィックをノード IP インターフェイスに直接出力します。Local 設定では、トラフィックがホストネットワークを通過し、その結果、ホストのルーティングテーブルに適用されます。

注記

Egress トラフィックの移行中は、Cluster Network Operator (CNO) が変更を正常にロールアウトするまで、ワークロードとサービストラフィックに多少の中断が発生することが予想されます。

Expand
表2.47 ovnKubernetesConfig.ipv4 object
フィールド説明

internalTransitSwitchSubnet

string

既存のネットワークインフラストラクチャーが 100.88.0.0/16 IPv4 サブネットと重複している場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。east-west トラフィックを可能にする分散トランジットスイッチのサブネット。このサブネットは、OVN-Kubernetes またはホスト自体で使用される他のサブネットと重複することはできません。クラスター内のノードごとに 1 つの IP アドレスを収容できる必要があります。

デフォルト値は 100.88.0.0/16 です。

internalJoinSubnet

string

既存のネットワークインフラストラクチャーが 100.64.0.0/16 IPv4 サブネットと重複している場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。IP アドレス範囲が、OpenShift Container Platform インストールで使用される他のサブネットと重複しないようにする必要があります。IP アドレス範囲は、クラスターに追加できるノードの最大数より大きくする必要があります。たとえば、clusterNetwork.cidr 値が 10.128.0.0/14 で、clusterNetwork.hostPrefix 値が /23 の場合、ノードの最大数は 2^(23-14)=512 です。

デフォルト値は 100.64.0.0/16 です。

Expand
表2.48 ovnKubernetesConfig.ipv6 object
フィールド説明

internalTransitSwitchSubnet

string

既存のネットワークインフラストラクチャーが fd97::/64 IPv6 サブネットと重複する場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。east-west トラフィックを可能にする分散トランジットスイッチのサブネット。このサブネットは、OVN-Kubernetes またはホスト自体で使用される他のサブネットと重複することはできません。クラスター内のノードごとに 1 つの IP アドレスを収容できる必要があります。

デフォルト値は fd97::/64 です。

internalJoinSubnet

string

既存のネットワークインフラストラクチャーが fd98::/64 IPv6 サブネットと重複する場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。IP アドレス範囲が、OpenShift Container Platform インストールで使用される他のサブネットと重複しないようにする必要があります。IP アドレス範囲は、クラスターに追加できるノードの最大数より大きくする必要があります。

デフォルト値は fd98::/64 です。

Expand
表2.49 policyAuditConfig オブジェクト
フィールド説明

rateLimit

integer

ノードごとに毎秒生成されるメッセージの最大数。デフォルト値は、1 秒あたり 20 メッセージです。

maxFileSize

integer

監査ログの最大サイズ (バイト単位)。デフォルト値は 50000000 (50MB) です。

maxLogFiles

integer

保持されるログファイルの最大数。

destination

string

以下の追加の監査ログターゲットのいずれかになります。

libc
ホスト上の journald プロセスの libc syslog() 関数。
udp:<host>:<port>
syslog サーバー。<host>:<port> を syslog サーバーのホストおよびポートに置き換えます。
unix:<file>
<file> で指定された Unix ドメインソケットファイル。
null
監査ログを追加のターゲットに送信しないでください。

syslogFacility

string

RFC5424 で定義される kern などの syslog ファシリティー。デフォルト値は local0 です。

Expand
表2.50 gatewayConfig オブジェクト
フィールド説明

routingViaHost

boolean

Pod からホストネットワークスタックへの Egress トラフィックを送信するには、このフィールドを true に設定します。インストールおよびアプリケーションがカーネルルーティングテーブルに手動設定されたルートに依存するなど非常に特化されている場合には、Egress トラフィックをホストネットワークスタックにルーティングすることを推奨します。デフォルトでは、Egress トラフィックは OVN で処理され、クラスターを終了するために処理され、トラフィックはカーネルルーティングテーブルの特殊なルートによる影響を受けません。デフォルト値は false です。

このフィールドで、Open vSwitch ハードウェアオフロード機能との対話が可能になりました。このフィールドを true に設定すると、Egress トラフィックがホストネットワークスタックで処理されるため、パフォーマンス的に、オフロードによる利点は得られません。

ipForwarding

object

Network リソースの ipForwarding 仕様を使用して、OVN-Kubernetes マネージドインターフェイス上のすべてのトラフィックの IP フォワーディングを制御できます。Kubernetes 関連のトラフィックの IP フォワーディングのみを許可するには、Restricted を指定します。すべての IP トラフィックの転送を許可するには、Global を指定します。新規インストールの場合、デフォルトは Restricted です。OpenShift Container Platform 4.14 以降に更新する場合、デフォルトは Global です。

注記

デフォルト値の Restricted では、IP 転送がドロップされるように設定されます。

ipv4

object

オプション: IPv4 アドレスのホストからサービスへのトラフィック用の内部 OVN-Kubernetes マスカレードアドレスを設定するオブジェクトを指定します。

ipv6

object

オプション: IPv6 アドレスのホストからサービスへのトラフィックの内部 OVN-Kubernetes マスカレードアドレスを設定するオブジェクトを指定します。

Expand
表2.51 gatewayConfig.ipv4 object
フィールド説明

internalMasqueradeSubnet

string

ホストからサービスへのトラフィックを有効にするために内部的に使用されるマスカレード IPv4 アドレス。ホストは、これらの IP アドレスと共有ゲートウェイブリッジインターフェイスを使用して設定されます。デフォルト値は 169.254.169.0/29 です。

重要

OpenShift Container Platform 4.17 以降のバージョンでは、クラスターはデフォルトのマスカレードサブネットとして 169.254.0.0/17 を使用します。アップグレードされたクラスターの場合は、デフォルトのマスカレードサブネットに変更がありません。

Expand
表2.52 gatewayConfig.ipv6 object
フィールド説明

internalMasqueradeSubnet

string

ホストからサービスへのトラフィックを有効にするために内部的に使用されるマスカレード IPv6 アドレス。ホストは、これらの IP アドレスと共有ゲートウェイブリッジインターフェイスを使用して設定されます。デフォルト値は fd69::/125 です。

重要

OpenShift Container Platform 4.17 以降のバージョンでは、クラスターはデフォルトのマスカレードサブネットとして fd69::/112 を使用します。アップグレードされたクラスターの場合は、デフォルトのマスカレードサブネットに変更がありません。

Expand
表2.53 ipsecConfig オブジェクト
フィールド説明

mode

string

IPsec 実装の動作を指定します。次の値のいずれかである必要があります。

  • Disabled: クラスターノードで IPsec が有効になりません。
  • External: 外部ホストとのネットワークトラフィックに対して IPsec が有効になります。
  • Full: Pod トラフィックおよび外部ホストとのネットワークトラフィックに対して IPsec が有効になります。

IPSec が有効な OVN-Kubernetes 設定の例

defaultNetwork:
  type: OVNKubernetes
  ovnKubernetesConfig:
    mtu: 1400
    genevePort: 6081
    ipsecConfig:
      mode: Full
Copy to Clipboard Toggle word wrap

2.6.6. Kubernetes マニフェストおよび Ignition 設定ファイルの作成

一部のクラスター定義ファイルを変更し、クラスターマシンを手動で起動する必要があるため、クラスターがマシンを設定するために必要な Kubernetes マニフェストと Ignition 設定ファイルを生成する必要があります。

インストール設定ファイルは Kubernetes マニフェストに変換されます。マニフェストは Ignition 設定ファイルにラップされます。これはクラスターマシンを設定するために後で使用されます。

重要
  • OpenShift Container Platform のインストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の node-bootstrapper 証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。
  • 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
注記

マニフェストおよび Ignition ファイルを生成するインストールプログラムはアーキテクチャー固有であり、クライアントイメージミラー から取得できます。インストールプログラムの Linux バージョンは s390x でのみ実行されます。このインストーラープログラムは、Mac OS バージョンとしても利用できます。

前提条件

  • OpenShift Container Platform インストールプログラムを取得していること。ネットワークが制限されたインストールでは、これらのファイルがミラーホスト上に置かれます。
  • install-config.yaml インストール設定ファイルを作成していること。

手順

  1. OpenShift Container Platform のインストールプログラムが含まれるディレクトリーに切り替え、クラスターの Kubernetes マニフェストを生成します。

    $ ./openshift-install create manifests --dir <installation_directory> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、作成した install-config.yaml ファイルが含まれるインストールディレクトリーを指定します。
    警告

    3 ノードクラスターをインストールしている場合は、以下の手順を省略してコントロールプレーンノードをスケジュール対象にします。

    重要

    コントロールプレーンノードをデフォルトのスケジュール不可からスケジュール可に設定するには、追加のサブスクリプションが必要です。これは、コントロールプレーンノードがコンピュートノードになるためです。

  2. <installation_directory>/manifests/cluster-scheduler-02-config.yml Kubernetes マニフェストファイルの mastersSchedulable パラメーターが false に設定されていることを確認します。この設定により、Pod がコントロールプレーンマシンにスケジュールされなくなります。

    1. <installation_directory>/manifests/cluster-scheduler-02-config.yml ファイルを開きます。
    2. mastersSchedulable パラメーターを見つけ、これが false に設定されていることを確認します。
    3. ファイルを保存し、終了します。
  3. Ignition 設定ファイルを作成するには、インストールプログラムが含まれるディレクトリーから以下のコマンドを実行します。

    $ ./openshift-install create ignition-configs --dir <installation_directory> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、同じインストールディレクトリーを指定します。

    Ignition 設定ファイルは、インストールディレクトリー内のブートストラップ、コントロールプレーン、およびコンピュートノード用に作成されます。kubeadmin-password および kubeconfig ファイルが ./<installation_directory>/auth ディレクトリーに作成されます。

    .
    ├── auth
    │   ├── kubeadmin-password
    │   └── kubeconfig
    ├── bootstrap.ign
    ├── master.ign
    ├── metadata.json
    └── worker.ign
    Copy to Clipboard Toggle word wrap

2.6.7. RHCOS のインストールおよび OpenShift Container Platform ブートストラッププロセスの開始

OpenShift Container Platform をプロビジョニングする IBM Z® インフラストラクチャーにインストールするには、Red Hat Enterprise Linux CoreOS (RHCOS) を Red Hat Enterprise Linux (RHEL) ゲスト仮想マシンとしてインストールする必要があります。RHCOS のインストール時に、インストールするマシンのタイプに、OpenShift Container Platform インストールプログラムによって生成された Ignition 設定ファイルを指定する必要があります。適切なネットワーク、DNS、および負荷分散インフラストラクチャーが設定されている場合、OpenShift Container Platform ブートストラッププロセスは RHCOS マシンの再起動後に自動的に開始されます。

事前にパッケージ化された QEMU コピーオンライト (QCOW2) ディスクイメージを使用する RHCOS の高速インストールを実行できます。または、新規の QCOW2 ディスクイメージでフルインストールを実行できます。

システムのセキュリティーをさらに強化するために、ファストトラックインストールに進む前に、オプションで IBM® Secure Execution を使用して RHCOS をインストールできます。

2.6.7.1. IBM Z または IBM LinuxONE 環境のノードの暗号化設定

必要に応じて、IBM Z® または IBM® LinuxONE 上の OpenShift Container Platform コントロールプレーンとコンピュートノードを保護するために、次の 3 つの方法から選択できます。

  • IBM® Secure Execution
  • IBM® Crypto Express (CEX) による Linux Unified Key Setup (LUKS) 暗号化
  • Network Bound Disk Encryption (NBDE)
2.6.7.1.1. IBM Secure Execution を使用した RHCOS のインストール

IBM® Secure Execution を使用して RHCOS をインストールする前に、基礎となるインフラストラクチャーを準備する必要があります。

前提条件

  • IBM® z15 以降、または IBM® LinuxONE III 以降。
  • Red Hat Enterprise Linux (RHEL) 8 以降
  • ブートストラップ Ignition ファイルがあります。ファイルは保護されていないため、他のユーザーが表示および編集できます。
  • インストール後にブートイメージが変更されていないことを確認しました。
  • すべてのノードを IBM® Secure Execution ゲストとして実行する必要があります。

手順

  1. RHEL KVM ホストを準備して、IBM® Secure Execution をサポートします。

    • デフォルトでは、KVM ホストは IBM® Secure Execution モードのゲストをサポートしません。ゲストを IBM® Secure Execution モードでサポートするには、KVM ホストを LPAR モードで起動し、カーネルパラメーターを prot_virt=1 に指定する必要があります。RHEL 8 で prot_virt=1 を有効にするには、次の手順に従います。

      1. /boot/loader/entries/ に移動して、ブートローダー設定ファイル *.conf を変更します。
      2. カーネルコマンドラインパラメーター prot_virt=1 を追加します。
      3. zipl コマンドを実行し、システムを再起動します。

        IBM® Secure Execution for Linux のサポートを使用して正常に始動する KVM ホストは、次のカーネルメッセージを発行します。

        prot_virt: Reserving <amount>MB as ultravisor base storage.
        Copy to Clipboard Toggle word wrap
      4. KVM ホストが IBM® Secure Execution をサポートするようになったことを確認するには、次のコマンドを実行します。

        # cat /sys/firmware/uv/prot_virt_host
        Copy to Clipboard Toggle word wrap

        出力例

        1
        Copy to Clipboard Toggle word wrap

        環境がセキュアホストの環境と一致していると検出された Linux インスタンスの場合、この属性の値は 1 です。他のインスタンスの場合、値は 0 です。

  2. Ignition を介して KVM ゲストにホストキーを追加します。

    最初の起動時に、RHCOS はホストキーを探して、それを使用して自身を再暗号化します。RHCOS は、/etc/se-hostkeys ディレクトリーで ibm-z-hostkey- で始まるファイルを検索します。クラスターが実行されている各マシンのすべてのホストキーは、管理者がディレクトリーにロードする必要があります。最初の起動後、他のマシンで VM を実行することはできません。

    注記

    安全なシステムで Ignition ファイルを準備する必要があります。例えば、別の IBM® Secure Execution ゲストです。

    以下に例を示します。

    {
      "ignition": { "version": "3.0.0" },
      "storage": {
        "files": [
          {
            "path": "/etc/se-hostkeys/ibm-z-hostkey-<your-hostkey>.crt",
            "contents": {
              "source": "data:;base64,<base64 encoded hostkey document>"
            },
            "mode": 420
          },
          {
            "path": "/etc/se-hostkeys/ibm-z-hostkey-<your-hostkey>.crt",
            "contents": {
              "source": "data:;base64,<base64 encoded hostkey document>"
            },
            "mode": 420
          }
        ]
      }
    }
    ```
    Copy to Clipboard Toggle word wrap
    注記

    ノードを複数の IBM Z® マシンで実行できるようにする場合は、必要な数のホストキーを追加できます。

  3. Base64 でエンコードされた文字列を生成するには、次のコマンドを実行します。

    base64 <your-hostkey>.crt
    Copy to Clipboard Toggle word wrap

    IBM® Secure Execution を実行していないゲストと比較すると、イグニションフェーズの前にイメージ全体がランダムに生成された LUKS パスフレーズで暗号化されるため、マシンの最初のブートに時間がかかります。

  4. Ignition 保護の追加

    Ignition 設定ファイルに保存されているシークレットが読み取られたり変更されたりしないようにするには、Ignition 設定ファイルを暗号化する必要があります。

    注記

    必要なセキュリティーを実現するために、IBM® Secure Execution の実行時は、Ignition ロギングとローカルログインがデフォルトで無効になります。

    1. 次のコマンドを実行して、secex-qemu.qcow2 イメージの公開 GPG キーを取得し、そのキーを使用して Ignition 設定を暗号化します。

      gpg --recipient-file /path/to/ignition.gpg.pub --yes --output /path/to/config.ign.gpg --verbose --armor --encrypt /path/to/config.ign
      Copy to Clipboard Toggle word wrap
  5. RHCOS の高速インストールに従って、IBM® Secure Execution QCOW イメージを使用してノードをインストールします。

    注記

    仮想マシンを起動する前に、serial=ignitionserial=ignition_crypted に置き換え、launchSecurity パラメーターを追加します。

検証

RHCOS の高速インストールが完了し、最初の起動時に Ignition が実行したら、復号化が成功したか確認します。

  • 復号化が成功すると、次の例のような出力が予想されます。

    出力例

    [    2.801433] systemd[1]: Starting coreos-ignition-setup-user.service - CoreOS Ignition User Config Setup...
    
    [    2.803959] coreos-secex-ignition-decrypt[731]: gpg: key <key_name>: public key "Secure Execution (secex) 38.20230323.dev.0" imported
    [    2.808874] coreos-secex-ignition-decrypt[740]: gpg: encrypted with rsa4096 key, ID <key_name>, created <yyyy-mm-dd>
    [  OK  ] Finished coreos-secex-igni…S Secex Ignition Config Decryptor.
    Copy to Clipboard Toggle word wrap

  • 復号化に失敗した場合は、次の例のような出力が予想されます。

    出力例

    Starting coreos-ignition-s…reOS Ignition User Config Setup...
    [    2.863675] coreos-secex-ignition-decrypt[729]: gpg: key <key_name>: public key "Secure Execution (secex) 38.20230323.dev.0" imported
    [    2.869178] coreos-secex-ignition-decrypt[738]: gpg: encrypted with RSA key, ID <key_name>
    [    2.870347] coreos-secex-ignition-decrypt[738]: gpg: public key decryption failed: No secret key
    [    2.870371] coreos-secex-ignition-decrypt[738]: gpg: decryption failed: No secret key
    Copy to Clipboard Toggle word wrap

2.6.7.1.2. IBM Z または IBM LinuxONE 環境での CEX 経由の LUKS 暗号化

IBM Z® または IBM® LinuxONE 環境で IBM® Crypto Express (CEX) を介してハードウェアベースの Linux Unified Key Setup (LUKS) 暗号化を有効にするには、追加の手順が必要です。このセクションでは、この手順を詳しく説明します。

前提条件

  • butane ユーティリティーをインストールした。
  • Butane でマシン設定を作成する手順を確認した。

手順

  1. コントロールプレーンとコンピュートノードの Butane 設定ファイルを作成します。

    • ディスク暗号化が設定されたコントロールプレーンノード用に、以下の Butane 設定を使用して main-storage.bu という名前のファイルを作成します。

      variant: openshift
      version: 4.20.0
      metadata:
        name: main-storage
        labels:
          machineconfiguration.openshift.io/role: master
      boot_device:
        layout: s390x-virt
        luks:
          cex:
            enabled: true
      openshift:
        fips: true 
      1
      
        kernel_arguments:
          - rd.luks.key=/etc/luks/cex.key 
      2
      Copy to Clipboard Toggle word wrap
      1
      FIPS モードを有効にするか無効にするかを指定します。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
      2
      デバイスの復号に必要なキーの場所を指定します。この値を変更することはできません。
  2. ignition.platform.id=metal および ignition.firstboot を含むパラメーターファイルを作成します。

    コントロールプレーンマシンのカーネルパラメーターファイルの例

    cio_ignore=all,!condev rd.neednet=1 \
    console=ttysclp0 \
    ignition.firstboot ignition.platform.id=metal \
    coreos.inst.ignition_url=http://<http_server>/master.ign \
    1
    
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
    2
    
    ip=<ip_address>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.zfcp=0.0.5677,0x600606680g7f0056,0x034F000000000000
    Copy to Clipboard Toggle word wrap

    1
    Ignition 設定ファイルの場所を指定します。master.ign または worker.ign を使用します。HTTP および HTTPS プロトコルのみを使用できます。
    2
    起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP および HTTPS プロトコルのみを使用できます。
    注記

    パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

2.6.7.1.3. IBM Z または IBM& LinuxONE 環境での静的 IP を使用した NBDE の設定

IBM Z® または IBM® LinuxONE 環境で NBDE ディスク暗号化を有効にするには、追加の手順が必要です。このセクションで詳しく説明します。

前提条件

  • 外部 Tang サーバーをセットアップした。手順は、Network-Bound Disk Encryption を参照してください。
  • butane ユーティリティーをインストールした。
  • Butane でマシン設定を作成する手順を確認した。

手順

  1. コントロールプレーンとコンピュートノードの Butane 設定ファイルを作成します。

    次のコントロールプレーンノードの Butane 設定の例では、ディスク暗号化用に master-storage.bu という名前のファイルを作成します。

    variant: openshift
    version: 4.20.0
    metadata:
      name: master-storage
      labels:
        machineconfiguration.openshift.io/role: master
    storage:
      luks:
        - clevis:
            tang:
              - thumbprint: QcPr_NHFJammnRCA3fFMVdNBwjs
                url: http://clevis.example.com:7500
          device: /dev/disk/by-partlabel/root
          label: luks-root
          name: root
          wipe_volume: true
      filesystems:
        - device: /dev/mapper/root
          format: xfs
          label: root
          wipe_filesystem: true
    openshift:
      fips: true 
    1
    Copy to Clipboard Toggle word wrap
    1
    FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
  2. 次のコマンドを実行して、マシンを起動するためのカスタマイズされた initramfs ファイルを作成します。

    $ coreos-installer pxe customize \
        /root/rhcos-bootfiles/rhcos-<release>-live-initramfs.s390x.img \
        --dest-device /dev/disk/by-id/scsi-<serial_number> --dest-karg-append \
        ip=<ip_address>::<gateway_ip>:<subnet_mask>::<network_device>:none \
        --dest-karg-append nameserver=<nameserver_ip> \
        --dest-karg-append rd.neednet=1 -o \
        /root/rhcos-bootfiles/<node_name>-initramfs.s390x.img
    Copy to Clipboard Toggle word wrap
    注記

    最初のブートの前に、クラスター内の各ノードの initramfs をカスタマイズし、PXE カーネルパラメーターを追加する必要があります。

  3. ignition.platform.id=metal および ignition.firstboot を含むパラメーターファイルを作成します。

    コントロールプレーンマシンのカーネルパラメーターファイルの例

    cio_ignore=all,!condev rd.neednet=1 \
    console=ttysclp0 \
    ignition.firstboot ignition.platform.id=metal \
    coreos.inst.ignition_url=http://<http_server>/master.ign \
    1
    
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
    2
    
    ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.zfcp=0.0.5677,0x600606680g7f0056,0x034F000000000000 \
    zfcp.allow_lun_scan=0
    Copy to Clipboard Toggle word wrap

    1
    Ignition 設定ファイルの場所を指定します。master.ign または worker.ign を使用します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    2
    起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    注記

    パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

2.6.7.2. 事前にパッケージ化された QCOW2 ディスクイメージを使用した高速インストール

Red Hat Enterprise Linux CoreOS (RHCOS) の高速インストールでマシンを作成するには、事前にパッケージ化された Red Hat Enterprise Linux CoreOS (RHCOS )QEMU コピーオンライト (QCOW2) ディスクイメージをインポートします。

前提条件

  • この手順では RHEL KVM ホストと呼ばれる、KVM を使用する RHEL 8.6 以降で実行されている少なくとも 1 つの LPAR。
  • KVM/QEMU ハイパーバイザーが RHEL KVM ホストにインストーされている
  • ノードのホスト名および逆引き参照を実行できるドメインネームサーバー (DNS)。
  • IP アドレスを提供する DHCP サーバー。

手順

  1. Red Hat カスタマーポータルの 製品のダウンロード ページまたは RHCOS イメージミラー ページから RHEL QEMU コピーオンライト (QCOW2) ディスクイメージファイルを取得します。

    重要

    RHCOS イメージは OpenShift Container Platform の各リリースごとに変更されない可能性があります。インストールする OpenShift Container Platform バージョンと等しいか、それ以下のバージョンの内で最も新しいバージョンのイメージをダウンロードする必要があります。この手順で説明されている適切な RHCOS QCOW2 イメージのみを使用します。

  2. QCOW2 ディスクイメージおよび Ignition ファイルを RHEL KVM ホストの共通ディレクトリーにダウンロードします。

    例: /var/lib/libvirt/images

    注記

    Ignition ファイルは OpenShift Container Platform インストーラーによって生成されます。

  3. 各 KVM ゲストノードの QCOW2 ディスクイメージバッキングファイルで、新しいディスクイメージを作成します。

    $ qemu-img create -f qcow2 -F qcow2 -b /var/lib/libvirt/images/{source_rhcos_qemu} /var/lib/libvirt/images/{vmname}.qcow2 {size}
    Copy to Clipboard Toggle word wrap
  4. Ignition ファイルと新規ディスクイメージを使用して、新規 KVM ゲストノードを作成します。

    $ virt-install --noautoconsole \
       --connect qemu:///system \
       --name <vm_name> \
       --memory <memory_mb> \
       --vcpus <vcpus> \
       --disk <disk> \
       --launchSecurity type="s390-pv" \ 
    1
    
       --import \
       --network network=<virt_network_parm>,mac=<mac_address> \
       --disk path=<ign_file>,format=raw,readonly=on,serial=ignition,startup_policy=optional 
    2
    Copy to Clipboard Toggle word wrap
    1
    IBM® Secure Execution が有効な場合は、launchSecurity type="s390-pv" パラメーターを追加します。
    2
    IBM® Secure Execution が有効な場合は、serial=ignitionserial=ignition_crypted に置き換えます。
2.6.7.3. 新規 QCOW2 ディスクイメージへのフルインストール

新規 QEMU copy-on-write (QCOW2) ディスクイメージのフルインストールでマシンを作成するには、以下の手順を実施します。

前提条件

  • この手順では RHEL KVM ホストと呼ばれる、KVM を使用する RHEL 8.6 以降で実行されている少なくとも 1 つの LPAR。
  • KVM/QEMU ハイパーバイザーが RHEL KVM ホストにインストーされている
  • ノードのホスト名および逆引き参照を実行できるドメインネームサーバー (DNS)。
  • HTTP または HTTPS サーバーが設定されている。

手順

  1. Red Hat カスタマーポータルの 製品のダウンロード ページ、または RHCOS イメージミラー ページから RHEL カーネル、initramfs、および rootfs ファイルを取得します。

    重要

    RHCOS イメージは OpenShift Container Platform の各リリースごとに変更されない可能性があります。インストールする OpenShift Container Platform バージョンと等しいか、それ以下のバージョンの内で最も新しいバージョンのイメージをダウンロードする必要があります。この手順で説明されている適切な RHCOS QCOW2 イメージのみを使用します。

    ファイル名には、OpenShift Container Platform のバージョン番号が含まれます。以下の例のようになります。

    • kernel: rhcos-<version>-live-kernel-<architecture>
    • initramfs: rhcos-<version>-live-initramfs.<architecture>.img
    • rootfs: rhcos-<version>-live-rootfs.<architecture>.img
  2. virt-install を起動する前に、ダウンロードした RHEL ライブカーネル、initramfs、および rootfs、および Ignition ファイルを HTTP または HTTPS サーバーに移動します。

    注記

    Ignition ファイルは OpenShift Container Platform インストーラーによって生成されます。

  3. RHEL カーネル、initramfs、および Ignition ファイル、新規ディスクイメージ、および調整された parm 引数を使用して、新規 KVM ゲストノードを作成します。

    $ virt-install \
       --connect qemu:///system \
       --name <vm_name> \
       --memory <memory_mb> \
       --vcpus <vcpus> \
       --location <media_location>,kernel=<rhcos_kernel>,initrd=<rhcos_initrd> \ / 
    1
    
       --disk <vm_name>.qcow2,size=<image_size>,cache=none,io=native \
       --network network=<virt_network_parm> \
       --boot hd \
       --extra-args "rd.neednet=1" \
       --extra-args "coreos.inst.install_dev=/dev/<block_device>" \
       --extra-args "coreos.inst.ignition_url=http://<http_server>/bootstrap.ign" \
    2
    
       --extra-args "coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img" \
    3
    
       --extra-args "ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns>" \
       --noautoconsole \
       --wait
    Copy to Clipboard Toggle word wrap
    1
    --location パラメーターには、HTTP または HTTPS サーバー上の kernel/initrd の場所を指定します。
    2
    Ignition 設定ファイルの場所を指定します。bootstrap.ignmaster.ign、または worker.ign を使用します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    3
    起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
2.6.7.4. 詳細の RHCOS インストールリファレンス

このセクションでは、Red Hat Enterprise Linux CoreOS (RHCOS) の手動インストールプロセスを変更できるようにするネットワーク設定および他の高度なオプションを説明します。以下の表では、RHCOS ライブインストーラーおよび coreos-installer コマンドで使用できるカーネル引数およびコマンドラインのオプションを説明します。

2.6.7.4.1. ISO インストールのネットワークオプション

ISO イメージから RHCOS をインストールする場合、そのイメージを起動してノードのネットワークを設定する際に手動でカーネル引数を追加できます。ネットワークの引数が指定されていない場合、RHCOS が Ignition 設定ファイルを取得するためにネットワークが必要であることを検知する際に、DHCP が initramfs でアクティベートされます。

重要

ネットワーク引数を手動で追加する場合は、rd.neednet=1 カーネル引数を追加して、ネットワークを initramfs で有効にする必要があります。

以下の表は、ISO インストール用に RHCOS ノードでネットワークおよびボンディングを設定する例を示しています。この例では、ip= および nameserver= カーネル引数の使用方法を説明します。

注記

カーネル引数 ( ip= and nameserver=) を追加するときは、順序付けが重要です。

ネットワークオプションは、システムの起動時に dracut ツールに渡されます。dracut でサポートされるネットワークオプションの詳細は、man ページの dracut.cmdline を参照してください。

次の例は、ISO インストールのネットワークオプションです。

2.6.7.4.1.1. DHCP または静的 IP アドレスの設定

IP アドレスを設定するには、DHCP (ip=dhcp) を使用するか、個別の静的 IP アドレス (ip=<host_ip>) を設定します。静的 IP を設定する場合、各ノードで DNS サーバー IP アドレス (nameserver=<dns_ip>) を特定する必要があります。次の例では、以下を設定します。

  • ノードの IP アドレス: 10.10.10.2
  • ゲートウェイアドレス: 10.10.10.254
  • ネットワーク: 255.255.255.0
  • ホスト名: core0.example.com
  • DNS サーバーアドレス: 4.4.4.41
  • auto-configuration の値を none に設定します。IP ネットワークが静的に設定されている場合には、自動設定は必要ありません。
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
nameserver=4.4.4.41
Copy to Clipboard Toggle word wrap
注記

DHCP を使用して RHCOS マシンの IP アドレスを設定する場合、マシンは DHCP を介して DNS サーバー情報も取得します。DHCP ベースのデプロイメントの場合、DHCP サーバー設定を使用して RHCOS ノードが使用する DNS サーバーアドレスを定義できます。

2.6.7.4.1.2. 静的ホスト名を使用しない IP アドレスの設定

静的ホスト名を割り当てずに IP アドレスを設定できます。静的ホスト名がユーザーによって設定されていない場合は、逆引き DNS ルックアップによって取得され、自動的に設定されます。静的ホスト名なしで IP アドレスを設定するには、次の例を参照してください。

  • ノードの IP アドレス: 10.10.10.2
  • ゲートウェイアドレス: 10.10.10.254
  • ネットワーク: 255.255.255.0
  • DNS サーバーアドレス: 4.4.4.41
  • auto-configuration の値を none に設定します。IP ネットワークが静的に設定されている場合には、自動設定は必要ありません。
ip=10.10.10.2::10.10.10.254:255.255.255.0::enp1s0:none
nameserver=4.4.4.41
Copy to Clipboard Toggle word wrap
2.6.7.4.1.3. 複数のネットワークインターフェイスの指定

複数の ip= エントリーを設定することで、複数のネットワークインターフェイスを指定できます。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
ip=10.10.10.3::10.10.10.254:255.255.255.0:core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.6.7.4.1.4. デフォルトゲートウェイとルートの設定

オプション: rd.route= value を設定して、追加のネットワークへのルートを設定できます。

注記

1 つまたは複数のネットワークを設定する場合、1 つのデフォルトゲートウェイが必要です。追加のネットワークゲートウェイがプライマリーネットワークゲートウェイと異なる場合、デフォルトゲートウェイはプライマリーネットワークゲートウェイである必要があります。

  • 次のコマンドを実行して、デフォルトゲートウェイを設定します。

    ip=::10.10.10.254::::
    Copy to Clipboard Toggle word wrap
  • 次のコマンドを入力して、追加ネットワークのルートを設定します。

    rd.route=20.20.20.0/24:20.20.20.254:enp2s0
    Copy to Clipboard Toggle word wrap
2.6.7.4.1.5. 単一インターフェイスでの DHCP の無効化

2 つ以上のネットワークインターフェイスがあり、1 つのインターフェイスのみが使用される場合などに、1 つのインターフェイスで DHCP を無効にします。この例では、enp1s0 インターフェイスには静的ネットワーク設定があり、使用されていない enp2s0 では DHCP が無効になっています。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
ip=::::core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.6.7.4.1.6. DHCP と静的 IP 設定の組み合わせ

以下のように、複数のネットワークインターフェイスを持つシステムで、DHCP および静的 IP 設定を組み合わせることができます。

ip=enp1s0:dhcp
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.6.7.4.1.7. 個々のインターフェイスでの VLAN の設定

オプション: vlan= パラメーターを使用して、個別のインターフェイスに VLAN を設定できます。

  • ネットワークインターフェイスで VLAN を設定し、静的 IP アドレスを使用するには、次のコマンドを実行します。

    ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp2s0.100:none
    vlan=enp2s0.100:enp2s0
    Copy to Clipboard Toggle word wrap
  • ネットワークインターフェイスで VLAN を設定し、DHCP を使用するには、次のコマンドを実行します。

    ip=enp2s0.100:dhcp
    vlan=enp2s0.100:enp2s0
    Copy to Clipboard Toggle word wrap
2.6.7.4.1.8. 複数の DNS サーバーの指定

以下のように、各サーバーに nameserver= エントリーを追加して、複数の DNS サーバーを指定できます。

nameserver=1.1.1.1
nameserver=8.8.8.8
Copy to Clipboard Toggle word wrap

2.6.8. ブートストラッププロセスの完了まで待機する

OpenShift Container Platform ブートストラッププロセスは、初回のクラスターノードのディスクにインストールされている永続的な RHCOS 環境での起動後に開始します。Ignition 設定ファイルで指定される設定情報は、ブートストラッププロセスを初期化し、マシンに OpenShift Container Platform をインストールするために使用されます。ブートストラッププロセスが完了するまで待機する必要があります。

前提条件

  • クラスターの Ignition 設定ファイルを作成している。
  • 適切なネットワーク、DNS および負荷分散インフラストラクチャーを設定している。
  • インストールプログラムを取得し、クラスターの Ignition 設定ファイルを生成している。
  • RHCOS をクラスターマシンにインストールし、OpenShift Container Platform インストールプログラムで生成される Ignition 設定ファイルを指定している。

手順

  1. ブートストラッププロセスをモニターします。

    $ ./openshift-install --dir <installation_directory> wait-for bootstrap-complete \ 
    1
    
        --log-level=info 
    2
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。
    2
    異なるインストールの詳細情報を表示するには、info ではなく、warndebug、または error を指定します。

    出力例

    INFO Waiting up to 30m0s for the Kubernetes API at https://api.test.example.com:6443...
    INFO API v1.33.4 up
    INFO Waiting up to 30m0s for bootstrapping to complete...
    INFO It is now safe to remove the bootstrap resources
    Copy to Clipboard Toggle word wrap

    Kubernetes API サーバーでこれがコントロールプレーンマシンにブートストラップされていることを示すシグナルが出されるとコマンドは成功します。

  2. ブートストラッププロセスが完了したら、ブートストラップマシンをロードバランサーから削除します。

    重要

    この時点で、ブートストラップマシンをロードバランサーから削除する必要があります。さらに、ブートストラップマシン自体を削除し、再フォーマットすることができます。

2.6.9. CLI の使用によるクラスターへのログイン

クラスター kubeconfig ファイルをエクスポートし、デフォルトシステムユーザーとしてクラスターにログインできます。kubeconfig ファイルには、クライアントを正しいクラスターおよび API サーバーに接続するために CLI で使用されるクラスターに関する情報が含まれます。このファイルはクラスターに固有のファイルであり、OpenShift Container Platform のインストール時に作成されます。

前提条件

  • OpenShift Container Platform クラスターをデプロイしていること。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. 次のコマンドを実行して、kubeadmin 認証情報をエクスポートします。

    $ export KUBECONFIG=<installation_directory>/auth/kubeconfig 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。
  2. 次のコマンドを実行し、エクスポートされた設定を使用して oc コマンドを正常に実行できることを確認します。

    $ oc whoami
    Copy to Clipboard Toggle word wrap

    出力例

    system:admin
    Copy to Clipboard Toggle word wrap

2.6.10. マシンの証明書署名要求の承認

マシンをクラスターに追加する際に、追加したそれぞれのマシンに対して 2 つの保留状態の証明書署名要求 (CSR) が生成されます。これらの CSR が承認されていることを確認するか、必要な場合はそれらを承認してください。最初にクライアント要求を承認し、次にサーバー要求を承認する必要があります。

前提条件

  • マシンがクラスターに追加されています。

手順

  1. クラスターがマシンを認識していることを確認します。

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME      STATUS    ROLES   AGE  VERSION
    master-0  Ready     master  63m  v1.33.4
    master-1  Ready     master  63m  v1.33.4
    master-2  Ready     master  64m  v1.33.4
    Copy to Clipboard Toggle word wrap

    出力には作成したすべてのマシンがリスト表示されます。

    注記

    上記の出力には、一部の CSR が承認されるまで、ワーカーノード (ワーカーノードとも呼ばれる) が含まれない場合があります。

  2. 保留中の証明書署名要求 (CSR) を確認し、クラスターに追加したそれぞれのマシンのクライアントおよびサーバー要求に Pending または Approved ステータスが表示されていることを確認します。

    $ oc get csr
    Copy to Clipboard Toggle word wrap

    出力例

    NAME        AGE     REQUESTOR                                                                   CONDITION
    csr-8b2br   15m     system:serviceaccount:openshift-machine-config-operator:node-bootstrapper   Pending
    csr-8vnps   15m     system:serviceaccount:openshift-machine-config-operator:node-bootstrapper   Pending
    ...
    Copy to Clipboard Toggle word wrap

    この例では、2 つのマシンがクラスターに参加しています。このリストにはさらに多くの承認された CSR が表示される可能性があります。

  3. 追加したマシンの保留中の CSR すべてが Pending ステータスになった後に CSR が承認されない場合には、クラスターマシンの CSR を承認します。

    注記

    CSR のローテーションは自動的に実行されるため、クラスターにマシンを追加後 1 時間以内に CSR を承認してください。1 時間以内に承認しない場合には、証明書のローテーションが行われ、各ノードに 3 つ以上の証明書が存在するようになります。これらの証明書すべてを承認する必要があります。クライアントの CSR が承認された後に、Kubelet は提供証明書のセカンダリー CSR を作成します。これには、手動の承認が必要になります。次に、後続の提供証明書の更新要求は、Kubelet が同じパラメーターを持つ新規証明書を要求する場合に machine-approver によって自動的に承認されます。

    注記

    ベアメタルおよび他の user-provisioned infrastructure などのマシン API ではないプラットフォームで実行されているクラスターの場合、kubelet 提供証明書要求 (CSR) を自動的に承認する方法を実装する必要があります。要求が承認されない場合、API サーバーが kubelet に接続する際に提供証明書が必須であるため、oc execoc rsh、および oc logs コマンドは正常に実行できません。Kubelet エンドポイントにアクセスする操作には、この証明書の承認が必要です。この方法は新規 CSR の有無を監視し、CSR が system:node または system:admin グループの node-bootstrapper サービスアカウントによって提出されていることを確認し、ノードの ID を確認します。

    • それらを個別に承認するには、それぞれの有効な CSR に以下のコマンドを実行します。

      $ oc adm certificate approve <csr_name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <csr_name> は、現行の CSR のリストからの CSR の名前です。
    • すべての保留中の CSR を承認するには、以下のコマンドを実行します。

      $ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs --no-run-if-empty oc adm certificate approve
      Copy to Clipboard Toggle word wrap
      注記

      一部の Operator は、一部の CSR が承認されるまで利用できない可能性があります。

  4. クライアント要求が承認されたら、クラスターに追加した各マシンのサーバー要求を確認する必要があります。

    $ oc get csr
    Copy to Clipboard Toggle word wrap

    出力例

    NAME        AGE     REQUESTOR                                                                   CONDITION
    csr-bfd72   5m26s   system:node:ip-10-0-50-126.us-east-2.compute.internal                       Pending
    csr-c57lv   5m26s   system:node:ip-10-0-95-157.us-east-2.compute.internal                       Pending
    ...
    Copy to Clipboard Toggle word wrap

  5. 残りの CSR が承認されず、それらが Pending ステータスにある場合、クラスターマシンの CSR を承認します。

    • それらを個別に承認するには、それぞれの有効な CSR に以下のコマンドを実行します。

      $ oc adm certificate approve <csr_name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <csr_name> は、現行の CSR のリストからの CSR の名前です。
    • すべての保留中の CSR を承認するには、以下のコマンドを実行します。

      $ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs oc adm certificate approve
      Copy to Clipboard Toggle word wrap
  6. すべてのクライアントおよびサーバーの CSR が承認された後に、マシンのステータスが Ready になります。以下のコマンドを実行して、これを確認します。

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME      STATUS    ROLES   AGE  VERSION
    master-0  Ready     master  73m  v1.33.4
    master-1  Ready     master  73m  v1.33.4
    master-2  Ready     master  74m  v1.33.4
    worker-0  Ready     worker  11m  v1.33.4
    worker-1  Ready     worker  11m  v1.33.4
    Copy to Clipboard Toggle word wrap

    注記

    サーバー CSR の承認後にマシンが Ready ステータスに移行するまでに数分の時間がかかる場合があります。

関連情報

2.6.11. Operator の初期設定

コントロールプレーンの初期化後に、一部の Operator を利用可能にするためにそれらをすぐに設定する必要があります。

前提条件

  • コントロールプレーンが初期化されています。

手順

  1. クラスターコンポーネントがオンラインになることを確認します。

    $ watch -n5 oc get clusteroperators
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
    authentication                             4.20.0    True        False         False      19m
    baremetal                                  4.20.0    True        False         False      37m
    cloud-credential                           4.20.0    True        False         False      40m
    cluster-autoscaler                         4.20.0    True        False         False      37m
    config-operator                            4.20.0    True        False         False      38m
    console                                    4.20.0    True        False         False      26m
    csi-snapshot-controller                    4.20.0    True        False         False      37m
    dns                                        4.20.0    True        False         False      37m
    etcd                                       4.20.0    True        False         False      36m
    image-registry                             4.20.0    True        False         False      31m
    ingress                                    4.20.0    True        False         False      30m
    insights                                   4.20.0    True        False         False      31m
    kube-apiserver                             4.20.0    True        False         False      26m
    kube-controller-manager                    4.20.0    True        False         False      36m
    kube-scheduler                             4.20.0    True        False         False      36m
    kube-storage-version-migrator              4.20.0    True        False         False      37m
    machine-api                                4.20.0    True        False         False      29m
    machine-approver                           4.20.0    True        False         False      37m
    machine-config                             4.20.0    True        False         False      36m
    marketplace                                4.20.0    True        False         False      37m
    monitoring                                 4.20.0    True        False         False      29m
    network                                    4.20.0    True        False         False      38m
    node-tuning                                4.20.0    True        False         False      37m
    openshift-apiserver                        4.20.0    True        False         False      32m
    openshift-controller-manager               4.20.0    True        False         False      30m
    openshift-samples                          4.20.0    True        False         False      32m
    operator-lifecycle-manager                 4.20.0    True        False         False      37m
    operator-lifecycle-manager-catalog         4.20.0    True        False         False      37m
    operator-lifecycle-manager-packageserver   4.20.0    True        False         False      32m
    service-ca                                 4.20.0    True        False         False      38m
    storage                                    4.20.0    True        False         False      37m
    Copy to Clipboard Toggle word wrap

  2. 利用不可の Operator を設定します。
2.6.11.1. デフォルトのソフトウェアカタログソースの無効化

OpenShift Container Platform のインストール時に、Red Hat およびコミュニティープロジェクトが提供するコンテンツをソースとする Operator カタログが、ソフトウェアカタログ用にデフォルトで設定されます。ネットワークが制限された環境では、クラスター管理者としてデフォルトのカタログを無効にする必要があります。

手順

  • disableAllDefaultSources: trueOperatorHub オブジェクトに追加して、デフォルトカタログのソースを無効にします。

    $ oc patch OperatorHub cluster --type json \
        -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'
    Copy to Clipboard Toggle word wrap
ヒント

または、Web コンソールを使用してカタログソースを管理できます。AdministrationCluster SettingsConfigurationOperatorHub ページから、Sources タブをクリックして、個別のソースを作成、更新、削除、無効化、有効化できます。

2.6.11.2. イメージレジストリーストレージの設定

Image Registry Operator は、デフォルトストレージを提供しないプラットフォームでは最初は利用できません。インストール後に、レジストリー Operator を使用できるようにレジストリーをストレージを使用するように設定する必要があります。

実稼働クラスターに必要な永続ボリュームの設定に関する手順が示されます。該当する場合、空のディレクトリーをストレージの場所として設定する方法が表示されます。これは、実稼働以外のクラスターでのみ利用できます。

アップグレード時に Recreate ロールアウトストラテジーを使用して、イメージレジストリーがブロックストレージタイプを使用することを許可するための追加の手順が提供されます。

2.6.11.2.1. IBM Z の場合のレジストリーストレージの設定

クラスター管理者は、インストール後にレジストリーをストレージを使用できるように設定する必要があります。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。
  • IBM Z® にクラスターがある。
  • Red Hat OpenShift Data Foundation などのクラスターのプロビジョニングされた永続ストレージがある。

    重要

    OpenShift Container Platform は、1 つのレプリカのみが存在する場合にイメージレジストリーストレージの ReadWriteOnce アクセスをサポートします。ReadWriteOnce アクセスでは、レジストリーが Recreate ロールアウト戦略を使用する必要もあります。2 つ以上のレプリカで高可用性をサポートするイメージレジストリーをデプロイするには、ReadWriteMany アクセスが必要です。

  • 100 Gi の容量がある。

手順

  1. レジストリーをストレージを使用できるように設定するには、configs.imageregistry/cluster リソースの spec.storage.pvc を変更します。

    注記

    共有ストレージを使用する場合は、外部からアクセスを防ぐためにセキュリティー設定を確認します。

  2. レジストリー Pod がないことを確認します。

    $ oc get pod -n openshift-image-registry -l docker-registry=default
    Copy to Clipboard Toggle word wrap

    出力例

    No resources found in openshift-image-registry namespace
    Copy to Clipboard Toggle word wrap

    注記

    出力にレジストリー Pod がある場合は、この手順を続行する必要はありません。

  3. レジストリー設定を確認します。

    $ oc edit configs.imageregistry.operator.openshift.io
    Copy to Clipboard Toggle word wrap

    出力例

    storage:
      pvc:
        claim:
    Copy to Clipboard Toggle word wrap

    claim フィールドを空のままにし、image-registry-storage PVC の自動作成を可能にします。

  4. clusteroperator ステータスを確認します。

    $ oc get clusteroperator image-registry
    Copy to Clipboard Toggle word wrap

    出力例

    NAME             VERSION              AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
    image-registry   4.20                 True        False         False      6h50m
    Copy to Clipboard Toggle word wrap

  5. イメージのビルドおよびプッシュを有効にするためにレジストリーが managed に設定されていることを確認します。

    • 以下を実行します。

      $ oc edit configs.imageregistry/cluster
      Copy to Clipboard Toggle word wrap

      次に、行を変更します。

      managementState: Removed
      Copy to Clipboard Toggle word wrap

      次のように変更してください。

      managementState: Managed
      Copy to Clipboard Toggle word wrap
2.6.11.2.2. 実稼働以外のクラスターでのイメージレジストリーのストレージの設定

Image Registry Operator のストレージを設定する必要があります。実稼働用以外のクラスターの場合、イメージレジストリーは空のディレクトリーに設定することができます。これを実行する場合、レジストリーを再起動するとすべてのイメージが失われます。

手順

  • イメージレジストリーストレージを空のディレクトリーに設定するには、以下を実行します。

    $ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"storage":{"emptyDir":{}}}}'
    Copy to Clipboard Toggle word wrap
    警告

    実稼働用以外のクラスターにのみこのオプションを設定します。

    Image Registry Operator がそのコンポーネントを初期化する前にこのコマンドを実行する場合、oc patch コマンドは以下のエラーを出して失敗します。

    Error from server (NotFound): configs.imageregistry.operator.openshift.io "cluster" not found
    Copy to Clipboard Toggle word wrap

    数分待機した後に、このコマンドを再び実行します。

2.6.12. user-provisioned infrastructure でのインストールの完了

Operator の設定が完了したら、独自に提供するインフラストラクチャーへのクラスターのインストールを完了できます。

前提条件

  • コントロールプレーンが初期化されています。
  • Operator の初期設定を完了済みです。

手順

  1. 以下のコマンドを使用して、すべてのクラスターコンポーネントがオンラインであることを確認します。

    $ watch -n5 oc get clusteroperators
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
    authentication                             4.20.0    True        False         False      19m
    baremetal                                  4.20.0    True        False         False      37m
    cloud-credential                           4.20.0    True        False         False      40m
    cluster-autoscaler                         4.20.0    True        False         False      37m
    config-operator                            4.20.0    True        False         False      38m
    console                                    4.20.0    True        False         False      26m
    csi-snapshot-controller                    4.20.0    True        False         False      37m
    dns                                        4.20.0    True        False         False      37m
    etcd                                       4.20.0    True        False         False      36m
    image-registry                             4.20.0    True        False         False      31m
    ingress                                    4.20.0    True        False         False      30m
    insights                                   4.20.0    True        False         False      31m
    kube-apiserver                             4.20.0    True        False         False      26m
    kube-controller-manager                    4.20.0    True        False         False      36m
    kube-scheduler                             4.20.0    True        False         False      36m
    kube-storage-version-migrator              4.20.0    True        False         False      37m
    machine-api                                4.20.0    True        False         False      29m
    machine-approver                           4.20.0    True        False         False      37m
    machine-config                             4.20.0    True        False         False      36m
    marketplace                                4.20.0    True        False         False      37m
    monitoring                                 4.20.0    True        False         False      29m
    network                                    4.20.0    True        False         False      38m
    node-tuning                                4.20.0    True        False         False      37m
    openshift-apiserver                        4.20.0    True        False         False      32m
    openshift-controller-manager               4.20.0    True        False         False      30m
    openshift-samples                          4.20.0    True        False         False      32m
    operator-lifecycle-manager                 4.20.0    True        False         False      37m
    operator-lifecycle-manager-catalog         4.20.0    True        False         False      37m
    operator-lifecycle-manager-packageserver   4.20.0    True        False         False      32m
    service-ca                                 4.20.0    True        False         False      38m
    storage                                    4.20.0    True        False         False      37m
    Copy to Clipboard Toggle word wrap

    あるいは、以下のコマンドを使用すると、すべてのクラスターが利用可能な場合に通知されます。また、このコマンドは認証情報を取得して表示します。

    $ ./openshift-install --dir <installation_directory> wait-for install-complete 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。

    出力例

    INFO Waiting up to 30m0s for the cluster to initialize...
    Copy to Clipboard Toggle word wrap

    Cluster Version Operator が Kubernetes API サーバーから OpenShift Container Platform クラスターのデプロイを終了するとコマンドは成功します。

    重要
    • インストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の node-bootstrapper 証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。
    • 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
  2. Kubernetes API サーバーが Pod と通信していることを確認します。

    1. すべての Pod のリストを表示するには、以下のコマンドを使用します。

      $ oc get pods --all-namespaces
      Copy to Clipboard Toggle word wrap

      出力例

      NAMESPACE                         NAME                                            READY   STATUS      RESTARTS   AGE
      openshift-apiserver-operator      openshift-apiserver-operator-85cb746d55-zqhs8   1/1     Running     1          9m
      openshift-apiserver               apiserver-67b9g                                 1/1     Running     0          3m
      openshift-apiserver               apiserver-ljcmx                                 1/1     Running     0          1m
      openshift-apiserver               apiserver-z25h4                                 1/1     Running     0          2m
      openshift-authentication-operator authentication-operator-69d5d8bf84-vh2n8        1/1     Running     0          5m
      ...
      Copy to Clipboard Toggle word wrap

    2. 以下のコマンドを使用して、直前のコマンドの出力にリスト表示される Pod のログを表示します。

      $ oc logs <pod_name> -n <namespace> 
      1
      Copy to Clipboard Toggle word wrap
      1
      直前のコマンドの出力にあるように、Pod 名および namespace を指定します。

      Pod のログが表示される場合、Kubernetes API サーバーはクラスターマシンと通信できます。

  3. FCP (Fibre Channel Protocol) を使用したインストールでは、マルチパスを有効にするために追加の手順が必要です。インストール時にマルチパスを有効にしないでください。

    詳細は、インストール後のマシン設定タスク ドキュメントで、「RHCOS でのカーネル引数を使用したマルチパスの有効化」を参照してください。

  4. Cluster registration ページでクラスターを登録します。

2.6.13. 次のステップ

2.7. IBM Z および IBM LinuxONE 上の LPAR へのクラスターのインストール

OpenShift Container Platform バージョン 4.20 では、ユーザーがプロビジョニングする IBM Z® または IBM® LinuxONE インフラストラクチャー上の論理パーティション (LPAR) にクラスターをインストールできます。

注記

このドキュメントは IBM Z® のみを参照しますが、これに含まれるすべての情報は IBM® LinuxONE にも適用されます。

2.7.1. 前提条件

注記

プロキシーを設定する場合は、このサイトリストも確認してください。

2.7.2. user-provisioned infrastructure の準備

user-provisioned infrastructure に OpenShift Container Platform をインストールする前に、基礎となるインフラストラクチャーを準備する必要があります。

このセクションでは、OpenShift Container Platform インストールの準備としてクラスターインフラストラクチャーを設定するために必要な手順の概要を説明します。これには、クラスターノード用の IP ネットワークおよびネットワーク接続の設定、Ignition ファイルの Web サーバーの準備、ファイアウォール経由での必要なポートの有効化、必要な DNS および負荷分散インフラストラクチャーの設定が含まれます。

準備後、クラスターインフラストラクチャーは、user-provisioned infrastructure を使用したクラスターの要件 セクションで説明されている要件を満たす必要があります。

前提条件

手順

  1. 静的 IP アドレスをセットアップします。
  2. HTTP または HTTPS サーバーを設定し、Ignition ファイルをクラスターノードに提供します。
  3. ネットワークインフラストラクチャーがクラスターコンポーネント間の必要なネットワーク接続を提供することを確認します。要件に関する詳細は、user-provisioned infrastructure のネットワーク要件 のセクションを参照してください。
  4. OpenShift Container Platform クラスターコンポーネントで通信するために必要なポートを有効にするようにファイアウォールを設定します。必要なポートの詳細は、user-provisioned infrastructure のネットワーク要件 のセクションを参照してください。

    重要

    デフォルトで、ポート 1936 は OpenShift Container Platform クラスターにアクセスできます。これは、各コントロールプレーンノードがこのポートへのアクセスを必要とするためです。

    Ingress ロードバランサーを使用してこのポートを公開しないでください。これを実行すると、Ingress コントローラーに関連する統計やメトリクスなどの機密情報が公開される可能性があるためです。

  5. クラスターに必要な DNS インフラストラクチャーを設定します。

    1. Kubernetes API、アプリケーションワイルドカード、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンの DNS 名前解決を設定します。
    2. Kubernetes API、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンの逆引き DNS 解決を設定します。

      OpenShift Container Platform DNS 要件の詳細は、user-provisioned DNS 要件 のセクションを参照してください。

  6. DNS 設定を検証します。

    1. インストールノードから、Kubernetes API、ワイルドカードルート、およびクラスターノードのレコード名に対して DNS ルックアップを実行します。応答の IP アドレスが正しいコンポーネントに対応することを確認します。
    2. インストールノードから、ロードバランサーとクラスターノードの IP アドレスに対して逆引き DNS ルックアップを実行します。応答のレコード名が正しいコンポーネントに対応することを確認します。

      DNS 検証手順の詳細は、user-provisioned infrastructure の DNS 解決の検証 のセクションを参照してください。

  7. 必要な API およびアプリケーションの Ingress 負荷分散インフラストラクチャーをプロビジョニングします。要件に関する詳細は、user-provisioned infrastructure の負荷分散要件 のセクションを参照してください。
注記

一部の負荷分散ソリューションでは、負荷分散を初期化する前に、クラスターノードの DNS 名前解決を有効化する必要があります。

2.7.3. インストール設定ファイルの手動作成

クラスターをインストールするには、インストール設定ファイルを手動で作成する必要があります。

前提条件

  • インストールプログラムで使用するための SSH 公開鍵がローカルマシン上に存在する。この鍵は、デバッグや障害復旧のために、クラスターノードへの SSH 認証に使用できます。
  • OpenShift Container Platform インストールプログラムとクラスターのプルシークレットを取得している。

手順

  1. 必要なインストールアセットを保存するためのインストールディレクトリーを作成します。

    $ mkdir <installation_directory>
    Copy to Clipboard Toggle word wrap
    重要

    このディレクトリーは必ず作成してください。ブートストラップ X.509 証明書などの一部のインストールアセットは、有効期限が短いため、インストールディレクトリーを再利用しないでください。別のクラスターインストールの個別のファイルを再利用する必要がある場合は、それらをディレクトリーにコピーすることができます。ただし、インストールアセットのファイル名はリリース間で変更される可能性があります。インストールファイルを以前のバージョンの OpenShift Container Platform からコピーする場合は注意してください。

  2. 提供されているサンプルの install-config.yaml ファイルテンプレートをカスタマイズし、ファイルを <installation_directory> に保存します。

    注記

    この設定ファイルの名前を install-config.yaml と付ける必要があります。

  3. 多くのクラスターのインストールに使用できるように、install-config.yaml ファイルをバックアップします。

    重要

    インストールプロセスの次のステップで install-config.yaml ファイルを使用するため、今すぐこのファイルをバックアップしてください。

2.7.3.1. IBM Z のサンプル install-config.yaml ファイル

install-config.yaml ファイルをカスタマイズして、OpenShift Container Platform クラスターのプラットフォームに関する詳細を指定するか、必要なパラメーターの値を変更することができます。

apiVersion: v1
baseDomain: example.com 
1

compute: 
2

- hyperthreading: Enabled 
3

  name: worker
  replicas: 0 
4

  architecture: s390x
controlPlane: 
5

  hyperthreading: Enabled 
6

  name: master
  replicas: 3 
7

  architecture: s390x
metadata:
  name: test 
8

networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14 
9

    hostPrefix: 23 
10

  networkType: OVNKubernetes 
11

  serviceNetwork: 
12

  - 172.30.0.0/16
platform:
  none: {} 
13

fips: false 
14

pullSecret: '{"auths": ...}' 
15

sshKey: 'ssh-ed25519 AAAA...' 
16
Copy to Clipboard Toggle word wrap
1
クラスターのベースドメイン。すべての DNS レコードはこのベースのサブドメインである必要があり、クラスター名が含まれる必要があります。
2 5
controlPlane セクションは単一マッピングですが、compute セクションはマッピングのシーケンスになります。複数の異なるデータ構造の要件を満たすには、compute セクションの最初の行はハイフン - で始め、controlPlane セクションの最初の行はハイフンで始めることができません。1 つのコントロールプレーンプールのみが使用されます。
3 6
同時マルチスレッド (SMT) またはハイパースレッディングを有効/無効にするかどうかを指定します。デフォルトでは、SMT はマシンのコアのパフォーマンスを上げるために有効にされます。パラメーター値を Disabled に設定するとこれを無効にすることができます。SMT を無効にする場合、これをすべてのクラスターマシンで無効にする必要があります。これにはコントロールプレーンとコンピュートマシンの両方が含まれます。
注記

同時マルチスレッド (SMT) はデフォルトで有効になっています。SMT が OpenShift Container Platform ノードで利用できない場合、hyperthreading パラメーターは影響を受けません。

重要

OpenShift Container Platform ノードまたは install-config.yaml ファイルであるかに関係なく hyperthreading を無効にする場合、容量計画においてマシンのパフォーマンスの大幅な低下が考慮に入れられていることを確認します。

4
OpenShift Container Platform を user-provisioned infrastructure にインストールする場合は、この値を 0 に設定する必要があります。installer-provisioned installation では、パラメーターはクラスターが作成し、管理するコンピュートマシンの数を制御します。user-provisioned installation では、クラスターのインストールの終了前にコンピュートマシンを手動でデプロイする必要があります。
注記

3 ノードクラスターをインストールする場合は、Red Hat Enterprise Linux CoreOS (RHCOS) マシンをインストールする際にコンピュートマシンをデプロイしないでください。

7
クラスターに追加するコントロールプレーンマシンの数。クラスターをこれらの値をクラスターの etcd エンドポイント数として使用するため、値はデプロイするコントロールプレーンマシンの数に一致する必要があります。
8
DNS レコードに指定したクラスター名。
9
Pod IP アドレスの割り当てに使用する IP アドレスのブロック。このブロックは既存の物理ネットワークと重複できません。これらの IP アドレスは Pod ネットワークに使用されます。外部ネットワークから Pod にアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定する必要があります。
注記

クラス E の CIDR 範囲は、将来の使用のために予約されています。クラス E CIDR 範囲を使用するには、ネットワーク環境がクラス E CIDR 範囲内の IP アドレスを受け入れるようにする必要があります。

10
それぞれの個別ノードに割り当てるサブネット接頭辞長。たとえば、hostPrefix23 に設定されている場合、各ノードに指定の cidr から /23 サブネットが割り当てられます。これにより、510 (2^(32 - 23) - 2) Pod IP アドレスが許可されます。外部ネットワークからのノードへのアクセスを提供する必要がある場合には、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
11
インストールするクラスターネットワークプラグイン。サポートされる値はデフォルト値の OVNKubernetes のみです。
12
サービス IP アドレスに使用する IP アドレスプール。1 つの IP アドレスプールのみを入力できます。このブロックは既存の物理ネットワークと重複できません。外部ネットワークからサービスにアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
13
プラットフォームを none に設定する必要があります。IBM Z® インフラストラクチャー用に追加のプラットフォーム設定変数を指定できません。
重要

プラットフォームタイプ none でインストールされたクラスターは、Machine API を使用したコンピューティングマシンの管理など、一部の機能を使用できません。この制限は、クラスターに接続されている計算マシンが、通常はこの機能をサポートするプラットフォームにインストールされている場合でも適用されます。このパラメーターは、インストール後に変更することはできません。

14
FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
重要

クラスターで FIPS モードを有効にするには、FIPS モードで動作するように設定された Red Hat Enterprise Linux (RHEL) コンピューターからインストールプログラムを実行する必要があります。RHEL で FIPS モードを設定する方法の詳細は、RHEL から FIPS モードへの切り替え を参照してください。

FIPS モードでブートされた Red Hat Enterprise Linux (RHEL) または Red Hat Enterprise Linux CoreOS (RHCOS) を実行する場合、OpenShift Container Platform コアコンポーネントは、x86_64、ppc64le、および s390x アーキテクチャーのみで、FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用します。

15
Red Hat OpenShift Cluster Manager からのプルシークレット。このプルシークレットを使用し、OpenShift Container Platform コンポーネントのコンテナーイメージを提供する Quay.io など、組み込まれた各種の認証局によって提供されるサービスで認証できます。
16
Red Hat Enterprise Linux CoreOS (RHCOS) の core ユーザーの SSH 公開鍵。
注記

インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、ssh-agent プロセスが使用する SSH キーを指定します。

2.7.3.2. インストール時のクラスター全体のプロキシーの設定

実稼働環境では、インターネットへの直接アクセスを拒否し、代わりに HTTP または HTTPS プロキシーを使用することができます。プロキシー設定を install-config.yaml ファイルで行うことにより、新規の OpenShift Container Platform クラスターをプロキシーを使用するように設定できます。

前提条件

  • 既存の install-config.yaml ファイルがある。
  • クラスターがアクセスする必要のあるサイトを確認済みで、それらのいずれかがプロキシーをバイパスする必要があるかどうかを判別している。デフォルトで、すべてのクラスター Egress トラフィック (クラスターをホストするクラウドに関するクラウドプロバイダー API に対する呼び出しを含む) はプロキシーされます。プロキシーを必要に応じてバイパスするために、サイトを Proxy オブジェクトの spec.noProxy フィールドに追加している。

    注記

    Proxy オブジェクトの status.noProxy フィールドには、インストール設定の networking.machineNetwork[].cidrnetworking.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) も設定されます。

手順

  1. 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.com 
    3
    
    additionalTrustBundle: | 
    4
    
        -----BEGIN CERTIFICATE-----
        <MY_TRUSTED_CA_CERT>
        -----END CERTIFICATE-----
    additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle> 
    5
    Copy to Clipboard Toggle word wrap
    1
    クラスター外の HTTP 接続を作成するために使用するプロキシー URL。URL スキームは http である必要があります。
    2
    クラスター外で HTTPS 接続を作成するために使用するプロキシー URL。
    3
    プロキシーから除外するための宛先ドメイン名、IP アドレス、または他のネットワーク CIDR のコンマ区切りのリスト。サブドメインのみと一致するように、ドメインの前に . を付けます。たとえば、.y.comx.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 config 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
    Copy to Clipboard Toggle word wrap
  2. ファイルを保存し、OpenShift Container Platform のインストール時にこれを参照します。

インストールプログラムは、指定の install-config.yaml ファイルのプロキシー設定を使用する cluster という名前のクラスター全体のプロキシーを作成します。プロキシー設定が指定されていない場合、cluster Proxy オブジェクトが依然として作成されますが、これには spec がありません。

注記

cluster という名前の Proxy オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。

2.7.3.3. 3 ノードクラスターの設定

オプションで、3 台のコントロールプレーンマシンのみで構成される最小の 3 つのノードクラスターにゼロコンピュートマシンをデプロイできます。これにより、テスト、開発、および実稼働に使用するための小規模なリソース効率の高いクラスターが、クラスター管理者および開発者に提供されます。

3 ノードの OpenShift Container Platform 環境では、3 つのコントロールプレーンマシンがスケジュール対象となります。つまり、アプリケーションのワークロードがそれらで実行されるようにスケジュールされます。

前提条件

  • 既存の install-config.yaml ファイルがある。

手順

  • 以下の compute スタンザに示されるように、コンピュートレプリカの数が install-config.yaml ファイルで 0 に設定されることを確認します。

    compute:
    - name: worker
      platform: {}
      replicas: 0
    Copy to Clipboard Toggle word wrap
    注記

    デプロイするコンピュートマシンの数にかかわらず、OpenShift Container Platform を user-provisioned infrastructure にインストールする際に、コンピュートマシンの replicas パラメーターの値を 0 に設定する必要があります。installer-provisioned installation では、パラメーターはクラスターが作成し、管理するコンピュートマシンの数を制御します。これは、コンピュートマシンが手動でデプロイされる、user-provisioned installation には適用されません。

    注記

    コントロールプレーンノードの推奨リソースは 6 vCPU および 21 GB です。コントロールプレーンノードが 3 つの場合には、これは最小の 5 ノードクラスターと同等のメモリー + vCPU です。3 つのノードをバックする必要があります。それぞれに、SMT2 が有効な IFL が 3 つ含まれる 120 GB ディスクにインストールします。各コントロールプレーンノードのテスト済みの最小設定とは、120 GB ディスクに 3 つの vCPU および 10 GB が指定された設定です。

3 ノードのクラスターのインストールで、以下の手順を実行します。

  • ゼロ (0) コンピュートノードで 3 ノードクラスターをデプロイする場合、Ingress コントローラー Pod はコントロールプレーンノードで実行されます。3 ノードクラスターデプロイメントでは、HTTP および HTTPS トラフィックをコントロールプレーンノードにルーティングするようにアプリケーション Ingress ロードバランサーを設定する必要があります。詳細は、user-provisioned infrastructure の負荷分散要件 のセクションを参照してください。
  • 以下の手順で Kubernetes マニフェストファイルを作成する際に、<installation_directory>/manifests/cluster-scheduler-02-config.yml ファイルの mastersSchedulable パラメーターが true に設定されていることを確認します。これにより、アプリケーションのワークロードがコントロールプレーンノードで実行できます。
  • Red Hat Enterprise Linux CoreOS (RHCOS) マシンを作成する際は、コンピュートノードをデプロイしないでください。

2.7.4. Cluster Network Operator の設定

クラスターネットワークの設定は、Cluster Network Operator (CNO) 設定の一部として指定され、cluster という名前のカスタムリソース (CR) オブジェクトに保存されます。CR は operator.openshift.io API グループの Network API のフィールドを指定します。

CNO 設定は、Network.config.openshift.io API グループの Network API からクラスターのインストール時に以下のフィールドを継承します。

clusterNetwork
Pod IP アドレスの割り当てに使用する IP アドレスプール。
serviceNetwork
サービスの IP アドレスプール。
defaultNetwork.type
クラスターネットワークプラグイン。OVNKubernetes は、インストール時にサポートされる唯一のプラグインです。

defaultNetwork オブジェクトのフィールドを cluster という名前の CNO オブジェクトに設定することにより、クラスターのクラスターネットワークプラグイン設定を指定できます。

2.7.4.1. Cluster Network Operator 設定オブジェクト

Cluster Network Operator (CNO) のフィールドは以下の表で説明されています。

Expand
表2.54 Cluster Network Operator 設定オブジェクト
フィールド説明

metadata.name

string

CNO オブジェクトの名前。この名前は常に cluster です。

spec.clusterNetwork

array

Pod IP アドレスの割り当て、サブネット接頭辞の長さのクラスター内の個別ノードへの割り当てに使用される IP アドレスのブロックを指定するリストです。以下に例を示します。

spec:
  clusterNetwork:
  - cidr: 10.128.0.0/19
    hostPrefix: 23
  - cidr: 10.128.32.0/19
    hostPrefix: 23
Copy to Clipboard Toggle word wrap

spec.serviceNetwork

array

サービスの IP アドレスのブロック。OVN-Kubernetes ネットワークプラグインは、サービスネットワークに対して単一の IP アドレスブロックのみをサポートします。以下に例を示します。

spec:
  serviceNetwork:
  - 172.30.0.0/14
Copy to Clipboard Toggle word wrap

マニフェストを作成する前に、このフィールドを install-config.yaml ファイルでのみカスタマイズすることができます。この値は、マニフェストファイルでは読み取り専用です。

spec.defaultNetwork

object

クラスターネットワークのネットワークプラグインを設定します。

spec.additionalRoutingCapabilities.providers

array

この設定により、動的ルーティングプロバイダーが有効になります。ルートアドバタイズ機能には、FRR ルーティング機能プロバイダーが必要です。サポートされている値は FRR のみです。

  • FRR: FRR ルーティングプロバイダー
spec:
  additionalRoutingCapabilities:
    providers:
    - FRR
Copy to Clipboard Toggle word wrap

spec.kubeProxyConfig

object

このオブジェクトのフィールドは、kube-proxy 設定を指定します。OVN-Kubernetes クラスターネットワークプラグインを使用している場合、kube-proxy 設定は機能しません。

重要

複数のネットワークにオブジェクトをデプロイする必要があるクラスターの場合は、install-config.yaml ファイルで定義されている各ネットワークタイプの clusterNetwork.hostPrefix パラメーターに、必ず同じ値を指定してください。clusterNetwork.hostPrefix パラメーターにそれぞれ異なる値を設定すると、OVN-Kubernetes ネットワークプラグインに影響が及び、異なるノード間のオブジェクトトラフィックをプラグインが効果的にルーティングできなくなる可能性があります。

2.7.4.1.1. defaultNetwork オブジェクト設定

defaultNetwork オブジェクトの値は、以下の表で定義されます。

Expand
表2.55 defaultNetwork オブジェクト
フィールド説明

type

string

OVNKubernetes。Red Hat OpenShift Networking ネットワークプラグインは、インストール中に選択されます。この値は、クラスターのインストール後は変更できません。

注記

OpenShift Container Platform は、デフォルトで OVN-Kubernetes ネットワークプラグインを使用します。

ovnKubernetesConfig

object

このオブジェクトは、OVN-Kubernetes ネットワークプラグインに対してのみ有効です。

2.7.4.1.1.1. OVN-Kubernetes ネットワークプラグインの設定

次の表では、OVN-Kubernetes ネットワークプラグインの設定フィールドを説明します。

Expand
表2.56 ovnKubernetesConfig オブジェクト
フィールド説明

mtu

integer

Geneve (Generic Network Virtualization Encapsulation) オーバーレイネットワークの MTU (maximum transmission unit)。これは、プライマリーネットワークインターフェイスの MTU に基づいて自動的に検出されます。通常、検出された MTU をオーバーライドする必要はありません。

自動検出した値が予想される値ではない場合は、ノード上のプライマリーネットワークインターフェイスの MTU が正しいことを確認します。このオプションを使用して、ノード上のプライマリーネットワークインターフェイスの MTU 値を変更することはできません。

クラスターで異なるノードに異なる MTU 値が必要な場合、この値をクラスター内の最小の MTU 値よりも 100 小さく設定する必要があります。たとえば、クラスター内の一部のノードでは MTU が 9001 であり、MTU が 1500 のクラスターもある場合には、この値を 1400 に設定する必要があります。

genevePort

integer

すべての Geneve パケットに使用するポート。デフォルト値は 6081 です。この値は、クラスターのインストール後は変更できません。

ipsecConfig

object

IPsec 設定をカスタマイズするための設定オブジェクトを指定します。

ipv4

object

IPv4 設定の設定オブジェクトを指定します。

ipv6

object

IPv6 設定の設定オブジェクトを指定します。

policyAuditConfig

object

ネットワークポリシー監査ロギングをカスタマイズする設定オブジェクトを指定します。指定されていない場合は、デフォルトの監査ログ設定が使用されます。

routeAdvertisements

string

クラスターネットワークルートをアドバタイズするかどうかを指定します。デフォルト値は、Disabled です。

  • Enabled: ルートをクラスターネットワークにインポートし、RouteAdvertisements オブジェクトで設定されているとおりに、クラスターネットワークルートをアドバタイズします。
  • Disabled: クラスターネットワークにルートをインポートしたり、クラスターネットワークルートをアドバタイズしたりしないでください。

gatewayConfig

object

オプション: Egress トラフィックのノードゲートウェイへの送信方法をカスタマイズするための設定オブジェクトを指定します。有効な値は SharedLocal です。デフォルト値は Shared です。デフォルト設定では、Open vSwitch (OVS) がトラフィックをノード IP インターフェイスに直接出力します。Local 設定では、トラフィックがホストネットワークを通過し、その結果、ホストのルーティングテーブルに適用されます。

注記

Egress トラフィックの移行中は、Cluster Network Operator (CNO) が変更を正常にロールアウトするまで、ワークロードとサービストラフィックに多少の中断が発生することが予想されます。

Expand
表2.57 ovnKubernetesConfig.ipv4 object
フィールド説明

internalTransitSwitchSubnet

string

既存のネットワークインフラストラクチャーが 100.88.0.0/16 IPv4 サブネットと重複している場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。east-west トラフィックを可能にする分散トランジットスイッチのサブネット。このサブネットは、OVN-Kubernetes またはホスト自体で使用される他のサブネットと重複することはできません。クラスター内のノードごとに 1 つの IP アドレスを収容できる必要があります。

デフォルト値は 100.88.0.0/16 です。

internalJoinSubnet

string

既存のネットワークインフラストラクチャーが 100.64.0.0/16 IPv4 サブネットと重複している場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。IP アドレス範囲が、OpenShift Container Platform インストールで使用される他のサブネットと重複しないようにする必要があります。IP アドレス範囲は、クラスターに追加できるノードの最大数より大きくする必要があります。たとえば、clusterNetwork.cidr 値が 10.128.0.0/14 で、clusterNetwork.hostPrefix 値が /23 の場合、ノードの最大数は 2^(23-14)=512 です。

デフォルト値は 100.64.0.0/16 です。

Expand
表2.58 ovnKubernetesConfig.ipv6 object
フィールド説明

internalTransitSwitchSubnet

string

既存のネットワークインフラストラクチャーが fd97::/64 IPv6 サブネットと重複する場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。east-west トラフィックを可能にする分散トランジットスイッチのサブネット。このサブネットは、OVN-Kubernetes またはホスト自体で使用される他のサブネットと重複することはできません。クラスター内のノードごとに 1 つの IP アドレスを収容できる必要があります。

デフォルト値は fd97::/64 です。

internalJoinSubnet

string

既存のネットワークインフラストラクチャーが fd98::/64 IPv6 サブネットと重複する場合は、OVN-Kubernetes による内部使用のために別の IP アドレス範囲を指定できます。IP アドレス範囲が、OpenShift Container Platform インストールで使用される他のサブネットと重複しないようにする必要があります。IP アドレス範囲は、クラスターに追加できるノードの最大数より大きくする必要があります。

デフォルト値は fd98::/64 です。

Expand
表2.59 policyAuditConfig オブジェクト
フィールド説明

rateLimit

integer

ノードごとに毎秒生成されるメッセージの最大数。デフォルト値は、1 秒あたり 20 メッセージです。

maxFileSize

integer

監査ログの最大サイズ (バイト単位)。デフォルト値は 50000000 (50MB) です。

maxLogFiles

integer

保持されるログファイルの最大数。

destination

string

以下の追加の監査ログターゲットのいずれかになります。

libc
ホスト上の journald プロセスの libc syslog() 関数。
udp:<host>:<port>
syslog サーバー。<host>:<port> を syslog サーバーのホストおよびポートに置き換えます。
unix:<file>
<file> で指定された Unix ドメインソケットファイル。
null
監査ログを追加のターゲットに送信しないでください。

syslogFacility

string

RFC5424 で定義される kern などの syslog ファシリティー。デフォルト値は local0 です。

Expand
表2.60 gatewayConfig オブジェクト
フィールド説明

routingViaHost

boolean

Pod からホストネットワークスタックへの Egress トラフィックを送信するには、このフィールドを true に設定します。インストールおよびアプリケーションがカーネルルーティングテーブルに手動設定されたルートに依存するなど非常に特化されている場合には、Egress トラフィックをホストネットワークスタックにルーティングすることを推奨します。デフォルトでは、Egress トラフィックは OVN で処理され、クラスターを終了するために処理され、トラフィックはカーネルルーティングテーブルの特殊なルートによる影響を受けません。デフォルト値は false です。

このフィールドで、Open vSwitch ハードウェアオフロード機能との対話が可能になりました。このフィールドを true に設定すると、Egress トラフィックがホストネットワークスタックで処理されるため、パフォーマンス的に、オフロードによる利点は得られません。

ipForwarding

object

Network リソースの ipForwarding 仕様を使用して、OVN-Kubernetes マネージドインターフェイス上のすべてのトラフィックの IP フォワーディングを制御できます。Kubernetes 関連のトラフィックの IP フォワーディングのみを許可するには、Restricted を指定します。すべての IP トラフィックの転送を許可するには、Global を指定します。新規インストールの場合、デフォルトは Restricted です。OpenShift Container Platform 4.14 以降に更新する場合、デフォルトは Global です。

注記

デフォルト値の Restricted では、IP 転送がドロップされるように設定されます。

ipv4

object

オプション: IPv4 アドレスのホストからサービスへのトラフィック用の内部 OVN-Kubernetes マスカレードアドレスを設定するオブジェクトを指定します。

ipv6

object

オプション: IPv6 アドレスのホストからサービスへのトラフィックの内部 OVN-Kubernetes マスカレードアドレスを設定するオブジェクトを指定します。

Expand
表2.61 gatewayConfig.ipv4 object
フィールド説明

internalMasqueradeSubnet

string

ホストからサービスへのトラフィックを有効にするために内部的に使用されるマスカレード IPv4 アドレス。ホストは、これらの IP アドレスと共有ゲートウェイブリッジインターフェイスを使用して設定されます。デフォルト値は 169.254.169.0/29 です。

重要

OpenShift Container Platform 4.17 以降のバージョンでは、クラスターはデフォルトのマスカレードサブネットとして 169.254.0.0/17 を使用します。アップグレードされたクラスターの場合は、デフォルトのマスカレードサブネットに変更がありません。

Expand
表2.62 gatewayConfig.ipv6 object
フィールド説明

internalMasqueradeSubnet

string

ホストからサービスへのトラフィックを有効にするために内部的に使用されるマスカレード IPv6 アドレス。ホストは、これらの IP アドレスと共有ゲートウェイブリッジインターフェイスを使用して設定されます。デフォルト値は fd69::/125 です。

重要

OpenShift Container Platform 4.17 以降のバージョンでは、クラスターはデフォルトのマスカレードサブネットとして fd69::/112 を使用します。アップグレードされたクラスターの場合は、デフォルトのマスカレードサブネットに変更がありません。

Expand
表2.63 ipsecConfig オブジェクト
フィールド説明

mode

string

IPsec 実装の動作を指定します。次の値のいずれかである必要があります。

  • Disabled: クラスターノードで IPsec が有効になりません。
  • External: 外部ホストとのネットワークトラフィックに対して IPsec が有効になります。
  • Full: Pod トラフィックおよび外部ホストとのネットワークトラフィックに対して IPsec が有効になります。

IPSec が有効な OVN-Kubernetes 設定の例

defaultNetwork:
  type: OVNKubernetes
  ovnKubernetesConfig:
    mtu: 1400
    genevePort: 6081
    ipsecConfig:
      mode: Full
Copy to Clipboard Toggle word wrap

2.7.5. Kubernetes マニフェストおよび Ignition 設定ファイルの作成

一部のクラスター定義ファイルを変更し、クラスターマシンを手動で起動する必要があるため、クラスターがマシンを設定するために必要な Kubernetes マニフェストと Ignition 設定ファイルを生成する必要があります。

インストール設定ファイルは Kubernetes マニフェストに変換されます。マニフェストは Ignition 設定ファイルにラップされます。これはクラスターマシンを設定するために後で使用されます。

重要
  • OpenShift Container Platform のインストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の node-bootstrapper 証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。
  • 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
注記

マニフェストおよび Ignition ファイルを生成するインストールプログラムはアーキテクチャー固有であり、クライアントイメージミラー から取得できます。インストールプログラムの Linux バージョンは s390x でのみ実行されます。このインストーラープログラムは、Mac OS バージョンとしても利用できます。

前提条件

  • OpenShift Container Platform インストールプログラムを取得していること。
  • install-config.yaml インストール設定ファイルを作成していること。

手順

  1. OpenShift Container Platform のインストールプログラムが含まれるディレクトリーに切り替え、クラスターの Kubernetes マニフェストを生成します。

    $ ./openshift-install create manifests --dir <installation_directory> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、作成した install-config.yaml ファイルが含まれるインストールディレクトリーを指定します。
    警告

    3 ノードクラスターをインストールしている場合は、以下の手順を省略してコントロールプレーンノードをスケジュール対象にします。

    重要

    コントロールプレーンノードをデフォルトのスケジュール不可からスケジュール可に設定するには、追加のサブスクリプションが必要です。これは、コントロールプレーンノードがコンピュートノードになるためです。

  2. <installation_directory>/manifests/cluster-scheduler-02-config.yml Kubernetes マニフェストファイルの mastersSchedulable パラメーターが false に設定されていることを確認します。この設定により、Pod がコントロールプレーンマシンにスケジュールされなくなります。

    1. <installation_directory>/manifests/cluster-scheduler-02-config.yml ファイルを開きます。
    2. mastersSchedulable パラメーターを見つけ、これが false に設定されていることを確認します。
    3. ファイルを保存し、終了します。
  3. Ignition 設定ファイルを作成するには、インストールプログラムが含まれるディレクトリーから以下のコマンドを実行します。

    $ ./openshift-install create ignition-configs --dir <installation_directory> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、同じインストールディレクトリーを指定します。

    Ignition 設定ファイルは、インストールディレクトリー内のブートストラップ、コントロールプレーン、およびコンピュートノード用に作成されます。kubeadmin-password および kubeconfig ファイルが ./<installation_directory>/auth ディレクトリーに作成されます。

    .
    ├── auth
    │   ├── kubeadmin-password
    │   └── kubeconfig
    ├── bootstrap.ign
    ├── master.ign
    ├── metadata.json
    └── worker.ign
    Copy to Clipboard Toggle word wrap

2.7.6. IBM Z または IBM LinuxONE 環境でのブートボリューム暗号化の設定

IBM Z® または IBM® LinuxONE 上の OpenShift Container Platform コントロールプレーンおよびコンピュートノードのブートボリュームをオプションで暗号化するには、次の 2 つの方法から選択できます。

  • IBM® Crypto Express (CEX) による Linux Unified Key Setup (LUKS) 暗号化
  • Network Bound Disk Encryption (NBDE)
2.7.6.1. IBM Z または IBM LinuxONE 環境での CEX 経由の LUKS 暗号化

IBM Z® または IBM® LinuxONE 環境で IBM® Crypto Express (CEX) を介してハードウェアベースの Linux Unified Key Setup (LUKS) 暗号化を有効にするには、追加の手順が必要です。このセクションでは、この手順を詳しく説明します。

前提条件

  • butane ユーティリティーをインストールした。
  • Butane でマシン設定を作成する手順を確認した。

手順

  1. 適切な方法を選択し、コントロールプレーンとコンピュートノードの Butane 設定ファイルを作成します。

    • DASD タイプのディスクにインストールする場合は、ディスク暗号化が設定されたコントロールプレーンノード用に、以下の Butane 設定を使用して main-storage.bu という名前のファイルを作成します。次に例を示します。

      variant: openshift
      version: 4.20.0
      metadata:
        name: main-storage
        labels:
          machineconfiguration.openshift.io/role: master
      boot_device:
        layout: s390x-eckd
        luks:
          device: /dev/dasda
          cex:
            enabled: true
      openshift:
        fips: true 
      1
      
        kernel_arguments:
          - rd.luks.key=/etc/luks/cex.key 
      2
      Copy to Clipboard Toggle word wrap
      1
      FIPS モードを有効にするか無効にするかを指定します。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
      2
      デバイスの復号に必要なキーの場所を指定します。この値を変更することはできません。
    • FCP タイプのディスクにインストールする場合は、ディスク暗号化が設定されたコントロールプレーンノード用に、以下の Butane 設定を使用して main-storage.bu という名前のファイルを作成します。次に例を示します。

      variant: openshift
      version: 4.20.0
      metadata:
        name: main-storage
        labels:
          machineconfiguration.openshift.io/role: master
      storage:
        filesystems:
          - device: /dev/mapper/root
            format: xfs
            label: root
            wipe_filesystem: true
        luks:
          - device: /dev/disk/by-label/root
            label: luks-root
            name: root
            wipe_volume: true
            cex:
              enabled: true
      openshift:
        fips: true 
      1
      
        kernel_arguments:
          - rd.luks.key=/etc/luks/cex.key 
      2
      Copy to Clipboard Toggle word wrap
      1
      FIPS モードを有効にするか無効にするかを指定します。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
      2
      デバイスの復号に必要なキーの場所を指定します。この値を変更することはできません。
  2. ignition.platform.id=metal および ignition.firstboot を含むパラメーターファイルを作成します。

    コントロールプレーンマシンのカーネルパラメーターファイルの例

    cio_ignore=all,!condev rd.neednet=1 \
    console=ttysclp0 \
    coreos.inst.install_dev=/dev/disk/by-id/scsi-<serial_number> \
    1
    
    ignition.firstboot ignition.platform.id=metal \
    coreos.inst.ignition_url=http://<http_server>/master.ign \
    2
    
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
    3
    
    ip=<ip_address>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.zfcp=0.0.5677,0x600606680g7f0056,0x034F000000000000 
    4
    Copy to Clipboard Toggle word wrap

    1
    ディスクのタイプに応じて、一意の完全修飾パスを指定します。DASD タイプまたは FCP タイプのディスクを指定できます。
    2
    Ignition 設定ファイルの場所を指定します。master.ign または worker.ign を使用します。HTTP および HTTPS プロトコルのみを使用できます。
    3
    起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP および HTTPS プロトコルのみを使用できます。
    4
    ルートデバイスを指定します。DASD タイプのディスクにインストールする場合は、rd.dasd=0.0.xxxx に置き換えて DASD デバイスを指定します。
    注記

    パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

2.7.6.2. IBM Z または IBM& LinuxONE 環境での静的 IP を使用した NBDE の設定

IBM Z® または IBM® LinuxONE 環境で NBDE ディスク暗号化を有効にするには、追加の手順が必要です。このセクションで詳しく説明します。

前提条件

  • 外部 Tang サーバーをセットアップした。手順は、Network-Bound Disk Encryption を参照してください。
  • butane ユーティリティーをインストールした。
  • Butane でマシン設定を作成する手順を確認した。

手順

  1. コントロールプレーンとコンピュートノードの Butane 設定ファイルを作成します。

    次のコントロールプレーンノードの Butane 設定の例では、ディスク暗号化用に master-storage.bu という名前のファイルを作成します。

    variant: openshift
    version: 4.20.0
    metadata:
      name: master-storage
      labels:
        machineconfiguration.openshift.io/role: master
    storage:
      luks:
        - clevis:
            tang:
              - thumbprint: QcPr_NHFJammnRCA3fFMVdNBwjs
                url: http://clevis.example.com:7500
          device: /dev/disk/by-partlabel/root 
    1
    
          label: luks-root
          name: root
          wipe_volume: true
      filesystems:
        - device: /dev/mapper/root
          format: xfs
          label: root
          wipe_filesystem: true
    openshift:
      fips: true 
    2
    Copy to Clipboard Toggle word wrap
    1
    DASD タイプのディスクにインストールする場合は、device: /dev/disk/by-label/root に置き換えます。
    2
    FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
  2. 次のコマンドを実行して、マシンを起動するためのカスタマイズされた initramfs ファイルを作成します。

    $ coreos-installer pxe customize \
        /root/rhcos-bootfiles/rhcos-<release>-live-initramfs.s390x.img \
        --dest-device /dev/disk/by-id/scsi-<serial_number> --dest-karg-append \
        ip=<ip_address>::<gateway_ip>:<subnet_mask>::<network_device>:none \
        --dest-karg-append nameserver=<nameserver_ip> \
        --dest-karg-append rd.neednet=1 -o \
        /root/rhcos-bootfiles/<node_name>-initramfs.s390x.img
    Copy to Clipboard Toggle word wrap
    注記

    最初のブートの前に、クラスター内の各ノードの initramfs をカスタマイズし、PXE カーネルパラメーターを追加する必要があります。

  3. ignition.platform.id=metal および ignition.firstboot を含むパラメーターファイルを作成します。

    コントロールプレーンマシンのカーネルパラメーターファイルの例

    cio_ignore=all,!condev rd.neednet=1 \
    console=ttysclp0 \
    coreos.inst.install_dev=/dev/<block_device> \
    1
    
    ignition.firstboot ignition.platform.id=metal \
    coreos.inst.ignition_url=http://<http_server>/master.ign \
    2
    
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
    3
    
    ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.zfcp=0.0.5677,0x600606680g7f0056,0x034F000000000000 \
    4
    
    zfcp.allow_lun_scan=0
    Copy to Clipboard Toggle word wrap

    1
    ブロックデバイスタイプを指定します。DASD タイプのディスクにインストールする場合は、/dev/dasda を指定します。FCP タイプのディスクにインストールする場合は、/dev/sda を指定します。NVMe タイプのディスクにインストールする場合は、/dev/nvme0n1 を指定します。
    2
    Ignition 設定ファイルの場所を指定します。master.ign または worker.ign を使用します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    3
    起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    4
    DASD タイプのディスクにインストールする場合は、rd.dasd=0.0.xxxx に置き換えて DASD デバイスを指定します。
    注記

    パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

2.7.7. RHCOS のインストールおよび OpenShift Container Platform ブートストラッププロセスの開始

独自にプロビジョニングする IBM Z® インフラストラクチャーに OpenShift Container Platform をインストールするには、Red Hat Enterprise Linux CoreOS (RHCOS) を LPAR にインストールする必要があります。RHCOS のインストール時に、インストールするマシンのタイプに、OpenShift Container Platform インストールプログラムによって生成された Ignition 設定ファイルを指定する必要があります。適切なネットワーク、DNS、および負荷分散インフラストラクチャーが設定されている場合、RHCOS ゲストマシンの再起動後に、OpenShift Container Platform ブートストラッププロセスが自動的に開始します。

マシンを作成するには、以下の手順を実行します。

前提条件

  • 作成するマシンがアクセスできるプロビジョニングマシンで稼働している HTTP または HTTPS サーバー。
  • セキュアブートを有効にする場合は、適切な Product Signing Key を取得し、IBM ドキュメントの Secure boot on IBM Z and IBM LinuxONE を確認した。

手順

  1. プロビジョニングマシンで Linux にログインします。
  2. RHCOS イメージミラー から Red Hat Enterprise Linux CoreOS (RHCOS) カーネル、initramfs および rootfs ファイルを取得します。

    重要

    RHCOS イメージは OpenShift Container Platform の各リリースごとに変更されない可能性があります。インストールする OpenShift Container Platform バージョンと等しいか、それ以下のバージョンの内で最も新しいバージョンのイメージをダウンロードする必要があります。この手順で説明されている適切な kernel、initramfs、および rootfs アーティファクトのみを使用します。

    ファイル名には、OpenShift Container Platform のバージョン番号が含まれます。以下の例のようになります。

    • kernel: rhcos-<version>-live-kernel-<architecture>
    • initramfs: rhcos-<version>-live-initramfs.<architecture>.img
    • rootfs: rhcos-<version>-live-rootfs.<architecture>.img

      注記

      rootfs イメージは FCP および DASD の場合と同じです。

  3. パラメーターファイルを作成します。以下のパラメーターは特定の仮想マシンに固有のものです。

    • ip= には、以下の 7 つのエントリーを指定します。

      1. マシンの IP アドレス。
      2. 空の文字列。
      3. ゲートウェイ。
      4. ネットマスク。
      5. hostname.domainname 形式のマシンホストおよびドメイン名。この値を省略すると、RHCOS が逆引き DNS ルックアップによりホスト名を取得します。
      6. ネットワークインターフェイス名。この値を省略すると、RHCOS が利用可能なすべてのインターフェイスに IP 設定を適用します。
      7. 静的 IP アドレスを使用する場合、none を指定します。
    • coreos.inst.ignition_url= の場合、マシンロールの Ignition ファイルを指定します。bootstrap.ignmaster.ign、または worker.ign を使用します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    • coreos.live.rootfs_url= の場合、起動しているカーネルおよび initramfs の一致する rootfs アーティファクトを指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    • オプション: セキュアブートを有効にするには、coreos.inst.secure_ipl を追加します。
    • DASD タイプのディスクへのインストールには、以下のタスクを実行します。

      1. coreos.inst.install_dev= には、/dev/disk/by-path/ccw-<device_id> を指定します。<device_id> には、たとえば 0.0.1000 を指定します。
      2. rd.dasd= を使用して、RHCOS がインストールされる DASD を指定します。
      3. その他のパラメーターはすべて変更しません。

        ブートストラップマシンのパラメーターファイルのサンプル bootstrap-0.parm:

        cio_ignore=all,!condev rd.neednet=1 \
        console=ttysclp0 \
        coreos.inst.install_dev=/dev/disk/by-id/scsi-<serial_number> \
        1
        
        coreos.inst.ignition_url=http://<http_server>/bootstrap.ign \
        2
        
        coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
        3
        
        coreos.inst.secure_ipl \
        4
        
        ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
        rd.znet=qeth,0.0.bdf0,0.0.bdf1,0.0.bdf2,layer2=1,portno=0 \
        rd.dasd=0.0.3490
        Copy to Clipboard Toggle word wrap
        1
        ディスクの種類に応じて一意の完全修飾パスを指定します。これは、DASD タイプ、FCP タイプ、または NVMe タイプのディスクのいずれかです。
        2
        Ignition 設定ファイルの場所を指定します。bootstrap.ignmaster.ign、または worker.ign を使用します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
        3
        起動する kernelinitramfsrootfs アーティファクトの場所を指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
        4
        オプション: セキュアブートを有効にするには、coreos.inst.secure_ipl を追加します。

        パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

    • FCP タイプのディスクへのインストールには、以下のタスクを実行します。

      1. rd.zfcp=<adapter>,<wwpn>,<lun> を使用して RHCOS がインストールされる FCP ディスクを指定します。マルチパスの場合、それぞれの追加のステップでこのステップを繰り返します。

        注記

        複数のパスを使用してインストールする場合は、問題が発生する可能性があるため、後でではなくインストールの直後にマルチパスを有効にする必要があります。

      2. インストールデバイスを coreos.inst.install_dev=/dev/disk/by-id/scsi-<serial_number> として設定します。
  4. オプション: generic.ins ファイルを作成します。

    インストール方法によっては、Hardware Management Console (HMC)、DVD、または FTP サーバーのファイルシステム内のインストールデータの場所と、データがコピーされるメモリー位置のマッピングを含む generic.ins ファイルも必要です。サンプルの generic.ins ファイルが、RHEL インストールメディアに付属しています。ファイルには、初期 RAM ディスク (initrd.img)、カーネルイメージ (kernel.img)、およびパラメーター (generic.prm) ファイルのファイル名と、各ファイルのメモリー位置が含まれています。

    generic.ins ファイルの例

    images/kernel.img 0x00000000
    images/initrd.img 0x02000000
    images/genericdvd.prm 0x00010480
    images/initrd.addrsize 0x00010408
    Copy to Clipboard Toggle word wrap

  5. その他のパラメーターはすべて変更しません。

    重要

    マルチパスを完全に有効にするには、インストール後の追加の手順が必要です。詳細は、マシン設定 の「RHCOS のカーネル引数でのマルチパスの有効化」を参照してください。

    以下は、マルチパスが設定されたコンピュートノードのパラメーターファイルのサンプル worker-1.parm です。

    cio_ignore=all,!condev rd.neednet=1 \
    console=ttysclp0 \
    coreos.inst.install_dev=/dev/disk/by-id/scsi-<serial_number> \
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
    coreos.inst.ignition_url=http://<http_server>/worker.ign \
    ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
    rd.znet=qeth,0.0.bdf0,0.0.bdf1,0.0.bdf2,layer2=1,portno=0 \
    rd.zfcp=0.0.1987,0x50050763070bc5e3,0x4008400B00000000 \
    rd.zfcp=0.0.19C7,0x50050763070bc5e3,0x4008400B00000000 \
    rd.zfcp=0.0.1987,0x50050763071bc5e3,0x4008400B00000000 \
    rd.zfcp=0.0.19C7,0x50050763071bc5e3,0x4008400B00000000
    Copy to Clipboard Toggle word wrap

    パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

  6. FTP などを使用し、initramfs、kernel、パラメーターファイル、および RHCOS イメージを LPAR に転送します。FTP を使用してファイルを転送し、起動する方法の詳細は、IBM Z® でインストールを起動して LPAR に RHEL をインストールする を参照してください。
  7. マシンを起動します。
  8. クラスター内の他のマシンに、この手順を繰り返します。
2.7.7.1. 詳細の RHCOS インストールリファレンス

このセクションでは、Red Hat Enterprise Linux CoreOS (RHCOS) の手動インストールプロセスを変更できるようにするネットワーク設定および他の高度なオプションを説明します。以下の表では、RHCOS ライブインストーラーおよび coreos-installer コマンドで使用できるカーネル引数およびコマンドラインのオプションを説明します。

2.7.7.1.1. ISO インストールのネットワークおよびボンディングのオプション

ISO イメージから RHCOS をインストールする場合、そのイメージを起動してノードのネットワークを設定する際に手動でカーネル引数を追加できます。ネットワークの引数が指定されていない場合、RHCOS が Ignition 設定ファイルを取得するためにネットワークが必要であることを検知する際に、DHCP が initramfs でアクティベートされます。

重要

ネットワーク引数を手動で追加する場合は、rd.neednet=1 カーネル引数を追加して、ネットワークを initramfs で有効にする必要があります。

以下の情報は、ISO インストール用に RHCOS ノードでネットワークおよびボンディングを設定する例を示しています。この例では、ip=nameserver=、および bond= カーネル引数の使用方法を説明しています。

注記

順序は、カーネル引数の ip=nameserver=、および bond= を追加する場合に重要です。

ネットワークオプションは、システムの起動時に dracut ツールに渡されます。dracut でサポートされるネットワークオプションの詳細は、dracut.cmdline man ページ を参照してください。

次の例は、ISO インストールのネットワークオプションです。

2.7.7.1.1.1. DHCP または静的 IP アドレスの設定

IP アドレスを設定するには、DHCP (ip=dhcp) を使用するか、個別の静的 IP アドレス (ip=<host_ip>) を設定します。静的 IP を設定する場合、各ノードで DNS サーバー IP アドレス (nameserver=<dns_ip>) を特定する必要があります。次の例では、以下を設定します。

  • ノードの IP アドレス: 10.10.10.2
  • ゲートウェイアドレス: 10.10.10.254
  • ネットワーク: 255.255.255.0
  • ホスト名: core0.example.com
  • DNS サーバーアドレス: 4.4.4.41
  • auto-configuration の値を none に設定します。IP ネットワークが静的に設定されている場合には、自動設定は必要ありません。
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
nameserver=4.4.4.41
Copy to Clipboard Toggle word wrap
注記

DHCP を使用して RHCOS マシンの IP アドレスを設定する場合、マシンは DHCP を介して DNS サーバー情報も取得します。DHCP ベースのデプロイメントの場合、DHCP サーバー設定を使用して RHCOS ノードが使用する DNS サーバーアドレスを定義できます。

2.7.7.1.1.2. 静的ホスト名を使用しない IP アドレスの設定

静的ホスト名を割り当てずに IP アドレスを設定できます。静的ホスト名がユーザーによって設定されていない場合は、逆引き DNS ルックアップによって取得され、自動的に設定されます。静的ホスト名なしで IP アドレスを設定するには、次の例を参照してください。

  • ノードの IP アドレス: 10.10.10.2
  • ゲートウェイアドレス: 10.10.10.254
  • ネットワーク: 255.255.255.0
  • DNS サーバーアドレス: 4.4.4.41
  • auto-configuration の値を none に設定します。IP ネットワークが静的に設定されている場合には、自動設定は必要ありません。
ip=10.10.10.2::10.10.10.254:255.255.255.0::enp1s0:none
nameserver=4.4.4.41
Copy to Clipboard Toggle word wrap
2.7.7.1.1.3. 複数のネットワークインターフェイスの指定

複数の ip= エントリーを設定することで、複数のネットワークインターフェイスを指定できます。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
ip=10.10.10.3::10.10.10.254:255.255.255.0:core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.7.7.1.1.4. デフォルトゲートウェイとルートの設定

オプション: rd.route= value を設定して、追加のネットワークへのルートを設定できます。

注記

1 つまたは複数のネットワークを設定する場合、1 つのデフォルトゲートウェイが必要です。追加のネットワークゲートウェイがプライマリーネットワークゲートウェイと異なる場合、デフォルトゲートウェイはプライマリーネットワークゲートウェイである必要があります。

  • 次のコマンドを実行して、デフォルトゲートウェイを設定します。

    ip=::10.10.10.254::::
    Copy to Clipboard Toggle word wrap
  • 次のコマンドを入力して、追加ネットワークのルートを設定します。

    rd.route=20.20.20.0/24:20.20.20.254:enp2s0
    Copy to Clipboard Toggle word wrap
2.7.7.1.1.5. 単一インターフェイスでの DHCP の無効化

2 つ以上のネットワークインターフェイスがあり、1 つのインターフェイスのみが使用される場合などに、1 つのインターフェイスで DHCP を無効にします。この例では、enp1s0 インターフェイスには静的ネットワーク設定があり、使用されていない enp2s0 では DHCP が無効になっています。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
ip=::::core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.7.7.1.1.6. DHCP と静的 IP 設定の組み合わせ

以下のように、複数のネットワークインターフェイスを持つシステムで、DHCP および静的 IP 設定を組み合わせることができます。

ip=enp1s0:dhcp
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp2s0:none
Copy to Clipboard Toggle word wrap
2.7.7.1.1.7. 個々のインターフェイスでの VLAN の設定

オプション: vlan= パラメーターを使用して、個別のインターフェイスに VLAN を設定できます。

  • ネットワークインターフェイスで VLAN を設定し、静的 IP アドレスを使用するには、次のコマンドを実行します。

    ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp2s0.100:none
    vlan=enp2s0.100:enp2s0
    Copy to Clipboard Toggle word wrap
  • ネットワークインターフェイスで VLAN を設定し、DHCP を使用するには、次のコマンドを実行します。

    ip=enp2s0.100:dhcp
    vlan=enp2s0.100:enp2s0
    Copy to Clipboard Toggle word wrap
2.7.7.1.1.8. 複数の DNS サーバーの指定

以下のように、各サーバーに nameserver= エントリーを追加して、複数の DNS サーバーを指定できます。

nameserver=1.1.1.1
nameserver=8.8.8.8
Copy to Clipboard Toggle word wrap
2.7.7.1.1.9. 複数のネットワークインターフェイスの単一インターフェイスへのボンディング

オプション: bond= オプションを使用して、複数のネットワークインターフェイスを単一のインターフェイスにボンディングできます。次の例を参照してください。

  • ボンディングされたインターフェイスを設定するための構文は、bond=<name>[:<network_interfaces>][:options] です。

    <name> はボンディングデバイス名 (bond0)、<network_interfaces> は物理 (イーサネット) インターフェイスのコンマ区切りのリスト (em1,em2) を表し、options はボンディングオプションのコンマ区切りのリストです。modinfo bonding を入力して、利用可能なオプションを表示します。

  • bond= を使用してボンディングされたインターフェイスを作成する場合は、ボンディングされたインターフェイスの IP アドレスの割り当て方法やその他の情報を指定する必要があります。

    • DHCP を使用するようにボンディングされたインターフェイスを設定するには、ボンドの IP アドレスを dhcp に設定します。以下に例を示します。

      bond=bond0:em1,em2:mode=active-backup
      ip=bond0:dhcp
      Copy to Clipboard Toggle word wrap
    • 静的 IP アドレスを使用するようにボンディングされたインターフェイスを設定するには、必要な特定の IP アドレスと関連情報を入力します。以下に例を示します。
bond=bond0:em1,em2:mode=active-backup,fail_over_mac=1
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:bond0:none
Copy to Clipboard Toggle word wrap

共有 OSA/RoCE カードを使用する場合の問題を回避するために、常にアクティブバックアップモードで fail_over_mac=1 オプションを設定してください。

2.7.7.1.1.10. 複数のネットワークインターフェイスの単一インターフェイスへのボンディング

任意: 以下のように、vlan= パラメーターを指定して、DHCP を使用して、ボンディングされたインターフェイスで VLAN を設定できます。

ip=bond0.100:dhcp
bond=bond0:em1,em2:mode=active-backup
vlan=bond0.100:bond0
Copy to Clipboard Toggle word wrap

次の例を使用して、VLAN でボンディングされたインターフェイスを設定し、静的 IP アドレスを使用します。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:bond0.100:none
bond=bond0:em1,em2:mode=active-backup
vlan=bond0.100:bond0
Copy to Clipboard Toggle word wrap
2.7.7.1.1.11. ネットワークチーミングの使用

任意: team= パラメーターを指定して、ボンディングの代わりにネットワークチーミングを使用できます。

  • チームインターフェイス設定の構文は team=name[:network_interfaces] です。

    name はチームデバイス名 (team0)、network_interfaces は物理 (イーサネット) インターフェイス (em1, em2) のコンマ区切りリストを表します。

注記

RHCOS が次のバージョンの RHEL に切り替わると、チーミングは非推奨になる予定です。詳細は、こちらの Red Hat ナレッジベース記事 を参照してください。

次の例を使用して、ネットワークチームを設定します。

team=team0:em1,em2
ip=team0:dhcp
Copy to Clipboard Toggle word wrap

2.7.8. ブートストラッププロセスの完了まで待機する

OpenShift Container Platform ブートストラッププロセスは、初回のクラスターノードのディスクにインストールされている永続的な RHCOS 環境での起動後に開始します。Ignition 設定ファイルで指定される設定情報は、ブートストラッププロセスを初期化し、マシンに OpenShift Container Platform をインストールするために使用されます。ブートストラッププロセスが完了するまで待機する必要があります。

前提条件

  • クラスターの Ignition 設定ファイルを作成している。
  • 適切なネットワーク、DNS および負荷分散インフラストラクチャーを設定している。
  • インストールプログラムを取得し、クラスターの Ignition 設定ファイルを生成している。
  • RHCOS をクラスターマシンにインストールし、OpenShift Container Platform インストールプログラムで生成される Ignition 設定ファイルを指定している。
  • お使いのマシンでインターネットに直接アクセスできるか、HTTP または HTTPS プロキシーが利用できる。

手順

  1. ブートストラッププロセスをモニターします。

    $ ./openshift-install --dir <installation_directory> wait-for bootstrap-complete \ 
    1
    
        --log-level=info 
    2
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。
    2
    異なるインストールの詳細情報を表示するには、info ではなく、warndebug、または error を指定します。

    出力例

    INFO Waiting up to 30m0s for the Kubernetes API at https://api.test.example.com:6443...
    INFO API v1.33.4 up
    INFO Waiting up to 30m0s for bootstrapping to complete...
    INFO It is now safe to remove the bootstrap resources
    Copy to Clipboard Toggle word wrap

    Kubernetes API サーバーでこれがコントロールプレーンマシンにブートストラップされていることを示すシグナルが出されるとコマンドは成功します。

  2. ブートストラッププロセスが完了したら、ブートストラップマシンをロードバランサーから削除します。

    重要

    この時点で、ブートストラップマシンをロードバランサーから削除する必要があります。さらに、ブートストラップマシン自体を削除し、再フォーマットすることができます。

2.7.9. CLI の使用によるクラスターへのログイン

クラスター kubeconfig ファイルをエクスポートし、デフォルトシステムユーザーとしてクラスターにログインできます。kubeconfig ファイルには、クライアントを正しいクラスターおよび API サーバーに接続するために CLI で使用されるクラスターに関する情報が含まれます。このファイルはクラスターに固有のファイルであり、OpenShift Container Platform のインストール時に作成されます。

前提条件

  • OpenShift Container Platform クラスターをデプロイしていること。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. 次のコマンドを実行して、kubeadmin 認証情報をエクスポートします。

    $ export KUBECONFIG=<installation_directory>/auth/kubeconfig 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。
  2. 次のコマンドを実行し、エクスポートされた設定を使用して oc コマンドを正常に実行できることを確認します。

    $ oc whoami
    Copy to Clipboard Toggle word wrap

    出力例

    system:admin
    Copy to Clipboard Toggle word wrap

2.7.10. マシンの証明書署名要求の承認

マシンをクラスターに追加する際に、追加したそれぞれのマシンに対して 2 つの保留状態の証明書署名要求 (CSR) が生成されます。これらの CSR が承認されていることを確認するか、必要な場合はそれらを承認してください。最初にクライアント要求を承認し、次にサーバー要求を承認する必要があります。

前提条件

  • マシンがクラスターに追加されています。

手順

  1. クラスターがマシンを認識していることを確認します。

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME      STATUS    ROLES   AGE  VERSION
    master-0  Ready     master  63m  v1.33.4
    master-1  Ready     master  63m  v1.33.4
    master-2  Ready     master  64m  v1.33.4
    Copy to Clipboard Toggle word wrap

    出力には作成したすべてのマシンがリスト表示されます。

    注記

    上記の出力には、一部の CSR が承認されるまで、ワーカーノード (ワーカーノードとも呼ばれる) が含まれない場合があります。

  2. 保留中の証明書署名要求 (CSR) を確認し、クラスターに追加したそれぞれのマシンのクライアントおよびサーバー要求に Pending または Approved ステータスが表示されていることを確認します。

    $ oc get csr
    Copy to Clipboard Toggle word wrap

    出力例

    NAME        AGE   REQUESTOR                                   CONDITION
    csr-mddf5   20m   system:node:master-01.example.com   Approved,Issued
    csr-z5rln   16m   system:node:worker-21.example.com   Approved,Issued
    Copy to Clipboard Toggle word wrap

  3. 追加したマシンの保留中の CSR すべてが Pending ステータスになった後に CSR が承認されない場合には、クラスターマシンの CSR を承認します。

    注記

    CSR のローテーションは自動的に実行されるため、クラスターにマシンを追加後 1 時間以内に CSR を承認してください。1 時間以内に承認しない場合には、証明書のローテーションが行われ、各ノードに 3 つ以上の証明書が存在するようになります。これらの証明書すべてを承認する必要があります。クライアントの CSR が承認された後に、Kubelet は提供証明書のセカンダリー CSR を作成します。これには、手動の承認が必要になります。次に、後続の提供証明書の更新要求は、Kubelet が同じパラメーターを持つ新規証明書を要求する場合に machine-approver によって自動的に承認されます。

    注記

    ベアメタルおよび他の user-provisioned infrastructure などのマシン API ではないプラットフォームで実行されているクラスターの場合、kubelet 提供証明書要求 (CSR) を自動的に承認する方法を実装する必要があります。要求が承認されない場合、API サーバーが kubelet に接続する際に提供証明書が必須であるため、oc execoc rsh、および oc logs コマンドは正常に実行できません。Kubelet エンドポイントにアクセスする操作には、この証明書の承認が必要です。この方法は新規 CSR の有無を監視し、CSR が system:node または system:admin グループの node-bootstrapper サービスアカウントによって提出されていることを確認し、ノードの ID を確認します。

    • それらを個別に承認するには、それぞれの有効な CSR に以下のコマンドを実行します。

      $ oc adm certificate approve <csr_name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <csr_name> は、現行の CSR のリストからの CSR の名前です。
    • すべての保留中の CSR を承認するには、以下のコマンドを実行します。

      $ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs --no-run-if-empty oc adm certificate approve
      Copy to Clipboard Toggle word wrap
      注記

      一部の Operator は、一部の CSR が承認されるまで利用できない可能性があります。

  4. クライアント要求が承認されたら、クラスターに追加した各マシンのサーバー要求を確認する必要があります。

    $ oc get csr
    Copy to Clipboard Toggle word wrap

    出力例

    NAME        AGE     REQUESTOR                                                                   CONDITION
    csr-bfd72   5m26s   system:node:ip-10-0-50-126.us-east-2.compute.internal                       Pending
    csr-c57lv   5m26s   system:node:ip-10-0-95-157.us-east-2.compute.internal                       Pending
    ...
    Copy to Clipboard Toggle word wrap

  5. 残りの CSR が承認されず、それらが Pending ステータスにある場合、クラスターマシンの CSR を承認します。

    • それらを個別に承認するには、それぞれの有効な CSR に以下のコマンドを実行します。

      $ oc adm certificate approve <csr_name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <csr_name> は、現行の CSR のリストからの CSR の名前です。
    • すべての保留中の CSR を承認するには、以下のコマンドを実行します。

      $ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs oc adm certificate approve
      Copy to Clipboard Toggle word wrap
  6. すべてのクライアントおよびサーバーの CSR が承認された後に、マシンのステータスが Ready になります。以下のコマンドを実行して、これを確認します。

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME      STATUS    ROLES   AGE  VERSION
    master-0  Ready     master  73m  v1.33.4
    master-1  Ready     master  73m  v1.33.4
    master-2  Ready     master  74m  v1.33.4
    worker-0  Ready     worker  11m  v1.33.4
    worker-1  Ready     worker  11m  v1.33.4
    Copy to Clipboard Toggle word wrap

    注記

    サーバー CSR の承認後にマシンが Ready ステータスに移行するまでに数分の時間がかかる場合があります。

関連情報

2.7.11. Operator の初期設定

コントロールプレーンの初期化後に、一部の Operator を利用可能にするためにそれらをすぐに設定する必要があります。

前提条件

  • コントロールプレーンが初期化されています。

手順

  1. クラスターコンポーネントがオンラインになることを確認します。

    $ watch -n5 oc get clusteroperators
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
    authentication                             4.20.0    True        False         False      19m
    baremetal                                  4.20.0    True        False         False      37m
    cloud-credential                           4.20.0    True        False         False      40m
    cluster-autoscaler                         4.20.0    True        False         False      37m
    config-operator                            4.20.0    True        False         False      38m
    console                                    4.20.0    True        False         False      26m
    csi-snapshot-controller                    4.20.0    True        False         False      37m
    dns                                        4.20.0    True        False         False      37m
    etcd                                       4.20.0    True        False         False      36m
    image-registry                             4.20.0    True        False         False      31m
    ingress                                    4.20.0    True        False         False      30m
    insights                                   4.20.0    True        False         False      31m
    kube-apiserver                             4.20.0    True        False         False      26m
    kube-controller-manager                    4.20.0    True        False         False      36m
    kube-scheduler                             4.20.0    True        False         False      36m
    kube-storage-version-migrator              4.20.0    True        False         False      37m
    machine-api                                4.20.0    True        False         False      29m
    machine-approver                           4.20.0    True        False         False      37m
    machine-config                             4.20.0    True        False         False      36m
    marketplace                                4.20.0    True        False         False      37m
    monitoring                                 4.20.0    True        False         False      29m
    network                                    4.20.0    True        False         False      38m
    node-tuning                                4.20.0    True        False         False      37m
    openshift-apiserver                        4.20.0    True        False         False      32m
    openshift-controller-manager               4.20.0    True        False         False      30m
    openshift-samples                          4.20.0    True        False         False      32m
    operator-lifecycle-manager                 4.20.0    True        False         False      37m
    operator-lifecycle-manager-catalog         4.20.0    True        False         False      37m
    operator-lifecycle-manager-packageserver   4.20.0    True        False         False      32m
    service-ca                                 4.20.0    True        False         False      38m
    storage                                    4.20.0    True        False         False      37m
    Copy to Clipboard Toggle word wrap

  2. 利用不可の Operator を設定します。
2.7.11.1. イメージレジストリーストレージの設定

Image Registry Operator は、デフォルトストレージを提供しないプラットフォームでは最初は利用できません。インストール後に、レジストリー Operator を使用できるようにレジストリーをストレージを使用するように設定する必要があります。

実稼働クラスターに必要な永続ボリュームの設定に関する手順が示されます。該当する場合、空のディレクトリーをストレージの場所として設定する方法が表示されます。これは、実稼働以外のクラスターでのみ利用できます。

アップグレード時に Recreate ロールアウトストラテジーを使用して、イメージレジストリーがブロックストレージタイプを使用することを許可するための追加の手順が提供されます。

2.7.11.1.1. IBM Z の場合のレジストリーストレージの設定

クラスター管理者は、インストール後にレジストリーをストレージを使用できるように設定する必要があります。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。
  • IBM Z® にクラスターがある。
  • Red Hat OpenShift Data Foundation などのクラスターのプロビジョニングされた永続ストレージがある。

    重要

    OpenShift Container Platform は、1 つのレプリカのみが存在する場合にイメージレジストリーストレージの ReadWriteOnce アクセスをサポートします。ReadWriteOnce アクセスでは、レジストリーが Recreate ロールアウト戦略を使用する必要もあります。2 つ以上のレプリカで高可用性をサポートするイメージレジストリーをデプロイするには、ReadWriteMany アクセスが必要です。

  • 100 Gi の容量がある。

手順

  1. レジストリーをストレージを使用できるように設定するには、configs.imageregistry/cluster リソースの spec.storage.pvc を変更します。

    注記

    共有ストレージを使用する場合は、外部からアクセスを防ぐためにセキュリティー設定を確認します。

  2. レジストリー Pod がないことを確認します。

    $ oc get pod -n openshift-image-registry -l docker-registry=default
    Copy to Clipboard Toggle word wrap

    出力例

    No resources found in openshift-image-registry namespace
    Copy to Clipboard Toggle word wrap

    注記

    出力にレジストリー Pod がある場合は、この手順を続行する必要はありません。

  3. レジストリー設定を確認します。

    $ oc edit configs.imageregistry.operator.openshift.io
    Copy to Clipboard Toggle word wrap

    出力例

    storage:
      pvc:
        claim:
    Copy to Clipboard Toggle word wrap

    claim フィールドを空のままにし、image-registry-storage PVC の自動作成を可能にします。

  4. clusteroperator ステータスを確認します。

    $ oc get clusteroperator image-registry
    Copy to Clipboard Toggle word wrap

    出力例

    NAME             VERSION              AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
    image-registry   4.20                 True        False         False      6h50m
    Copy to Clipboard Toggle word wrap

  5. イメージのビルドおよびプッシュを有効にするためにレジストリーが managed に設定されていることを確認します。

    • 以下を実行します。

      $ oc edit configs.imageregistry/cluster
      Copy to Clipboard Toggle word wrap

      次に、行を変更します。

      managementState: Removed
      Copy to Clipboard Toggle word wrap

      次のように変更してください。

      managementState: Managed
      Copy to Clipboard Toggle word wrap
2.7.11.1.2. 実稼働以外のクラスターでのイメージレジストリーのストレージの設定

Image Registry Operator のストレージを設定する必要があります。実稼働用以外のクラスターの場合、イメージレジストリーは空のディレクトリーに設定することができます。これを実行する場合、レジストリーを再起動するとすべてのイメージが失われます。

手順

  • イメージレジストリーストレージを空のディレクトリーに設定するには、以下を実行します。

    $ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"storage":{"emptyDir":{}}}}'
    Copy to Clipboard Toggle word wrap
    警告

    実稼働用以外のクラスターにのみこのオプションを設定します。

    Image Registry Operator がそのコンポーネントを初期化する前にこのコマンドを実行する場合、oc patch コマンドは以下のエラーを出して失敗します。

    Error from server (NotFound): configs.imageregistry.operator.openshift.io "cluster" not found
    Copy to Clipboard Toggle word wrap

    数分待機した後に、このコマンドを再び実行します。

2.7.12. user-provisioned infrastructure でのインストールの完了

Operator の設定が完了したら、独自に提供するインフラストラクチャーへのクラスターのインストールを完了できます。

前提条件

  • コントロールプレーンが初期化されています。
  • Operator の初期設定を完了済みです。

手順

  1. 以下のコマンドを使用して、すべてのクラスターコンポーネントがオンラインであることを確認します。

    $ watch -n5 oc get clusteroperators
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
    authentication                             4.20.0    True        False         False      19m
    baremetal                                  4.20.0    True        False         False      37m
    cloud-credential                           4.20.0    True        False         False      40m
    cluster-autoscaler                         4.20.0    True        False         False      37m
    config-operator                            4.20.0    True        False         False      38m
    console                                    4.20.0    True        False         False      26m
    csi-snapshot-controller                    4.20.0    True        False         False      37m
    dns                                        4.20.0    True        False         False      37m
    etcd                                       4.20.0    True        False         False      36m
    image-registry                             4.20.0    True        False         False      31m
    ingress                                    4.20.0    True        False         False      30m
    insights                                   4.20.0    True        False         False      31m
    kube-apiserver                             4.20.0    True        False         False      26m
    kube-controller-manager                    4.20.0    True        False         False      36m
    kube-scheduler                             4.20.0    True        False         False      36m
    kube-storage-version-migrator              4.20.0    True        False         False      37m
    machine-api                                4.20.0    True        False         False      29m
    machine-approver                           4.20.0    True        False         False      37m
    machine-config                             4.20.0    True        False         False      36m
    marketplace                                4.20.0    True        False         False      37m
    monitoring                                 4.20.0    True        False         False      29m
    network                                    4.20.0    True        False         False      38m
    node-tuning                                4.20.0    True        False         False      37m
    openshift-apiserver                        4.20.0    True        False         False      32m
    openshift-controller-manager               4.20.0    True        False         False      30m
    openshift-samples                          4.20.0    True        False         False      32m
    operator-lifecycle-manager                 4.20.0    True        False         False      37m
    operator-lifecycle-manager-catalog         4.20.0    True        False         False      37m
    operator-lifecycle-manager-packageserver   4.20.0    True        False         False      32m
    service-ca                                 4.20.0    True        False         False      38m
    storage                                    4.20.0    True        False         False      37m
    Copy to Clipboard Toggle word wrap

    あるいは、以下のコマンドを使用すると、すべてのクラスターが利用可能な場合に通知されます。また、このコマンドは認証情報を取得して表示します。

    $ ./openshift-install --dir <installation_directory> wait-for install-complete 
    1
    Copy to Clipboard Toggle word wrap
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。

    出力例

    INFO Waiting up to 30m0s for the cluster to initialize...
    Copy to Clipboard Toggle word wrap

    Cluster Version Operator が Kubernetes API サーバーから OpenShift Container Platform クラスターのデプロイを終了するとコマンドは成功します。

    重要
    • インストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の node-bootstrapper 証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。
    • 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
  2. Kubernetes API サーバーが Pod と通信していることを確認します。

    1. すべての Pod のリストを表示するには、以下のコマンドを使用します。

      $ oc get pods --all-namespaces
      Copy to Clipboard Toggle word wrap

      出力例

      NAMESPACE                         NAME                                            READY   STATUS      RESTARTS   AGE
      openshift-apiserver-operator      openshift-apiserver-operator-85cb746d55-zqhs8   1/1     Running     1          9m
      openshift-apiserver               apiserver-67b9g                                 1/1     Running     0          3m
      openshift-apiserver               apiserver-ljcmx                                 1/1     Running     0          1m
      openshift-apiserver               apiserver-z25h4                                 1/1     Running     0          2m
      openshift-authentication-operator authentication-operator-69d5d8bf84-vh2n8        1/1     Running     0          5m
      ...
      Copy to Clipboard Toggle word wrap

    2. 以下のコマンドを使用して、直前のコマンドの出力にリスト表示される Pod のログを表示します。

      $ oc logs <pod_name> -n <namespace> 
      1
      Copy to Clipboard Toggle word wrap
      1
      直前のコマンドの出力にあるように、Pod 名および namespace を指定します。

      Pod のログが表示される場合、Kubernetes API サーバーはクラスターマシンと通信できます。

  3. FCP (Fibre Channel Protocol) を使用したインストールでは、マルチパスを有効にするために追加の手順が必要です。インストール時にマルチパスを有効にしないでください。

    詳細は、インストール後のマシン設定タスク ドキュメントで、「RHCOS でのカーネル引数を使用したマルチパスの有効化」を参照してください。

検証

OpenShift Container Platform のブートストラッププロセス中にセキュアブートを有効にした場合は、次の検証手順が必要です。

  1. 次のコマンドを実行してノードをデバッグします。

    $ oc debug node/<node_name>
    chroot /host
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、セキュアブートが有効になっていることを確認します。

    $ cat /sys/firmware/ipl/secure
    Copy to Clipboard Toggle word wrap

    出力例

    1 
    1
    Copy to Clipboard Toggle word wrap

    1
    セキュアブートが有効になっている場合、値は 1 です。有効になっていない場合は 0 です。
  3. 次のコマンドを実行して、再 IPL 設定をリスト表示します。

    # lsreipl
    Copy to Clipboard Toggle word wrap

    FCP ディスクの出力例

    Re-IPL type: fcp
    WWPN: 0x500507630400d1e3
    LUN: 0x4001400e00000000
    Device: 0.0.810e
    bootprog: 0
    br_lba: 0
    Loadparm: ""
    Bootparms: ""
    clear: 0
    Copy to Clipboard Toggle word wrap

    DASD ディスクの出力例

    for DASD output:
    Re-IPL type: ccw
    Device: 0.0.525d
    Loadparm: ""
    clear: 0
    Copy to Clipboard Toggle word wrap

  4. 次のコマンドを実行してノードをシャットダウンします。

    sudo shutdown -h
    Copy to Clipboard Toggle word wrap
  5. Hardware Management Console (HMC) から LPAR からのブートを開始します。IBM ドキュメントの Initiating a secure boot from an LPAR を参照してください。
  6. ノードが復帰したら、セキュアブートのステータスを再度確認します。

2.7.13. OpenShift Container Platform の Telemetry アクセス

OpenShift Container Platform 4.20 では、Telemetry サービスにもインターネットアクセスが必要です。Telemetry サービスは、クラスターの健全性と更新の成功に関するメトリクスを提供するためにデフォルトで実行されます。クラスターがインターネットに接続されている場合、Telemetry は自動的に実行され、クラスターは OpenShift Cluster Manager に登録されます。

OpenShift Cluster Manager インベントリーが正常である (Telemetry によって自動的に維持、または OpenShift Cluster Manager を使用して手動で維持) ことを確認した後に、subscription watch を使用 して、アカウントまたはマルチクラスターレベルで OpenShift Container Platform サブスクリプションを追跡します。

2.7.14. 次のステップ

2.8. 非接続環境で IBM Z および IBM LinuxONE 上の LPAR にクラスターをインストールする

OpenShift Container Platform バージョン 4.20 では、非接続環境で、ユーザーがプロビジョニングする IBM Z® または IBM® LinuxONE インフラストラクチャー上の論理パーティション (LPAR) にクラスターをインストールできます。

注記

このドキュメントは IBM Z® のみを参照しますが、これに含まれるすべての情報は IBM® LinuxONE にも適用されます。

2.8.1. 前提条件

2.8.2. ネットワークが制限された環境でのインストールについて

OpenShift Container Platform 4.20 では、ソフトウェアコンポーネントを取得するためにインターネットへのアクティブな接続を必要としないインストールを実行できます。ネットワークが制限された環境のインストールは、クラスターのインストール先となるクラウドプラットフォームに応じて、installer-provisioned infrastructure または user-provisioned infrastructure を使用して実行できます。

クラウドプラットフォーム上でネットワークが制限されたインストールの実行を選択した場合でも、そのクラウド API へのアクセスが必要になります。Amazon Web Service の Route 53 DNS や IAM サービスなどの一部のクラウド機能には、インターネットアクセスが必要です。ネットワークによっては、ベアメタルハードウェア、Nutanix、または VMware vSphere へのインストールに必要なインターネットアクセスが少なくて済む場合があります。

ネットワークが制限されたインストールを完了するには、OpenShift イメージレジストリーのコンテンツをミラーリングし、インストールメディアを含むレジストリーを作成する必要があります。このミラーは、インターネットと制限されたネットワークの両方にアクセスできるミラーホストで、または制限に対応する他の方法を使用して作成できます。

重要

user-provisioned installation の設定は複雑であるため、user-provisioned infrastructure を使用してネットワークが制限されたインストールを試行する前に、標準的な user-provisioned infrastructure を実行することを検討してください。このテストが完了すると、ネットワークが制限されたインストール時に発生する可能性のある問題の切り分けやトラブルシューティングがより容易になります。

2.8.2.1. その他の制限

ネットワークが制限された環境のクラスターには、以下の追加の制限および制約があります。

  • ClusterVersion ステータスには Unable to retrieve available updates エラーが含まれます。
  • デフォルトでは、必要なイメージストリームタグにアクセスできないため、開発者カタログのコンテンツは使用できません。

2.8.3. user-provisioned infrastructure の準備

user-provisioned infrastructure に OpenShift Container Platform をインストールする前に、基礎となるインフラストラクチャーを準備する必要があります。

このセクションでは、OpenShift Container Platform インストールの準備としてクラスターインフラストラクチャーを設定するために必要な手順の概要を説明します。これには、クラスターノード用の IP ネットワークおよびネットワーク接続の設定、Ignition ファイルの Web サーバーの準備、ファイアウォール経由での必要なポートの有効化、必要な DNS および負荷分散インフラストラクチャーの設定が含まれます。

準備後、クラスターインフラストラクチャーは、user-provisioned infrastructure を使用したクラスターの要件 セクションで説明されている要件を満たす必要があります。

前提条件

手順

  1. 静的 IP アドレスをセットアップします。
  2. HTTP または HTTPS サーバーを設定し、Ignition ファイルをクラスターノードに提供します。
  3. ネットワークインフラストラクチャーがクラスターコンポーネント間の必要なネットワーク接続を提供することを確認します。要件に関する詳細は、user-provisioned infrastructure のネットワーク要件 のセクションを参照してください。
  4. OpenShift Container Platform クラスターコンポーネントで通信するために必要なポートを有効にするようにファイアウォールを設定します。必要なポートの詳細は、user-provisioned infrastructure のネットワーク要件 のセクションを参照してください。

    重要

    デフォルトで、ポート 1936 は OpenShift Container Platform クラスターにアクセスできます。これは、各コントロールプレーンノードがこのポートへのアクセスを必要とするためです。

    Ingress ロードバランサーを使用してこのポートを公開しないでください。これを実行すると、Ingress コントローラーに関連する統計やメトリクスなどの機密情報が公開される可能性があるためです。

  5. クラスターに必要な DNS インフラストラクチャーを設定します。

    1. Kubernetes API、アプリケーションワイルドカード、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンの DNS 名前解決を設定します。
    2. Kubernetes API、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンの逆引き DNS 解決を設定します。

      OpenShift Container Platform DNS 要件の詳細は、user-provisioned DNS 要件 のセクションを参照してください。

  6. DNS 設定を検証します。

    1. インストールノードから、Kubernetes API、ワイルドカードルート、およびクラスターノードのレコード名に対して DNS ルックアップを実行します。応答の IP アドレスが正しいコンポーネントに対応することを確認します。
    2. インストールノードから、ロードバランサーとクラスターノードの IP アドレスに対して逆引き DNS ルックアップを実行します。応答のレコード名が正しいコンポーネントに対応することを確認します。

      DNS 検証手順の詳細は、user-provisioned infrastructure の DNS 解決の検証 のセクションを参照してください。

  7. 必要な API およびアプリケーションの Ingress 負荷分散インフラストラクチャーをプロビジョニングします。要件に関する詳細は、user-provisioned infrastructure の負荷分散要件 のセクションを参照してください。
注記

一部の負荷分散ソリューションでは、負荷分散を初期化する前に、クラスターノードの DNS 名前解決を有効化する必要があります。

2.8.4. インストール設定ファイルの手動作成

クラスターをインストールするには、インストール設定ファイルを手動で作成する必要があります。

前提条件

  • インストールプログラムで使用するための SSH 公開鍵がローカルマシン上に存在する。この鍵は、デバッグや障害復旧のために、クラスターノードへの SSH 認証に使用できます。
  • OpenShift Container Platform インストールプログラムとクラスターのプルシークレットを取得している。

手順

  1. 必要なインストールアセットを保存するためのインストールディレクトリーを作成します。

    $ mkdir <installation_directory>
    Copy to Clipboard Toggle word wrap
    重要

    このディレクトリーは必ず作成してください。ブートストラップ X.509 証明書などの一部のインストールアセットは、有効期限が短いため、インストールディレクトリーを再利用しないでください。別のクラスターインストールの個別のファイルを再利用する必要がある場合は、それらをディレクトリーにコピーすることができます。ただし、インストールアセットのファイル名はリリース間で変更される可能性があります。インストールファイルを以前のバージョンの OpenShift Container Platform からコピーする場合は注意してください。

  2. 提供されているサンプルの install-config.yaml ファイルテンプレートをカスタマイズし、ファイルを <installation_directory> に保存します。

    注記

    この設定ファイルの名前を install-config.yaml と付ける必要があります。

  3. 多くのクラスターのインストールに使用できるように、install-config.yaml ファイルをバックアップします。

    重要

    インストールプロセスの次のステップで install-config.yaml ファイルを使用するため、今すぐこのファイルをバックアップしてください。

2.8.4.1. IBM Z のサンプル install-config.yaml ファイル

install-config.yaml ファイルをカスタマイズして、OpenShift Container Platform クラスターのプラットフォームに関する詳細を指定するか、必要なパラメーターの値を変更することができます。

apiVersion: v1
baseDomain: example.com 
1

compute: 
2

- hyperthreading: Enabled 
3

  name: worker
  replicas: 0 
4

  architecture: s390x
controlPlane: 
5

  hyperthreading: Enabled 
6

  name: master
  replicas: 3 
7

  architecture: s390x
metadata:
  name: test 
8

networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14 
9

    hostPrefix: 23 
10

  networkType: OVNKubernetes 
11

  serviceNetwork: 
12

  - 172.30.0.0/16
platform:
  none: {} 
13

fips: false 
14

pullSecret: '{"auths":{"<local_registry>": {"auth": "<credentials>","email": "you@example.com"}}}' 
15

sshKey: 'ssh-ed25519 AAAA...' 
16

additionalTrustBundle: | 
17

  -----BEGIN CERTIFICATE-----
  ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  -----END CERTIFICATE-----
imageContentSources: 
18

- mirrors:
  - <local_repository>/ocp4/openshift4
  source: quay.io/openshift-release-dev/ocp-release
- mirrors:
  - <local_repository>/ocp4/openshift4
  source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
Copy to Clipboard Toggle word wrap
1
クラスターのベースドメイン。すべての DNS レコードはこのベースのサブドメインである必要があり、クラスター名が含まれる必要があります。
2 5
controlPlane セクションは単一マッピングですが、compute セクションはマッピングのシーケンスになります。複数の異なるデータ構造の要件を満たすには、compute セクションの最初の行はハイフン - で始め、controlPlane セクションの最初の行はハイフンで始めることができません。1 つのコントロールプレーンプールのみが使用されます。
3 6
同時マルチスレッド (SMT) またはハイパースレッディングを有効/無効にするかどうかを指定します。デフォルトでは、SMT はマシンのコアのパフォーマンスを上げるために有効にされます。パラメーター値を Disabled に設定するとこれを無効にすることができます。SMT を無効にする場合、これをすべてのクラスターマシンで無効にする必要があります。これにはコントロールプレーンとコンピュートマシンの両方が含まれます。
注記

同時マルチスレッド (SMT) はデフォルトで有効になっています。SMT が OpenShift Container Platform ノードで利用できない場合、hyperthreading パラメーターは影響を受けません。

重要

OpenShift Container Platform ノードまたは install-config.yaml ファイルであるかに関係なく hyperthreading を無効にする場合、容量計画においてマシンのパフォーマンスの大幅な低下が考慮に入れられていることを確認します。

4
OpenShift Container Platform を user-provisioned infrastructure にインストールする場合は、この値を 0 に設定する必要があります。installer-provisioned installation では、パラメーターはクラスターが作成し、管理するコンピュートマシンの数を制御します。user-provisioned installation では、クラスターのインストールの終了前にコンピュートマシンを手動でデプロイする必要があります。
注記

3 ノードクラスターをインストールする場合は、Red Hat Enterprise Linux CoreOS (RHCOS) マシンをインストールする際にコンピュートマシンをデプロイしないでください。

7
クラスターに追加するコントロールプレーンマシンの数。クラスターをこれらの値をクラスターの etcd エンドポイント数として使用するため、値はデプロイするコントロールプレーンマシンの数に一致する必要があります。
8
DNS レコードに指定したクラスター名。
9
Pod IP アドレスの割り当てに使用する IP アドレスのブロック。このブロックは既存の物理ネットワークと重複できません。これらの IP アドレスは Pod ネットワークに使用されます。外部ネットワークから Pod にアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定する必要があります。
注記

クラス E の CIDR 範囲は、将来の使用のために予約されています。クラス E CIDR 範囲を使用するには、ネットワーク環境がクラス E CIDR 範囲内の IP アドレスを受け入れるようにする必要があります。

10
それぞれの個別ノードに割り当てるサブネット接頭辞長。たとえば、hostPrefix23 に設定されている場合、各ノードに指定の cidr から /23 サブネットが割り当てられます。これにより、510 (2^(32 - 23) - 2) Pod IP アドレスが許可されます。外部ネットワークからのノードへのアクセスを提供する必要がある場合には、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
11
インストールするクラスターネットワークプラグイン。サポートされる値はデフォルト値の OVNKubernetes のみです。
12
サービス IP アドレスに使用する IP アドレスプール。1 つの IP アドレスプールのみを入力できます。このブロックは既存の物理ネットワークと重複できません。外部ネットワークからサービスにアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
13
プラットフォームを none に設定する必要があります。IBM Z® インフラストラクチャー用に追加のプラットフォーム設定変数を指定できません。
重要

プラットフォームタイプ none でインストールされたクラスターは、Machine API を使用したコンピューティングマシンの管理など、一部の機能を使用できません。この制限は、クラスターに接続されている計算マシンが、通常はこの機能をサポートするプラットフォームにインストールされている場合でも適用されます。このパラメーターは、インストール後に変更することはできません。

14
FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
重要

クラスターで FIPS モードを有効にするには、FIPS モードで動作するように設定された Red Hat Enterprise Linux (RHEL) コンピューターからインストールプログラムを実行する必要があります。RHEL で FIPS モードを設定する方法の詳細は、RHEL から FIPS モードへの切り替え を参照してください。

FIPS モードでブートされた Red Hat Enterprise Linux (RHEL) または Red Hat Enterprise Linux CoreOS (RHCOS) を実行する場合、OpenShift Container Platform コアコンポーネントは、x86_64、ppc64le、および s390x アーキテクチャーのみで、FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用します。

15
<local_registry> には、レジストリードメイン名と、ミラーレジストリーがコンテンツを提供するために使用するポートをオプションで指定します。例: registry.example.com または registry.example.com:5000<credentials> に、ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードを指定します。
16
Red Hat Enterprise Linux CoreOS (RHCOS) の core ユーザーの SSH 公開鍵。
注記

インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、ssh-agent プロセスが使用する SSH キーを指定します。

17
additionalTrustBundle パラメーターおよび値を追加します。この値は、ミラーレジストリーに使用した証明書ファイルの内容である必要があります。証明書ファイルは、既存の信頼できる認証局、またはミラーレジストリー用に生成した自己署名証明書のいずれかです。
18
リポジトリーのミラーリングに使用したコマンドの出力に従って、imageContentSources セクションを指定します。
重要
  • oc adm release mirror コマンドを使用する場合は、imageContentSources セクションの出力を使用します。
  • oc mirror コマンドを使用する場合は、コマンドの実行によって生成される ImageContentSourcePolicy ファイルの repositoryDigestMirrors セクションを使用します。
  • ImageContentSourcePolicy は非推奨になりました。詳細は、イメージレジストリーリポジトリーミラーリングの設定 を参照してください。
2.8.4.2. インストール時のクラスター全体のプロキシーの設定

実稼働環境では、インターネットへの直接アクセスを拒否し、代わりに HTTP または HTTPS プロキシーを使用することができます。プロキシー設定を install-config.yaml ファイルで行うことにより、新規の OpenShift Container Platform クラスターをプロキシーを使用するように設定できます。

前提条件

  • 既存の install-config.yaml ファイルがある。
  • クラスターがアクセスする必要のあるサイトを確認済みで、それらのいずれかがプロキシーをバイパスする必要があるかどうかを判別している。デフォルトで、すべてのクラスター Egress トラフィック (クラスターをホストするクラウドに関するクラウドプロバイダー API に対する呼び出しを含む) はプロキシーされます。プロキシーを必要に応じてバイパスするために、サイトを Proxy オブジェクトの spec.noProxy フィールドに追加している。

    注記

    Proxy オブジェクトの status.noProxy フィールドには、インストール設定の networking.machineNetwork[].cidrnetworking.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) も設定されます。

手順

  1. 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.com 
    3
    
    additionalTrustBundle: | 
    4
    
        -----BEGIN CERTIFICATE-----
        <MY_TRUSTED_CA_CERT>
        -----END CERTIFICATE-----
    additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle> 
    5
    Copy to Clipboard Toggle word wrap
    1
    クラスター外の HTTP 接続を作成するために使用するプロキシー URL。URL スキームは http である必要があります。
    2
    クラスター外で HTTPS 接続を作成するために使用するプロキシー URL。
    3
    プロキシーから除外するための宛先ドメイン名、IP アドレス、または他のネットワーク CIDR のコンマ区切りのリスト。サブドメインのみと一致するように、ドメインの前に . を付けます。たとえば、.y.comx.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 config 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
    Copy to Clipboard Toggle word wrap
  2. ファイルを保存し、OpenShift Container Platform のインストール時にこれを参照します。

インストールプログラムは、指定の install-config.yaml ファイルのプロキシー設定を使用する cluster という名前のクラスター全体のプロキシーを作成します。プロキシー設定が指定されていない場合、cluster Proxy オブジェクトが依然として作成されますが、これには spec がありません。

注記

cluster という名前の Proxy オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。

2.8.4.3. 3 ノードクラスターの設定

オプションで、3 台のコントロールプレーンマシンのみで構成されるベアメタルクラスターに、ゼロコンピュートマシンをデプロイできます。これにより、テスト、開発、および実稼働に使用するための小規模なリソース効率の高いクラスターが、クラスター管理者および開発者に提供されます。

3 ノードの OpenShift Container Platform 環境では、3 つのコントロールプレーンマシンがスケジュール対象となります。つまり、アプリケーションのワークロードがそれらで実行されるようにスケジュールされます。

前提条件

  • 既存の install-config.yaml ファイルがある。

手順

  • 以下の compute スタンザに示されるように、コンピュートレプリカの数が install-config.yaml ファイルで 0 に設定されることを確認します。

    compute:
    - name: worker
      platform: {}
      replicas: 0
    Copy to Clipboard Toggle word wrap
    注記

    デプロイするコンピュートマシンの数にかかわらず、OpenShift Container Platform を user-provisioned infrastructure にインストールする際に、コンピュートマシンの replicas パラメーターの値を 0 に設定する必要があります。installer-provisioned installation では、パラメーターはクラスターが作成し、管理するコンピュートマシンの数を制御します。これは、コンピュートマシンが手動でデプロイされる、user-provisioned installation には適用されません。

3 ノードのクラスターのインストールで、以下の手順を実行します。

  • ゼロ (0) コンピュートノードで 3 ノードクラスターをデプロイする場合、Ingress コントローラー Pod はコントロールプレーンノードで実行されます。3 ノードクラスターデプロイメントでは、HTTP および HTTPS トラフィックをコントロールプレーンノードにルーティングするようにアプリケーション Ingress ロードバランサーを設定する必要があります。詳細は、user-provisioned infrastructure の負荷分散要件 のセクションを参照してください。
  • 以下の手順で Kubernetes マニフェストファイルを作成する際に、<installation_directory>/manifests/cluster-scheduler-02-config.yml ファイルの mastersSchedulable パラメーターが true に設定されていることを確認します。これにより、アプリケーションのワークロードがコントロールプレーンノードで実行できます。
  • Red Hat Enterprise Linux CoreOS (RHCOS) マシンを作成する際は、コンピュートノードをデプロイしないでください。

2.8.5. Cluster Network Operator の設定

クラスターネットワークの設定は、C