任意のプラットフォームへのインストール
任意のプラットフォームへの OpenShift Container Platform のインストール
概要
第1章 クラスターの任意のプラットフォームへのインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform バージョン 4.20 では、仮想化環境やクラウド環境など、ユーザーがプロビジョニングする任意のインフラストラクチャーにクラスターをインストールできます。
仮想化またはクラウド環境で OpenShift Container Platform クラスターのインストールを試行する前に、guidelines for deploying OpenShift Container Platform on non-tested platforms にある情報を確認してください。
1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Container Platform のインストールおよび更新 プロセスの詳細を確認した。
- クラスターインストール方法の選択およびそのユーザー向けの準備 を確認した。
ファイアウォールを使用する場合は、クラスターがアクセスを必要とする サイトを許可するようにファイアウォールを設定 する必要がある。
注記プロキシーを設定する場合は、このサイトリストも確認してください。
1.2. OpenShift Container Platform のインターネットアクセス リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform 4.20 では、クラスターをインストールするためにインターネットアクセスが必要です。
次のアクションを実行するには、インターネットにアクセスできる必要があります。
- OpenShift Cluster Manager にアクセスし、インストールプログラムをダウンロードし、サブスクリプション管理を実行します。クラスターがインターネットにアクセスでき、Telemetry を無効にしていない場合、そのサービスによってクラスターのサブスクリプションが自動的に有効化されます。
- クラスターのインストールに必要なパッケージを取得するために Quay.io にアクセスします。
- クラスターの更新を実行するために必要なパッケージを取得します。
クラスターでインターネットに直接アクセスできない場合、プロビジョニングする一部のタイプのインフラストラクチャーでネットワークが制限されたインストールを実行できます。このプロセスで、必要なコンテンツをダウンロードし、これを使用してミラーレジストリーにインストールパッケージを設定します。インストールタイプに応じて、クラスターのインストール環境でインターネットアクセスが不要となる場合があります。クラスターを更新する前に、ミラーレジストリーのコンテンツを更新します。
1.3. user-provisioned infrastructure を使用したクラスターの要件 リンクのコピーリンクがクリップボードにコピーされました!
user-provisioned infrastructure を含むクラスターの場合、必要なマシンすべてをデプロイする必要があります。
このセクションでは、user-provisioned infrastructure に OpenShift Container Platform をデプロイする要件を説明します。
1.3.1. クラスターのインストールに必要なマシン リンクのコピーリンクがクリップボードにコピーされました!
ノードに障害が発生した場合でもクラスターが安定した状態を維持できるよう、クラスターに必要な最小限のマシンまたはホストを指定する必要があります。
最小の OpenShift Container Platform クラスターでは以下のホストが必要です。
user-provisioned infrastructure を含むクラスターの場合、必要なマシンすべてをデプロイする必要があります。
| ホスト | 説明 |
|---|---|
| 1 つの一時的なブートストラップマシン | クラスターでは、ブートストラップマシンが OpenShift Container Platform クラスターを 3 つのコントロールプレーンマシンにデプロイする必要があります。クラスターのインストール後にブートストラップマシンを削除できます。 |
| 3 つのコントロールプレーンマシン | コントロールプレーンマシンは、コントロールプレーンを設定する Kubernetes および OpenShift Container Platform サービスを実行します。 |
| 少なくとも 2 つのコンピュートマシン (ワーカーマシンとしても知られる)。 | OpenShift Container Platform ユーザーが要求するワークロードは、コンピュートマシンで実行されます。 |
クラスターの高可用性を維持するには、これらのクラスターマシンに別の物理ホストを使用します。
ブートストラップおよびコントロールプレーンマシンでは、Red Hat Enterprise Linux CoreOS (RHCOS) をオペレーティングシステムとして使用する必要があります。ただし、コンピュートマシンは、Red Hat Enterprise Linux CoreOS (RHCOS)、Red Hat Enterprise Linux (RHEL) 8.6 以降から選択できます。
RHCOS は Red Hat Enterprise Linux (RHEL) 9.2 をベースとしており、そのハードウェア認定および要件がすべて継承されることに注意してください。Red Hat Enterprise Linux テクノロジーの機能と制限 を参照してください。
1.3.2. クラスターインストールの最小リソース要件 リンクのコピーリンクがクリップボードにコピーされました!
作成される各クラスターは、期待どおりに動作するために最低限の要件を満たす必要があります。
| マシン | オペレーティングシステム | vCPU [1] | 仮想 RAM | ストレージ | 1 秒あたりの入出力 (IOPS) [2] |
|---|---|---|---|---|---|
| ブートストラップ | RHCOS | 4 | 16 GB | 100 GB | 300 |
| コントロールプレーン | RHCOS | 4 | 16 GB | 100 GB | 300 |
| Compute | RHCOS | 2 | 8 GB | 100 GB | 300 |
- 1 vCPU は、同時マルチスレッド (SMT) またはハイパースレッディングが有効にされていない場合に 1 つの物理コアと同等です。これが有効にされている場合、(コアあたりのスレッド数 x コア数) x ソケット数 = 仮想 CPU という数式を使用して対応する比率を計算します。
- OpenShift Container Platform および Kubernetes はディスクのパフォーマンスに敏感であり、特に 10 ms p99 fsync 期間を必要とするコントロールプレーンノード上の etcd には、高速ストレージが推奨されます。多くのクラウドプラットフォームでは、ストレージサイズと IOPS が連動してスケーリングされるため、十分なパフォーマンスを得るには、ストレージボリュームを過剰に割り当てる必要がある場合がある点に注意してください。
- すべての user-provisioned installation と同様に、クラスターで RHEL コンピュートマシンの使用を選択する場合は、システム更新の実行、パッチの適用、その他すべての必要なタスクの完了など、オペレーティングシステムのライフサイクルの管理と保守をすべて担当します。RHEL 7 コンピュートマシンの使用は非推奨となり、OpenShift Container Platform 4.10 以降で削除されています。
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 で使用することがサポートされます。
1.3.3. 証明書署名要求の管理 リンクのコピーリンクがクリップボードにコピーされました!
user-provisioned infrastructure では、クラスターが自動マシン管理へのアクセスが制限されている場合、インストール後にクラスター証明書署名要求 (CSR) を承認するメカニズムを提供する必要があります。
kube-controller-manager は kubelet クライアント CSR のみを承認します。machine-approver は、kubelet 認証情報を使用して要求されるサービング証明書の有効性を保証できません。適切なマシンがこの要求を発行したかどうかを確認できないためです。kubelet 提供証明書の要求の有効性を検証し、それらを承認する方法を判別し、実装する必要があります。
1.3.4. user-provisioned infrastructure のネットワーク要件 リンクのコピーリンクがクリップボードにコピーされました!
すべての Red Hat Enterprise Linux CoreOS (RHCOS) マシンが Ignition 設定ファイルを取得できるように、起動時に initramfs でネットワーク設定を行う必要があります。
クラスター内のすべての仮想マシンで、disk.EnableUUID パラメーターを必ず有効にしてください。
初回の起動時に、マシンには 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 要求の両方において、ホストを完全修飾ドメイン名で常に参照します。
1.3.4.1. DHCP を使用したクラスターノードのホスト名の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux CoreOS (RHCOS) マシンでは、ホスト名は NetworkManager 経由で設定されます。デフォルトでは、マシンは DHCP 経由でホスト名を取得します。ホスト名が DHCP によって提供されない場合、カーネル引数を介して静的に設定される場合、または別の方法でホスト名が取得される場合は、逆引き DNS ルックアップによって取得されます。逆引き DNS ルックアップは、ネットワークがノードで初期化された後に発生し、解決に時間がかかる場合があります。その他のシステムサービスは、これより前に起動し、ホスト名を localhost または同様のものとして検出できます。これを回避するには、DHCP を使用して各クラスターノードのホスト名を指定できます。
また、DHCP を介してホスト名を設定すると、DNS スプリットホライズンが実装されている環境での手動の DNS レコード名設定エラーを回避できます。
1.3.4.2. ネットワーク接続の要件 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターのコンポーネントが通信できるように、マシン間のネットワーク接続を設定する必要があります。すべてのマシンではクラスターの他のすべてのマシンのホスト名を解決できる必要があります。
このセクションでは、必要なポートの詳細を説明します。
インターネットに接続された OpenShift Container Platform 環境では、プラットフォームコンテナーのイメージをプルし、Red Hat にテレメトリーデータを提供するために、すべてのノードがインターネットにアクセスできる必要があります。
| プロトコル | ポート | 説明 |
|---|---|---|
| ICMP | 該当なし | ネットワーク到達性のテスト |
| TCP |
| メトリクス |
|
|
ホストレベルのサービス。ポート | |
|
| Kubernetes が予約するデフォルトポート | |
|
| このポートは、マシン設定サーバーからのトラフィックを処理し、トラフィックをコントロールプレーンマシンに送信します。 | |
| UDP |
| Geneve |
|
|
ポート | |
|
| IPsec IKE パケット | |
|
| IPsec NAT-T パケット | |
|
|
UDP ポート | |
| TCP/UDP |
| |
| Kubernetes ノードポート | ESP | 該当なし |
| プロトコル | ポート | 説明 |
|---|---|---|
| TCP |
| Kubernetes API |
| プロトコル | ポート | 説明 |
|---|---|---|
| TCP |
| etcd サーバーおよびピアポート |
1.3.4.3. user-provisioned infrastructure の NTP 設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターは、デフォルトでパブリック Network Time Protocol (NTP) サーバーを使用するように設定されます。ローカルのエンタープライズ NTP サーバーを使用する必要があるか、クラスターが切断されたネットワークにデプロイされている場合は、特定のタイムサーバーを使用するようにクラスターを設定できます。詳細は、chrony タイムサービスの設定 のドキュメントを参照してください。
DHCP サーバーが NTP サーバー情報を提供する場合、Red Hat Enterprise Linux CoreOS (RHCOS) マシンの chrony タイムサービスは情報を読み取り、NTP サーバーとクロックを同期できます。
1.3.5. 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>. の形式を取ります。
| コンポーネント | レコード | 説明 |
|---|---|---|
| Kubernetes API |
| API ロードバランサーを特定するための DNS A/AAAA または CNAME レコード、および DNS PTR レコード。これらのレコードは、クラスター外のクライアントおよびクラスター内のすべてのノードで解決できる必要があります。 |
|
| API ロードバランサーを内部的に識別するための DNS A/AAAA または CNAME レコード、および DNS PTR レコード。これらのレコードは、クラスター内のすべてのノードで解決できる必要があります。 重要 API サーバーは、Kubernetes に記録されるホスト名でワーカーノードを解決できる必要があります。API サーバーがノード名を解決できない場合、プロキシーされる API 呼び出しが失敗し、Pod からログを取得できなくなる可能性があります。 | |
| ルート |
| アプリケーション Ingress ロードバランサーを参照するワイルドカード DNS A/AAAA または CNAME レコード。アプリケーション Ingress ロードバランサーは、Ingress コントローラー Pod を実行するマシンをターゲットにします。Ingress コントローラー Pod はデフォルトでコンピュートマシンで実行されます。これらのレコードは、クラスター外のクライアントおよびクラスター内のすべてのノードで解決できる必要があります。
たとえば、 |
| ブートストラップマシン |
| ブートストラップマシンを識別するための DNS A / AAAA または CNAME レコード、および DNS PTR レコード。これらのレコードは、クラスター内のノードで解決できる必要があります。 |
| コントロールプレーンマシン |
| コントロールプレーンノードの各マシンを特定するための DNS A/AAAA または CNAME レコードおよび DNS PTR レコード。これらのレコードは、クラスター内のノードで解決できる必要があります。 |
| コンピュートマシン |
| ワーカーノードの各マシンを特定するための DNS A/AAAA または CNAME レコード、および DNS PTR レコード。これらのレコードは、クラスター内のノードで解決できる必要があります。 |
OpenShift Container Platform 4.4 以降では、DNS 設定で etcd ホストおよび SRV レコードを指定する必要はありません。
dig コマンドを使用して、名前および逆引き名前解決を確認することができます。検証手順の詳細は、user-provisioned infrastructure の DNS 解決の検証 のセクションを参照してください。
1.3.5.1. user-provisioned クラスターの DNS 設定の例 リンクのコピーリンクがクリップボードにコピーされました!
A レコードと PTR レコードの設定例が、user-provisioned infrastructure に OpenShift Container Platform をデプロイするための DNS 要件をどのように満たしているかを理解するには、DNS 設定例を参照してください。
ここに掲載されている DNS 設定例は参考用であり、特定の DNS ソリューションを選択する際の助言を意図したものではありません。
この例では、クラスター名は ocp4 で、ベースドメインは example.com です。
以下の例は、ユーザーがプロビジョニングしたクラスターにおける名前解決のためのサンプル DNS A レコードを示す BIND ゾーンファイルです。
この例では、同じロードバランサーが Kubernetes API およびアプリケーションの Ingress トラフィックに使用されます。実稼働のシナリオでは、API およびアプリケーション Ingress ロードバランサーを個別にデプロイし、それぞれのロードバランサーインフラストラクチャーを分離してスケーリングすることができます。
$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
ここでは、以下のようになります。
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 を実行するマシンをターゲットにします。
bootstrap.ocp4.example.com- ブートストラップマシンの名前解決を提供します。
control-plane0.ocp4.example.com- コントロールプレーンマシンの名前解決を提供します。
compute0.ocp4.example.com。- コンピュートマシンの名前解決を提供します。
以下の BIND ゾーンファイルの例は、ユーザーがプロビジョニングしたクラスターにおける逆引き名前解決のための PTR レコードのサンプルを示しています。
$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
ここでは、以下のようになります。
api.ocp4.example.com- Kubernetes API の逆引き DNS 解決を提供します。PTR レコードは、API ロードバランサーのレコード名を参照します。
api-int.ocp4.example.com。- Kubernetes API の逆引き DNS 解決を提供します。PTR レコードは、API ロードバランサーのレコード名を参照し、内部クラスター通信に使用されます。
bootstrap.ocp4.example.com- ブートストラップマシンの逆引き DNS 解決を提供します。
コントロールプレーン 0.ocp4.example.com。- コントロールプレーンマシン向けに、rebootstrap.ocp4.example.com.verse の DNS 解決機能を提供します。
compute0.ocp4.example.com。- コンピュートマシンの逆引き DNS 解決を提供します。
PTR レコードは、OpenShift Container Platform アプリケーションのワイルドカードには必要ありません。
1.3.6. user-provisioned infrastructure の負荷分散要件 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform をインストールする前に、API およびアプリケーションの Ingress 負荷分散インフラストラクチャーをプロビジョニングする必要があります。実稼働のシナリオでは、API およびアプリケーション Ingress ロードバランサーを個別にデプロイし、それぞれのロードバランサーインフラストラクチャーを分離してスケーリングすることができます。
Red Hat Enterprise Linux (RHEL) インスタンスを使用して API およびアプリケーション Ingress ロードバランサーをデプロイする場合は、RHEL サブスクリプションを別途購入する必要があります。
負荷分散インフラストラクチャーは以下の要件を満たす必要があります。
API ロードバランサー: 人間と機械の両方のユーザーがプラットフォームとやり取りし、設定を行うための共通のエンドポイントを提供します。以下の条件を設定します。
- Layer 4 の負荷分散のみ。これは、Raw TCP または SSL パススルーモードと呼ばれます。
- ステートレス負荷分散アルゴリズム。オプションは、ロードバランサーの実装によって異なります。
API ロードバランサーのセッションの永続性は設定しないでください。Kubernetes API サーバーのセッション永続性を設定すると、OpenShift Container Platform クラスターとクラスター内で実行される Kubernetes API の過剰なアプリケーショントラフィックによりパフォーマンスの問題が発生する可能性があります。
API ロードバランサーの前面と背面の両方で、以下のポートを設定してください。
| ポート | バックエンドマシン (プールメンバー) | 内部 | 外部 | 説明 |
|---|---|---|---|---|
|
|
ブートストラップおよびコントロールプレーン。ブートストラップマシンがクラスターのコントロールプレーンを初期化した後に、ブートストラップマシンをロードバランサーから削除します。API サーバーのヘルスチェックプローブの | X | X | Kubernetes API サーバー |
|
| ブートストラップおよびコントロールプレーン。ブートストラップマシンがクラスターのコントロールプレーンを初期化した後に、ブートストラップマシンをロードバランサーから削除します。 | X | マシン設定サーバー |
ロードバランサーは、API サーバーが /readyz エンドポイントをオフにしてからプールから API サーバーインスタンスを削除するまで最大 30 秒かかるように設定する必要があります。/readyz の後の時間枠内でエラーが返されたり、正常になったりする場合は、エンドポイントが削除または追加されているはずです。5 秒または 10 秒ごとのプロービングで、2 回連続成功すると正常、3 回連続失敗すると異常と判断する設定は、十分にテストされた値です。
アプリケーションイングレスロードバランサー: クラスター外部から流入するアプリケーショントラフィックのイングレスポイントを提供します。Ingress ルーターの作業用の設定が OpenShift Container Platform クラスターに必要です。以下の条件を設定します。
- Layer 4 の負荷分散のみ。これは、Raw TCP または SSL パススルーモードと呼ばれます。
- 選択可能なオプションやプラットフォーム上でホストされるアプリケーションの種類に基づいて、接続ベースの永続化またはセッションベースの永続化が推奨されます。
クライアントの実際の IP アドレスがアプリケーション Ingress ロードバランサーによって確認できる場合、ソースの IP ベースのセッション永続化を有効にすると、エンドツーエンドの TLS 暗号化を使用するアプリケーションのパフォーマンスを強化できます。
ロードバランサーのフロントとバックの両方で以下のポートを設定します。
| ポート | バックエンドマシン (プールメンバー) | 内部 | 外部 | 説明 |
|---|---|---|---|---|
|
| デフォルトで Ingress コントローラー Pod、コンピュート、またはワーカーを実行するマシン。 | X | X | HTTPS トラフィック |
|
| デフォルトで Ingress コントローラー Pod、コンピュート、またはワーカーを実行するマシン。 | X | X | HTTP トラフィック |
ゼロ (0) コンピュートノードで 3 ノードクラスターをデプロイする場合、Ingress コントローラー Pod はコントロールプレーンノードで実行されます。3 ノードクラスターデプロイメントでは、HTTP および HTTPS トラフィックをコントロールプレーンノードにルーティングするようにアプリケーション Ingress ロードバランサーを設定する必要があります。
1.3.6.1. user-provisioned クラスターのロードバランサーの設定例 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーがプロビジョニングしたクラスターの負荷分散要件を満たす方法を理解するために、サンプル API とアプリケーション Ingress ロードバランサー設定を参照してください。
この例は、HAProxy ロードバランサーの /etc/haproxy/haproxy.cfg 設定です。この例では、特定の負荷分散ソリューションを選択するためのアドバイスを提供することを目的としていません。
HAProxy をロードバランサーとして使用する場合は、HAProxy ノードで netstat -nltupe を実行して、ポート 6443、22623、443、および 80 で haproxy プロセスがリッスンしていることを確認することができます。
この例では、同じロードバランサーが Kubernetes API およびアプリケーションの Ingress トラフィックに使用されます。実稼働のシナリオでは、API およびアプリケーション Ingress ロードバランサーを個別にデプロイし、それぞれのロードバランサーインフラストラクチャーを分離してスケーリングすることができます。
HAProxy をロードバランサーとして使用し、SELinux が enforcing に設定されている場合は、setsebool -P haproxy_connect_any=1 を実行して、HAProxy サービスが設定済みの TCP ポートにバインドできることを確認する必要があります。
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
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
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
bind *:22623
mode tcp
server bootstrap bootstrap.ocp4.example.com:22623 check inter 1s backup
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
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
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
ここでは、以下のようになります。
api-server-6443 を聴く-
ポート
6443は Kubernetes API トラフィックを処理し、コントロールプレーンマシンを参照します。 サーバーブートストラップ bootstrap.ocp4.example.com- ブートストラップエントリーは、OpenShift Container Platform クラスターのインストール前に有効にし、ブートストラッププロセスの完了後にそれらを削除する必要があります。
マシン設定サーバーをリッスンする-
ポート
22623はマシン設定サーバートラフィックを処理し、コントロールプレーンマシンを参照します。 ingress-router-443 を聴く-
ポート
443は HTTPS トラフィックを処理し、Ingress コントローラー Pod を実行するマシンを参照します。Ingress コントローラー Pod はデフォルトでコンピュートマシンで実行されます。 ingress-router-80 を聴くポート
80は HTTP トラフィックを処理し、Ingress コントローラー Pod を実行するマシンを参照します。Ingress コントローラー Pod はデフォルトでコンピュートマシンで実行されます。注記ゼロ (0) コンピュートノードで 3 ノードクラスターをデプロイする場合、Ingress コントローラー Pod はコントロールプレーンノードで実行されます。3 ノードクラスターデプロイメントでは、HTTP および HTTPS トラフィックをコントロールプレーンノードにルーティングするようにアプリケーション Ingress ロードバランサーを設定する必要があります。
1.4. user-provisioned infrastructure の準備 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform でデプロイメントを正常に実行し、クラスターの要件を満たすためには、インストールを開始する前に、ユーザーがプロビジョニングしたインフラストラクチャーを準備してください。コンピュート、ネットワーク、ストレージの各コンポーネントを事前に設定しておくことで、インストールプログラムが正しく機能するために必要な安定した基盤が構築されます。
このセクションでは、OpenShift Container Platform インストールの準備としてクラスターインフラストラクチャーを設定するために必要な手順の概要を説明します。これには、クラスターノード用の IP ネットワークおよびネットワーク接続を設定し、ファイアウォール経由で必要なポートを有効にし、必要な DNS および負荷分散インフラストラクチャーの設定が含まれます。
準備後、クラスターインフラストラクチャーは、user-provisioned infrastructure を使用したクラスターの要件 セクションで説明されている要件を満たす必要があります。
前提条件
- OpenShift Container Platform 4.x Tested Integrations ページを確認した。
- user-provisioned infrastructure を使用したクラスターの要件 セクションで説明されているインフラストラクチャーの要件を確認した。
手順
DHCP を使用して IP ネットワーク設定をクラスターノードに提供する場合は、DHCP サービスを設定します。
- ノードの永続 IP アドレスを DHCP サーバー設定に追加します。設定で、関連するネットワークインターフェイスの MAC アドレスを、各ノードの目的の IP アドレスと一致させます。
DHCP を使用してクラスターマシンの IP アドレスを設定する場合、マシンは DHCP を介して DNS サーバー情報も取得します。DHCP サーバー設定を介してクラスターノードが使用する永続 DNS サーバーアドレスを定義します。
注記DHCP サービスを使用しない場合、IP ネットワーク設定と DNS サーバーのアドレスを RHCOS インストール時にノードに指定する必要があります。ISO イメージからインストールしている場合は、ブート引数として渡すことができます。静的 IP プロビジョニングと高度なネットワークオプションの詳細は、RHCOS のインストールと OpenShift Container Platform ブートストラッププロセスの開始 のセクションを参照してください。
DHCP サーバー設定でクラスターノードのホスト名を定義します。ホスト名に関する考慮事項の詳細は、DHCP を使用したクラスターノードのホスト名の設定 セクションを参照してください。
注記DHCP サービスを使用しない場合、クラスターノードは逆引き DNS ルックアップを介してホスト名を取得します。
- ネットワークインフラストラクチャーがクラスターコンポーネント間の必要なネットワーク接続を提供することを確認します。要件に関する詳細は、user-provisioned infrastructure のネットワーク要件 のセクションを参照してください。
OpenShift Container Platform クラスターコンポーネントで通信するために必要なポートを有効にするようにファイアウォールを設定します。必要なポートの詳細は、user-provisioned infrastructure のネットワーク要件 のセクションを参照してください。
重要デフォルトで、ポート
1936は OpenShift Container Platform クラスターにアクセスできます。これは、各コントロールプレーンノードがこのポートへのアクセスを必要とするためです。イングレスヘルスチェックプローブの場合、
/healthz/readyエンドポイントはこのポートで利用可能です。Ingress ロードバランサーを使用してこのポートを公開しないでください。これを実行すると、Ingress コントローラーに関連する統計やメトリクスなどの機密情報が公開される可能性があるためです。
クラスターに必要な DNS インフラストラクチャーを設定します。
- Kubernetes API、アプリケーションワイルドカード、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンの DNS 名前解決を設定します。
Kubernetes API、ブートストラップマシン、コントロールプレーンマシン、およびコンピュートマシンの逆引き DNS 解決を設定します。
OpenShift Container Platform DNS 要件の詳細は、user-provisioned DNS 要件 のセクションを参照してください。
DNS 設定を検証します。
- インストールノードから、Kubernetes API、ワイルドカードルート、およびクラスターノードのレコード名に対して DNS ルックアップを実行します。応答の IP アドレスが正しいコンポーネントに対応することを確認します。
インストールノードから、ロードバランサーとクラスターノードの IP アドレスに対して逆引き DNS ルックアップを実行します。応答のレコード名が正しいコンポーネントに対応することを確認します。
DNS 検証手順の詳細は、user-provisioned infrastructure の DNS 解決の検証 のセクションを参照してください。
必要な API およびアプリケーションの Ingress 負荷分散インフラストラクチャーをプロビジョニングします。要件に関する詳細は、user-provisioned infrastructure の負荷分散要件 のセクションを参照してください。
注記一部の負荷分散ソリューションでは、負荷分散を初期化する前に、クラスターノードの DNS 名前解決を有効化する必要があります。
1.5. user-provisioned infrastructure の DNS 解決の検証 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform でネットワーク関連のインストールエラーを防ぎ、ノードの接続性を確保するには、user-provisioned infrastructure にデプロイする前に、DNS 設定を検証してください。この検証により、必要なすべてのレコードが正しく解決されることが確認され、クラスター通信に必要な安定した基盤が提供されます。
このセクションの検証手順は、クラスターのインストール前に正常に実行される必要があります。
前提条件
- user-provisioned infrastructure に必要な DNS レコードを設定している。
手順
インストールノードから、Kubernetes API、ワイルドカードルート、およびクラスターノードのレコード名に対して DNS ルックアップを実行します。応答に含まれる IP アドレスが正しいコンポーネントに対応することを確認します。
Kubernetes API レコード名に対してルックアップを実行します。結果が API ロードバランサーの IP アドレスを参照することを確認します。
$ dig +noall +answer @<nameserver_ip> api.<cluster_name>.<base_domain><nameserver_ip> をネームサーバーの IP アドレスに、<cluster_name> をクラスター名に、<base_domain>をベースドメイン名に置き換えてください。出力例
api.ocp4.example.com. 604800 IN A 192.168.1.5Kubernetes 内部 API レコード名に対してルックアップを実行します。結果が API ロードバランサーの IP アドレスを参照することを確認します。
$ dig +noall +answer @<nameserver_ip> api-int.<cluster_name>.<base_domain>出力例
api-int.ocp4.example.com. 604800 IN A 192.168.1.5*.apps.<cluster_name>.<base_domain>DNS ワイルドカードルックアップの例をテストします。すべてのアプリケーションのワイルドカードルックアップは、アプリケーション Ingress ロードバランサーの IP アドレスに解決する必要があります。$ dig +noall +answer @<nameserver_ip> random.apps.<cluster_name>.<base_domain>出力例
random.apps.ocp4.example.com. 604800 IN A 192.168.1.5注記出力例では、同じロードバランサーが Kubernetes API およびアプリケーションの Ingress トラフィックに使用されます。実稼働のシナリオでは、API およびアプリケーション Ingress ロードバランサーを個別にデプロイし、それぞれのロードバランサーインフラストラクチャーを分離してスケーリングすることができます。
randomは、別のワイルドカード値に置き換えることができます。たとえば、OpenShift Container Platform コンソールへのルートをクエリーできます。$ dig +noall +answer @<nameserver_ip> console-openshift-console.apps.<cluster_name>.<base_domain>出力例
console-openshift-console.apps.ocp4.example.com. 604800 IN A 192.168.1.5ブートストラップ DNS レコード名に対してルックアップを実行します。結果がブートストラップノードの IP アドレスを参照することを確認します。
$ dig +noall +answer @<nameserver_ip> bootstrap.<cluster_name>.<base_domain>出力例
bootstrap.ocp4.example.com. 604800 IN A 192.168.1.96- この方法を使用して、コントロールプレーンおよびコンピュートノードの DNS レコード名に対してルックアップを実行します。結果が各ノードの IP アドレスに対応していることを確認します。
インストールノードから、ロードバランサーとクラスターノードの IP アドレスに対して逆引き DNS ルックアップを実行します。応答に含まれるレコード名が正しいコンポーネントに対応することを確認します。
API ロードバランサーの IP アドレスに対して逆引き参照を実行します。応答に、Kubernetes API および Kubernetes 内部 API のレコード名が含まれていることを確認します。
$ dig +noall +answer @<nameserver_ip> -x 192.168.1.5出力例
5.1.168.192.in-addr.arpa. 604800 IN PTR api-int.ocp4.example.com. 5.1.168.192.in-addr.arpa. 604800 IN PTR api.ocp4.example.com.ここでは、以下のようになります。
api-int.ocp4.example.com- Kubernetes 内部 API のレコード名を指定します。
api.ocp4.example.comKubernetes API のレコード名を指定します。
注記PTR レコードは、OpenShift Container Platform アプリケーションのワイルドカードには必要ありません。アプリケーション Ingress ロードバランサーの IP アドレスに対する逆引き DNS 解決の検証手順は必要ありません。
ブートストラップノードの IP アドレスに対して逆引き参照を実行します。結果がブートストラップノードの DNS レコード名を参照していることを確認します。
$ dig +noall +answer @<nameserver_ip> -x 192.168.1.96出力例
96.1.168.192.in-addr.arpa. 604800 IN PTR bootstrap.ocp4.example.com.- この方法を使用して、コントロールプレーンおよびコンピュートノードの IP アドレスに対して逆引きルックアップを実行します。結果が各ノードの DNS レコード名に対応していることを確認します。
1.6. クラスターノード SSH アクセス用の鍵ペアの生成 リンクのコピーリンクがクリップボードにコピーされました!
クラスターノードへの安全なパスワードなし SSH アクセスを有効にするには、OpenShift Container Platform のインストール時に SSH 公開鍵を指定してください。これにより、インストールプログラムが Red Hat Enterprise Linux CoreOS(RHCOS) ノードを コア ユーザーを介したリモート認証用に自動的に設定することが保証されます。
SSH 公開鍵は、各ノードの コア ユーザーの ~/.ssh/authorized_keys リストに追加されます。キーが Ignition 設定ファイルを通じて Red Hat Enterprise Linux CoreOS (RHCOS) ノードに渡された後、キーペアを使用して、ユーザー core として RHCOS ノードに SSH 接続できます。SSH 経由でノードにアクセスするには、秘密鍵のアイデンティティーをローカルユーザーの SSH で管理する必要があります。
インストールのデバッグまたは障害復旧を実行するためにクラスターノードに対して SSH を実行する場合は、インストールプロセスの間に SSH 公開鍵を指定する必要があります。./openshift-install gather コマンドでは、SSH 公開鍵がクラスターノードに配置されている必要もあります。
障害復旧およびデバッグが必要な実稼働環境では、この手順を省略しないでください。
プラットフォーム固有の方法で設定した鍵ではなく、ローカルの鍵を使用する必要があります。
手順
クラスターノードへの認証に使用するローカルマシンに既存の SSH キーペアがない場合は、これを作成します。たとえば、Linux オペレーティングシステムを使用するコンピューターで以下のコマンドを実行します。
$ ssh-keygen -t ed25519 -N '' -f <path>/<file_name>新しい SSH 鍵のパスとファイル名を指定します (例:
~/.ssh/id_ed25519)。既存のキーペアがある場合は、公開鍵が~/.sshディレクトリーにあることを確認します。注記x86_64、ppc64le、およびs390xアーキテクチャーのみで FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用する OpenShift Container Platform クラスターをインストールする予定がある場合は、ed25519アルゴリズムを使用するキーを作成しないでください。代わりに、rsaアルゴリズムまたはecdsaアルゴリズムを使用するキーを作成します。SSH 公開鍵を表示します。
$ cat <path>/<file_name>.pubたとえば、次のコマンドを実行して
~/.ssh/id_ed25519.pub公開鍵を表示します。$ cat ~/.ssh/id_ed25519.pubローカルユーザーの SSH エージェントに SSH 秘密鍵 ID が追加されていない場合は、それを追加します。キーの SSH エージェント管理は、クラスターノードへのパスワードなしの SSH 認証、または
./openshift-install gatherコマンドを使用する場合は必要になります。注記一部のディストリビューションでは、
~/.ssh/id_rsaおよび~/.ssh/id_dsaなどのデフォルトの SSH 秘密鍵のアイデンティティーは自動的に管理されます。ssh-agentプロセスがローカルユーザーに対して実行されていない場合は、バックグラウンドタスクとして開始します。$ eval "$(ssh-agent -s)"出力例
Agent pid 31874注記クラスターが FIPS モードにある場合は、FIPS 準拠のアルゴリズムのみを使用して SSH キーを生成します。鍵は RSA または ECDSA のいずれかである必要があります。
SSH プライベートキーを
ssh-agentに追加します。$ ssh-add <path>/<file_name>SSH 秘密鍵のパスとファイル名を指定します。例:
~/.ssh/id_ed25519出力例
Identity added: /home/<you>/<path>/<file_name> (<computer_name>)
次のステップ
- OpenShift Container Platform をインストールする際に、SSH パブリックキーをインストールプログラムに指定します。クラスターを独自にプロビジョニングするインフラストラクチャーにインストールする場合は、キーをインストールプログラムに指定する必要があります。
1.7. インストールプログラムの取得 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform をインストールする前に、インストールに使用しているホストにインストールファイルをダウンロードします。
前提条件
- 500 MB のローカルディスク領域がある Linux または macOS を実行するコンピューターが必要です。
手順
Red Hat Hybrid Cloud Console の Cluster Type ページに移動します。Red Hat アカウントがある場合は、認証情報を使用してログインします。アカウントがない場合はこれを作成します。
ヒント- ページの Run it yourself セクションからインフラストラクチャープロバイダーを選択します。
- OpenShift Installer のドロップダウンメニューからホストオペレーティングシステムとアーキテクチャーを選択し、Download Installer をクリックします。
ダウンロードしたファイルを、インストール設定ファイルを保存するディレクトリーに配置します。
重要- インストールプログラムは、クラスターのインストールに使用するコンピューターにいくつかのファイルを作成します。クラスターのインストール完了後は、インストールプログラムおよびインストールプログラムが作成するファイルを保持する必要があります。クラスターを削除するには、両方のファイルが必要です。
- インストールプログラムで作成されたファイルを削除しても、クラスターがインストール時に失敗した場合でもクラスターは削除されません。クラスターを削除するには、特定のクラウドプロバイダー用の OpenShift Container Platform のアンインストール手順を実行します。
インストールプログラムを展開します。たとえば、Linux オペレーティングシステムを使用するコンピューターで以下のコマンドを実行します。
$ tar -xvf openshift-install-linux.tar.gzRed Hat OpenShift Cluster Manager からインストールプルシークレット をダウンロードします。このプルシークレットを使用し、OpenShift Container Platform コンポーネントのコンテナーイメージを提供する Quay.io など、組み込まれた各種の認証局によって提供されるサービスで認証できます。
ヒントRed Hat カスタマーポータル からインストールプログラムを取得することもできます。このページでは、ダウンロードするインストールプログラムのバージョンを指定できます。ただし、このページにアクセスするには、有効なサブスクリプションが必要です。
1.8. Linux への OpenShift CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインからクラスターを管理し、アプリケーションをデプロイするには、Linux に OpenShift CLI (oc) バイナリーをインストールしてください。
以前のバージョンの oc をインストールした場合、それを使用して OpenShift Container Platform のすべてのコマンドを実行することはできません。
新しいバージョンの oc をダウンロードしてインストールしてください。
手順
- Red Hat カスタマーポータルの Download OpenShift Container Platform ページに移動します。
- Product Variant リストからアーキテクチャーを選択します。
- Version リストから適切なバージョンを選択します。
- OpenShift v4.20 Linux Clients エントリーの横にある Download Now をクリックして、ファイルを保存します。
アーカイブを展開します。
$ tar xvf <file>ocバイナリーを、PATHにあるディレクトリーに配置します。PATHを確認するには、以下のコマンドを実行します。$ echo $PATH
検証
OpenShift CLI のインストール後に、
ocコマンドを使用して利用できます。$ oc <command>
1.9. Windows への OpenShift CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインからクラスターを管理し、アプリケーションをデプロイするには、Windows に OpenShift CLI (oc) バイナリーをインストールしてください。
以前のバージョンの oc をインストールした場合、それを使用して OpenShift Container Platform のすべてのコマンドを実行することはできません。
新しいバージョンの oc をダウンロードしてインストールしてください。
手順
- Red Hat カスタマーポータルの Download OpenShift Container Platform ページに移動します。
- Version リストから適切なバージョンを選択します。
- OpenShift v4.20 Windows Client エントリーの横にある Download Now をクリックして、ファイルを保存します。
- ZIP プログラムでアーカイブを展開します。
ocバイナリーを、PATH 環境変数に含まれるディレクトリーに移動してください。PATH環境変数を確認するには、コマンドプロンプトを開き、次のコマンドを実行してください。C:\> path
検証
OpenShift CLI のインストール後に、
ocコマンドを使用して利用できます。C:\> oc <command>
1.10. macOS への OpenShift CLI のインストール リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインからクラスターを管理し、アプリケーションをデプロイするには、macOS に OpenShift CLI (oc) バイナリーをインストールしてください。
以前のバージョンの oc をインストールした場合、それを使用して OpenShift Container Platform のすべてのコマンドを実行することはできません。
新しいバージョンの oc をダウンロードしてインストールしてください。
手順
- Red Hat カスタマーポータルの Download OpenShift Container Platform ページに移動します。
- Product Variant リストからアーキテクチャーを選択します。
- Version リストから適切なバージョンを選択します。
OpenShift v4.20 macOS Clients エントリーの横にある Download Now をクリックして、ファイルを保存します。
注記macOS arm64 の場合は、OpenShift v4.20 macOS arm64 Client エントリーを選択します。
- アーカイブを展開し、解凍します。
ocバイナリーをPATH 環境変数で指定したディレクトリーに移動してください。PATH環境変数を確認するには、ターミナルを開いて次のコマンドを実行してください。$ echo $PATH
検証
ocコマンドを使用してインストールを確認します。$ oc <command>
1.11. インストール設定ファイルの手動作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform のデプロイメントをカスタマイズし、特定のネットワーク要件を満たすには、インストール設定ファイルを手動で作成します。これにより、インストールプログラムはセットアッププロセス中にデフォルト値ではなく、ユーザーがカスタマイズした設定を使用することが保証されます。
前提条件
- インストールプログラムで使用するための SSH 公開鍵がローカルマシン上に存在する。この鍵は、デバッグや障害復旧のために、クラスターノードへの SSH 認証に使用できます。
- OpenShift Container Platform インストールプログラムとクラスターのプルシークレットを取得している。
手順
必要なインストールアセットを保存するためのインストールディレクトリーを作成します。
$ mkdir <installation_directory>重要このディレクトリーは必ず作成してください。ブートストラップ X.509 証明書などの一部のインストールアセットは、有効期限が短いため、インストールディレクトリーを再利用しないでください。別のクラスターインストールの個別のファイルを再利用する必要がある場合は、それらをディレクトリーにコピーすることができます。ただし、インストールアセットのファイル名はリリース間で変更される可能性があります。インストールファイルを以前のバージョンの OpenShift Container Platform からコピーする場合は注意してください。
提供されているサンプルの
install-config.yamlファイルテンプレートをカスタマイズし、ファイルを<installation_directory>に保存します。注記この設定ファイルの名前を
install-config.yamlと付ける必要があります。多くのクラスターのインストールに使用できるように、
install-config.yamlファイルをバックアップします。重要インストールプロセスの次のステップで
install-config.yamlファイルを使用するため、今すぐこのファイルをバックアップしてください。
1.11.1. 他のプラットフォーム用のサンプル install-config.yaml ファイル リンクのコピーリンクがクリップボードにコピーされました!
install-config.yaml ファイルをカスタマイズすることで、OpenShift Container Platform クラスタープラットフォームに関する詳細情報を指定したり、必須パラメーターの値を変更したりできます。
apiVersion: v1
baseDomain: example.com
compute:
- hyperthreading: Enabled
name: worker
replicas: 0
controlPlane:
hyperthreading: Enabled
name: master
replicas: 3
metadata:
name: test
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
networkType: OVNKubernetes
serviceNetwork:
- 172.30.0.0/16
platform:
none: {}
fips: false
pullSecret: '{"auths": ...}'
sshKey: 'ssh-ed25519 AAAA...'
ここでは、以下のようになります。
baseDomain- クラスターのベースドメインを指定します。すべての DNS レコードはこのベースのサブドメインである必要があり、クラスター名が含まれる必要があります。
compute-
コンピュートノード設定を指定します。これは一連のマッピングです。異なるデータ構造の要件を満たすには、computeセクションの最初の行がハイフン-で始まる必要があります。 controlPlane-
コントロールプレーンノードの設定を指定します。これは単一のマッピングです。さまざまなデータ構造の要件を満たすために、controlPlaneセクションの最初の行は、次のようになってはなりません。1 つのコントロールプレーンプールのみが使用されます。 ハイパースレッディング-
同時マルチスレッド (SMT) またはハイパースレッディングを有効/無効にするかどうかを指定します。デフォルトでは、SMT はマシンのコアのパフォーマンスを上げるために有効にされます。パラメーター値を
Disabledに設定するとこれを無効にすることができます。SMT を無効にする場合、これをすべてのクラスターマシンで無効にする必要があります。これにはコントロールプレーンとコンピュートマシンの両方が含まれます。
同時マルチスレッド (SMT) はデフォルトで有効になっています。SMT が BIOS 設定で有効になっていない場合は、hyperthreading パラメーターは効果がありません。
BIOS または install-config.yaml ファイルであるかに関係なく hyperthreading を無効にする場合、容量計画においてマシンのパフォーマンスの大幅な低下が考慮に入れられていることを確認します。
compute.replicas-
インストーラーでプロビジョニングされたインストール環境において、クラスターが作成および管理するコンピュートマシンの数を指定します。OpenShift Container Platform を user-provisioned infrastructure にインストールする場合は、この値を
0に設定する必要があります。さらに、ユーザーがプロビジョニングしたインストールの場合、クラスターのインストールを完了する前に、コンピュートマシンを手動でデプロイする必要があります。
3 ノードクラスターをインストールする場合は、Red Hat Enterprise Linux CoreOS (RHCOS) マシンをインストールする際にコンピュートマシンをデプロイしないでください。
controlPlane.replicas- クラスターに追加する制御プレーンマシンの数を指定します。クラスターをこれらの値をクラスターの etcd エンドポイント数として使用するため、値はデプロイするコントロールプレーンマシンの数に一致する必要があります。
metadata.name- DNS レコードで指定したクラスター名を指定します。
clusterNetwork.cidr- Pod の IP アドレスが割り当てられる IP アドレスのブロックを指定します。このブロックは既存の物理ネットワークと重複できません。これらの IP アドレスは Pod ネットワークに使用されます。外部ネットワークから Pod にアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定する必要があります。
クラス E の CIDR 範囲は、将来の使用のために予約されています。クラス E CIDR 範囲を使用するには、ネットワーク環境がクラス E CIDR 範囲内の IP アドレスを受け入れるようにする必要があります。
cidr.hostPrefix-
それぞれの個別ノードに割り当てるサブネット接頭辞の長さを指定します。たとえば、
hostPrefixが23に設定されている場合、各ノードに指定のcidrから/23サブネットが割り当てられます。これにより、510 (2^(32 - 23) - 2) Pod IP アドレスが許可されます。外部ネットワークからのノードへのアクセスを提供する必要がある場合には、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。 networkType-
インストールするクラスターネットワークプラグインを指定します。サポートされる値はデフォルト値の
OVNKubernetesのみです。 serviceNetwork- サービス IP アドレスに使用する IP アドレスプールを指定します。1 つの IP アドレスプールのみを入力できます。このブロックは既存の物理ネットワークと重複できません。外部ネットワークからサービスにアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
platform-
プラットフォームを指定します。プラットフォームを
noneに設定する必要があります。プラットフォーム用に追加のプラットフォーム設定変数を指定することはできません。
プラットフォームタイプ none でインストールされたクラスターは、Machine API を使用したコンピュートマシンの管理など、一部の機能を使用できません。この制限は、クラスターに接続されている計算マシンが、通常はこの機能をサポートするプラットフォームにインストールされている場合でも適用されます。このパラメーターは、インストール後に変更することはできません。
fips- 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 暗号化ライブラリーを使用します。
pullSecret- Red Hat OpenShift Cluster Manager からプルシークレット を指定します。このプルシークレットを使用し、OpenShift Container Platform コンポーネントのコンテナーイメージを提供する Quay.io など、組み込まれた各種の認証局によって提供されるサービスで認証できます。
sshKey-
Red Hat Enterprise Linux CoreOS (RHCOS) の
コアユーザーの SSH 公開鍵を指定します。
インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、ssh-agent プロセスが使用する SSH キーを指定します。
1.11.2. インストール時のクラスター全体のプロキシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
直接接続が拒否される環境でインターネットアクセスを有効にするには、install-config.yaml ファイルでクラスター全体のプロキシーを設定します。この設定により、新しい OpenShift Container Platform クラスターは、指定された HTTP または HTTPS プロキシーを経由してトラフィックをルーティングすることが保証されます。
前提条件
-
既存の
install-config.yamlファイルがある。 クラスターがアクセスする必要のあるサイトを確認し、それらのサイトのうちプロキシーをバイパスする必要があるサイトがあるかどうかを判断しました。デフォルトで、すべてのクラスター Egress トラフィック (クラスターをホストするクラウドに関するクラウドプロバイダー API に対する呼び出しを含む) はプロキシーされます。プロキシーを必要に応じてバイパスするために、サイトを
Proxyオブジェクトのspec.noProxyフィールドに追加している。注記Proxyオブジェクトのstatus.noProxyフィールドには、インストール設定のnetworking.machineNetwork[].cidr、networking.clusterNetwork[].cidr、およびnetworking.serviceNetwork[]フィールドの値が設定されます。Amazon Web Services (AWS)、Microsoft Azure、および Red Hat OpenStack Platform (RHOSP) へのインストールの場合、
Proxyオブジェクトのstatus.noProxyフィールドには、インスタンスメタデータのエンドポイント (169.254.169.254) も設定されます。
手順
install-config.yamlファイルを編集し、プロキシー設定を追加します。以下に例を示します。apiVersion: v1 baseDomain: my.domain.com proxy: httpProxy: http://<username>:<pswd>@<ip>:<port> httpsProxy: https://<username>:<pswd>@<ip>:<port> noProxy: example.com additionalTrustBundle: | -----BEGIN CERTIFICATE----- <MY_TRUSTED_CA_CERT> -----END CERTIFICATE----- additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle> # ...ここでは、以下のようになります。
プロキシー.httpProxy-
クラスター外部からの HTTP 接続を作成する際に使用するプロキシー URL を指定します。URL スキームは
httpである必要があります。 プロキシー。https プロキシー- クラスター外部からの HTTPS 接続を作成する際に使用するプロキシー URL を指定します。
プロキシー.noProxy-
プロキシー処理から除外する宛先ドメイン名、IP アドレス、またはその他のネットワーク CIDR をコンマ区切りで指定します。サブドメインのみと一致するように、ドメインの前に
.を付けます。たとえば、.y.comはx.y.comに一致しますが、y.comには一致しません。*を使用し、すべての宛先のプロキシーをバイパスします。 additionalTrustBundle-
指定されている場合には、インストールプログラムは、
openshift-confignamespace にuser-ca-bundleという名前の設定魔府を生成して、追加の CA 証明書を保存します。additionalTrustBundleと少なくとも 1 つのプロキシー設定を指定した場合には、Proxyオブジェクトはtrusted CAフィールドでuser-ca-bundle設定マップを参照するように設定されます。その後、Cluster Network Operator は、trustedCAパラメーターに指定されたコンテンツを RHCOS トラストバンドルにマージするtrusted-ca-bundle設定マップを作成します。additionalTrustBundleフィールドは、プロキシーのアイデンティティー証明書が RHCOS 信頼バンドルからの認証局によって署名されない限り必要になります。 追加のトラストバンドルポリシーtrustedCAフィールドでuser-ca-bundleconfig map を参照するようにProxyオブジェクトの設定を決定するポリシーを指定します。許可される値はProxyonlyおよびAlwaysです。Proxyonlyを使用して、http/httpsプロキシーが設定されている場合にのみuser-ca-bundle設定マップを参照します。Alwaysを使用して、常にuser-ca-bundle設定マップを参照します。デフォルト値はProxyonlyです。オプションのパラメーター。注記インストールプログラムは、プロキシーの
readinessEndpointsフィールドをサポートしません。注記インストールプログラムがタイムアウトした場合は、再起動してから、インストールプログラムの
wait-forコマンドを使用してデプロイメントを完了してください。以下に例を示します。$ ./openshift-install wait-for install-complete --log-level debug
ファイルを保存し、OpenShift Container Platform のインストール時にこれを参照します。
インストールプログラムは、指定の
install-config.yamlファイルのプロキシー設定を使用するclusterという名前のクラスター全体のプロキシーを作成します。プロキシー設定が指定されていない場合、clusterProxyオブジェクトが依然として作成されますが、これにはspecがありません。注記clusterという名前のProxyオブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。
1.11.3. 3 ノードクラスターの設定 リンクのコピーリンクがクリップボードにコピーされました!
テストおよび本番環境向けに、より小規模でリソース効率の良いクラスターを作成するには、コンピュートマシンをゼロにしたベアメタルクラスターをデプロイします。このオプション設定では、制御プレーンマシンを 3 台のみ使用することで、管理者と開発者向けのインフラストラクチャーリソースを最適化します。
3 ノードの OpenShift Container Platform 環境では、3 つのコントロールプレーンマシンがスケジュール対象となります。つまり、アプリケーションのワークロードがそれらで実行されるようにスケジュールされます。
前提条件
-
既存の
install-config.yamlファイルがある。
手順
以下の
computeスタンザに示されるように、コンピュートレプリカの数がinstall-config.yamlファイルで0に設定されることを確認します。compute: - name: worker platform: {} replicas: 0 # ...注記デプロイするコンピュートマシンの数にかかわらず、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) マシンを作成する際は、コンピュートノードをデプロイしないでください。
1.12. Kubernetes マニフェストおよび Ignition 設定ファイルの作成 リンクのコピーリンクがクリップボードにコピーされました!
クラスター定義をカスタマイズしたり、マシンを手動で起動したりするには、Kubernetes マニフェストファイルと Ignition 設定ファイルを生成します。これらの資料は、お客様固有のデプロイメント要件に合わせてクラスターインフラストラクチャーを設定するために必要な手順を提供します。
インストール設定ファイルは Kubernetes マニフェストに変換されます。マニフェストは Ignition 設定ファイルにラップされます。これはクラスターマシンを設定するために後で使用されます。
-
OpenShift Container Platform のインストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の
node-bootstrapper証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。 - 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
前提条件
- OpenShift Container Platform インストールプログラムを取得していること。
-
install-config.yamlインストール設定ファイルを作成していること。
手順
OpenShift Container Platform のインストールプログラムが含まれるディレクトリーに切り替え、クラスターの Kubernetes マニフェストを生成します。
$ ./openshift-install create manifests --dir <installation_directory>以下は、
<installation_directory>-
作成した
install-config.yamlファイルが格納されているインストールディレクトリーを指定します。
警告3 ノードクラスターをインストールしている場合は、以下の手順を省略してコントロールプレーンノードをスケジュール対象にします。
+
重要コントロールプレーンノードをデフォルトのスケジュール不可からスケジュール可に設定するには、追加のサブスクリプションが必要です。これは、コントロールプレーンノードがコンピュートノードになるためです。
<installation_directory>/manifests/cluster-scheduler-02-config.ymlKubernetes マニフェストファイルのmastersSchedulableパラメーターがfalseに設定されていることを確認します。この設定により、Pod がコントロールプレーンマシンにスケジュールされなくなります。-
<installation_directory>/manifests/cluster-scheduler-02-config.ymlファイルを開きます。 -
mastersSchedulableパラメーターを見つけ、これがfalseに設定されていることを確認します。 - ファイルを保存し、終了します。
-
Ignition 設定ファイルを作成するには、インストールプログラムが含まれるディレクトリーから以下のコマンドを実行します。
$ ./openshift-install create ignition-configs --dir <installation_directory>ここでは、以下のようになります。
<installation_directory>同じインストールディレクトリーを指定します。
Ignition 設定ファイルは、インストールディレクトリー内のブートストラップ、コントロールプレーン、およびコンピュートノード用に作成されます。
kubeadmin-passwordおよびkubeconfigファイルが./<installation_directory>/authディレクトリーに作成されます。. ├── auth │ ├── kubeadmin-password │ └── kubeconfig ├── bootstrap.ign ├── master.ign ├── metadata.json └── worker.ign
1.13. RHCOS のインストールおよび OpenShift Container Platform ブートストラッププロセスの開始 リンクのコピーリンクがクリップボードにコピーされました!
プロビジョニングしたベアメタルインフラストラクチャーに OpenShift Container Platform をインストールするには、生成された Ignition 設定ファイルを使用して Red Hat Enterprise Linux CoreOS(RHCOS) をインストールします。これらのファイルを提供することで、マシンの再起動後にブートストラッププロセスが自動的に開始されることが保証されます。
適切なネットワーク、DNS、および負荷分散インフラストラクチャーが設定されている場合、OpenShift Container Platform ブートストラッププロセスは RHCOS マシンの再起動後に自動的に開始されます。
RHCOS をマシンにインストールするには、ISO イメージまたはネットワーク PXE ブートを使用する手順のいずれかを実行します。
このインストールガイドに含まれるコンピュートノードのデプロイメント手順は、RHCOS 固有のものです。代わりに RHEL ベースのコンピュートノードのデプロイを選択する場合は、システム更新の実行、パッチの適用、その他すべての必要なタスクの完了など、オペレーティングシステムのライフサイクルの管理と保守をすべて担当します。RHEL8 コンピュートマシンのみがサポートされています。
以下の方法を使用して、ISO および PXE のインストール時に RHCOS を設定できます。
-
カーネル引数: カーネル引数を使用してインストール固有の情報を提供できます。たとえば、HTTP サーバーにアップロードした RHCOS インストールファイルの場所と、インストールするノードタイプの Ignition 設定ファイルの場所を指定できます。PXE インストールの場合、
APPENDパラメーターを使用して、ライブインストーラーのカーネルに引数を渡すことができます。ISO インストールの場合は、ライブインストール起動プロセスを中断してカーネル引数を追加できます。いずれのインストールの場合でも、特殊なcoreos.inst.*引数を使用してライブインストーラーに指示を与えたり、標準のカーネルサービスをオンまたはオフにするために標準のインストールブート引数を使用したりできます。 -
Ignition 設定: OpenShift Container Platform Ignition 設定ファイル (
*.ign) は、インストールするノードのタイプに固有のものです。RHCOS のインストール時にブートストラップ、コントロールプレーン、またはコンピュートノードの Ignition 設定ファイルの場所を渡して、初回起動時に有効にされるようにします。特別なケースでは、ライブシステムに渡すために個別の制限付き Ignition 設定を作成できます。この Ignition 設定は、インストールが正常に完了したことをプロビジョニングシステムに報告するなどの一連のタスクを実行する可能性があります。この特別な Ignition 設定は、インストール済みシステムの初回ブート時に適用されるcoreos-installerによって使用されます。標準のコントロールプレーンおよびコンピュートノードの Ignition 設定をライブ ISO に直接指定しないでください。 coreos-installer: ライブ ISO インストーラーをシェルプロンプトで起動できます。これにより、初回のブート前にさまざまな方法で永続的なシステムの準備を行うことができます。特に、coreos-installerコマンドを実行すると、追加するさまざまなアーティファクトを特定し、ディスクパーティションを使用し、ネットワークを設定できます。場合によっては、ライブシステムで機能を設定し、それらをインストールされたシステムにコピーできます。注記バージョン
0.17.0-3以降、coreos-installerプログラムを実行するには RHEL 9 以降が必要です。古いバージョンのcoreos-installerを使用して、新しい OpenShift Container Platform リリースの RHCOS アーティファクトをカスタマイズし、メタルイメージをディスクにインストールすることもできます。coreos-installerバイナリーの古いバージョンは、coreos-installerimage mirror ページからダウンロードできます。
ISO または PXE インストールを使用するかどうかは、状況によって異なります。PXE インストールには、利用可能な DHCP サービスとさらなる準備が必要ですが、インストールプロセスはさらに自動化することが可能です。ISO インストールは主に手動によるプロセスで、複数のマシンを設定する場合には使用しにくい可能性があります。
1.13.1. ISO イメージを使用した RHCOS のインストール リンクのコピーリンクがクリップボードにコピーされました!
物理マシンまたは仮想マシンをプロビジョニングするには、起動可能な ISO イメージを使用して RHCOS をインストールします。この方法を使えば、ローカルメディアまたは仮想ドライブから直接オペレーティングシステムをデプロイできます。
前提条件
- クラスターの Ignition 設定ファイルを作成している。
- 適切なネットワーク、DNS、およびロードバランシングのインフラストラクチャーを設定しました。
- お使いのコンピューターからアクセスでき、作成するマシンからもアクセスできる HTTP サーバーがある。
- ネットワークやディスクパーティションなどのさまざまな機能の設定方法について、高度な RHCOS インストール設定 のセクションを確認している。
手順
それぞれの Ignition 設定ファイルの SHA512 ダイジェストを取得します。たとえば、Linux を実行しているシステムで以下を使用して、
bootstrap.ignIgnition 設定ファイルの SHA512 ダイジェストを取得できます。$ sha512sum <installation_directory>/bootstrap.ignダイジェストは、クラスターノードの Ignition 設定ファイルの信頼性を検証するために、後の手順で
coreos-installerに提供されます。インストールプログラムが作成したブートストラップ、コントロールプレーン、およびコンピュートノード Ignition 設定ファイルを HTTP サーバーにアップロードします。これらのファイルの URL をメモします。
重要HTTP サーバーに保存する前に、Ignition 設定で設定内容を追加したり、変更したりできます。インストールの完了後にコンピュートマシンをさらにクラスターに追加する予定の場合には、これらのファイルを削除しないでください。
インストールホストから、Ignition 設定ファイルが URL で利用可能であることを確認します。以下の例では、ブートストラップノードの Ignition 設定ファイルを取得します。
$ curl -k http://<HTTP_server>/bootstrap.ign<HTTP_server>: コマンド内の
bootstrap.ign をmaster.ignまたはworker.ignに置き換えて、コントロールプレーンとコンピュートノードの Ignition 設定ファイルも利用可能であることを確認します。出力例
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0{"ignition":{"version":"3.2.0"},"passwd":{"users":[{"name":"core","sshAuthorizedKeys":["ssh-rsa...
RHCOS イメージのミラー ページから、オペレーティングシステムインスタンスをインストールするための推奨される方法に必要な RHCOS イメージを取得することは可能ですが、RHCOS イメージの正しいバージョンを取得するための推奨される方法は、
openshift-installコマンドの出力から取得することです。$ openshift-install coreos print-stream-json | grep '\.iso[^.]'出力例
"location": "<url>/art/storage/releases/rhcos-4.20-aarch64/<release>/aarch64/rhcos-<release>-live.aarch64.iso", "location": "<url>/art/storage/releases/rhcos-4.20-ppc64le/<release>/ppc64le/rhcos-<release>-live.ppc64le.iso", "location": "<url>/art/storage/releases/rhcos-4.20-s390x/<release>/s390x/rhcos-<release>-live.s390x.iso", "location": "<url>/art/storage/releases/rhcos-4.20/<release>/x86_64/rhcos-<release>-live.x86_64.iso",重要RHCOS イメージは OpenShift Container Platform の各リリースごとに変更されない可能性があります。インストールする OpenShift Container Platform バージョンと等しいか、それ以下のバージョンの内で最も新しいバージョンのイメージをダウンロードする必要があります。利用可能な場合は、OpenShift Container Platform バージョンに一致するイメージのバージョンを使用します。この手順には ISO イメージのみを使用します。RHCOS qcow2 イメージは、このインストールではサポートされません。
ISO ファイルの名前は以下の例のようになります。
rhcos-<version>-live.<architecture>.isoISO を使用し、RHCOS インストールを開始します。以下のインストールオプションのいずれかを使用します。
- ディスクに ISO イメージを書き込み、これを直接起動します。
- Lights Out Management (LOM) インターフェイスを使用して ISO リダイレクトを使用します。
オプションを指定したり、ライブ起動シーケンスを中断したりせずに、RHCOS ISO イメージを起動します。インストーラーが RHCOS ライブ環境でシェルプロンプトを起動するのを待ちます。
注記RHCOS インストール起動プロセスを中断して、カーネル引数を追加できます。ただし、この ISO 手順では、カーネル引数を追加する代わりに、以下の手順で説明しているように
coreos-installerコマンドを使用する必要があります。coreos-installerコマンドを実行し、インストール要件を満たすオプションを指定します。少なくとも、ノードタイプの Ignition 設定ファイルを参照する URL と、インストール先のデバイスを指定する必要があります。$ sudo coreos-installer install --ignition-url=http://<HTTP_server>/<node_type>.ign <device> \ --ignition-hash=sha512-<digest>-
< デバイス >:coreユーザーにはインストールを実行するために必要な root 特権がないため、sudoを使用してcoreos-installerコマンドを実行する必要があります。 <digest>: Ignition 設定ファイルが HTTP URL 経由で取得される場合、クラスターノード上の Ignition 設定ファイルの真正性を検証するために--ignition-hashオプションが必要です。<digest>は、先の手順で取得した Ignition 設定ファイル SHA512 ダイジェストです。注記TLS を使用する HTTPS サーバーを使用して Ignition 設定ファイルを提供する場合は、
coreos-installerを実行する前に、内部認証局 (CA) をシステムのトラストストアに追加できます。以下の例では、
/dev/sdaデバイスへのブートストラップノードのインストールを初期化します。ブートストラップノードの Ignition 設定ファイルは、IP アドレス 192.168.1.2 で HTTP Web サーバーから取得されます。$ sudo coreos-installer install --ignition-url=http://192.168.1.2:80/installation_directory/bootstrap.ign /dev/sda \ --ignition-hash=sha512-a5a2d43879223273c9b60af66b44202a1d1248fc01cf156c46d4a79f552b6bad47bc8cc78ddf0116e80c59d2ea9e32ba53bc807afbca581aa059311def2c3e3b
-
マシンのコンソールで RHCOS インストールの進捗を監視します。
重要OpenShift Container Platform のインストールを開始する前に、各ノードでインストールが成功していることを確認します。インストールプロセスを監視すると、発生する可能性のある RHCOS インストールの問題の原因を特定する上でも役立ちます。
- RHCOS のインストール後、システムを再起動する必要があります。システムの再起動後、指定した Ignition 設定ファイルを適用します。
コンソール出力をチェックして、Ignition が実行されたことを確認します。
コマンドの例
Ignition: ran on 2022/03/14 14:48:33 UTC (this boot) Ignition: user-provided config was applied継続してクラスターの他のマシンを作成します。
重要この時点でブートストラップおよびコントロールプレーンマシンを作成する必要があります。コントロールプレーンマシンがデフォルトのスケジュール対象にされていない場合、OpenShift Container Platform のインストール前に少なくとも 2 つのコンピュートマシンも作成します。
必要なネットワーク、DNS、およびロードバランサーインフラストラクチャーが配置されている場合、OpenShift Container Platform ブートストラッププロセスは RHCOS ノードの再起動後に自動的に起動します。
注記RHCOS ノードには、
coreユーザーのデフォルトのパスワードは含まれません。ノードには、ssh core@<node>.<cluster_name>.<base_domain>を、install_config.yamlファイルで指定したパブリックキーとペアになる SSH プライベートキーへのアクセスのあるユーザーとして実行してアクセスできます。RHCOS を実行する OpenShift Container Platform 4 クラスターノードは変更できず、Operator を使用してクラスターの変更を適用します。SSH を使用したクラスターノードへのアクセスは推奨されません。ただし、インストールの問題を調査する際に、OpenShift Container Platform API が利用できない場合や、kubelet がターゲットノードで適切に機能しない場合、デバッグまたは障害復旧に SSH アクセスが必要になることがあります。
1.13.2. PXE または iPXE ブートを使用した RHCOS のインストール リンクのコピーリンクがクリップボードにコピーされました!
PXE または iPXE ブートを使用してマシンに RHCOS をインストールできます。
前提条件
- クラスターの Ignition 設定ファイルを作成している。
- 適切なネットワーク、DNS および負荷分散インフラストラクチャーを設定している。
- 適切な PXE または iPXE インフラストラクチャーを設定していること。
- お使いのコンピューターからアクセスでき、作成するマシンからもアクセスできる HTTP サーバーがある。
- ネットワークやディスクパーティションなどのさまざまな機能の設定方法について、高度な RHCOS インストール設定 のセクションを確認している。
手順
インストールプログラムが作成したブートストラップ、コントロールプレーン、およびコンピュートノード Ignition 設定ファイルを HTTP サーバーにアップロードします。これらのファイルの URL をメモします。
重要HTTP サーバーに保存する前に、Ignition 設定で設定内容を追加したり、変更したりできます。インストールの完了後にコンピュートマシンをさらにクラスターに追加する予定の場合には、これらのファイルを削除しないでください。
インストールホストから、Ignition 設定ファイルが URL で利用可能であることを確認します。以下の例では、ブートストラップノードの Ignition 設定ファイルを取得します。
$ curl -k http://<HTTP_server>/bootstrap.ign<HTTP_server>: コマンド内のbootstrap.ign をmaster.ignまたはworker.ignに置き換えて、コントロールプレーンとコンピュートノードの Ignition 設定ファイルも利用可能であることを確認します。出力例
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0{"ignition":{"version":"3.2.0"},"passwd":{"users":[{"name":"core","sshAuthorizedKeys":["ssh-rsa...
RHCOS イメージミラー ページからオペレーティングシステムインスタンスをインストールするための推奨される方法に必要な RHCOS
kernel、initramfs、およびrootfsファイルを取得することは可能ですが、RHCOS ファイルの正しいバージョンを取得するための推奨される方法は、openshift-installコマンドの出力から取得することです。$ openshift-install coreos print-stream-json | grep -Eo '"https.*(kernel-|initramfs.|rootfs.)\w+(\.img)?"'出力例
"<url>/art/storage/releases/rhcos-4.20-aarch64/<release>/aarch64/rhcos-<release>-live-kernel-aarch64" "<url>/art/storage/releases/rhcos-4.20-aarch64/<release>/aarch64/rhcos-<release>-live-initramfs.aarch64.img" "<url>/art/storage/releases/rhcos-4.20-aarch64/<release>/aarch64/rhcos-<release>-live-rootfs.aarch64.img" "<url>/art/storage/releases/rhcos-4.20-ppc64le/49.84.202110081256-0/ppc64le/rhcos-<release>-live-kernel-ppc64le" "<url>/art/storage/releases/rhcos-4.20-ppc64le/<release>/ppc64le/rhcos-<release>-live-initramfs.ppc64le.img" "<url>/art/storage/releases/rhcos-4.20-ppc64le/<release>/ppc64le/rhcos-<release>-live-rootfs.ppc64le.img" "<url>/art/storage/releases/rhcos-4.20-s390x/<release>/s390x/rhcos-<release>-live-kernel-s390x" "<url>/art/storage/releases/rhcos-4.20-s390x/<release>/s390x/rhcos-<release>-live-initramfs.s390x.img" "<url>/art/storage/releases/rhcos-4.20-s390x/<release>/s390x/rhcos-<release>-live-rootfs.s390x.img" "<url>/art/storage/releases/rhcos-4.20/<release>/x86_64/rhcos-<release>-live-kernel-x86_64" "<url>/art/storage/releases/rhcos-4.20/<release>/x86_64/rhcos-<release>-live-initramfs.x86_64.img" "<url>/art/storage/releases/rhcos-4.20/<release>/x86_64/rhcos-<release>-live-rootfs.x86_64.img"重要RHCOS アーティファクトは OpenShift Container Platform の各リリースごとに変更されない可能性があります。インストールする OpenShift Container Platform バージョンと等しいか、それ以下のバージョンの内で最も新しいバージョンのイメージをダウンロードする必要があります。この手順で説明されている適切な
kernel、initramfs、およびrootfsアーティファクトのみを使用します。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
-
rootfs、kernel、およびinitramfsファイルを HTTP サーバーにアップロードします。重要インストールの完了後にコンピュートマシンをさらにクラスターに追加する予定の場合には、これらのファイルを削除しないでください。
- RHCOS のインストール後にマシンがローカルディスクから起動されるようにネットワークブートインフラストラクチャーを設定します。
- RHCOS イメージの PXE または iPXE インストールを設定し、インストールを開始します。
ご使用の環境に関する以下の例で示されるメニューエントリーのいずれかを変更し、イメージおよび Ignition ファイルが適切にアクセスできることを確認します。
PXE(
x86_64) の場合:DEFAULT pxeboot TIMEOUT 20 PROMPT 0 LABEL pxeboot KERNEL http://<HTTP_server>/rhcos-<version>-live-kernel-<architecture> APPEND initrd=http://<HTTP_server>/rhcos-<version>-live-initramfs.<architecture>.img coreos.live.rootfs_url=http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http://<HTTP_server>/bootstrap.ignここでは、以下のようになります。
kernel-
HTTP サーバーにアップロードしたライブ
kernelファイルの場所を指定します。URL は HTTP、TFTP、または FTP である必要があります。HTTPS および NFS はサポートされません。 initrd=main複数の NIC を使用する場合、
ipオプションに単一インターフェイスを指定します。たとえば、eno1という名前の NIC で DHCP を使用するには、ip=eno1:dhcpを設定します。HTTP サーバーにアップロードした RHCOS ファイルの場所を指定します。initrdパラメーター値はinitramfsファイルの場所であり、coreos.live.rootfs_urlパラメーター値はrootfsファイルの場所、またcoreos.inst.ignition_urlパラメーター値はブートストラップ Ignition 設定ファイルの場所になります。APPEND行にカーネル引数を追加して、ネットワークやその他の起動オプションを設定することもできます。注記この設定では、グラフィカルコンソールを使用するマシンでシリアルコンソールアクセスを有効にしません。別のコンソールを設定するには、
APPEND行に 1 つ以上のconsole=引数を追加します。たとえば、console=tty0 console=ttyS0を追加して、最初の PC シリアルポートをプライマリーコンソールとして、グラフィカルコンソールをセカンダリーコンソールとして設定します。詳細は、How does one set up a serial terminal and/or console in Red Hat Enterprise Linux? と、「高度な RHCOS インストール設定」セクションの「PXE および ISO インストール用シリアルコンソールの有効化」を参照してください。
iPXE (
x86_64+aarch64) の場合:kernel http://<HTTP_server>/rhcos-<version>-live-kernel-<architecture> initrd=main coreos.live.rootfs_url=http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http://<HTTP_server>/bootstrap.ign initrd --name main http://<HTTP_server>/rhcos-<version>-live-initramfs.<architecture>.img bootkernel-
HTTP サーバーにアップロードした RHCOS ファイルの場所を指定します。
kernelパラメーター値はkernelファイルの場所であり、initrd=main引数は UEFI システムでの起動に必要であり、coreos.live.rootfs_urlパラメーター値はrootfsファイルの場所であり、coreos.inst.ignition_urlパラメーター値はブートストラップ Ignition 設定ファイルの場所になります。複数の NIC を使用する場合、ipオプションに単一インターフェイスを指定します。たとえば、eno1という名前の NIC で DHCP を使用するには、ip=eno1:dhcpを設定します。 initrdHTTP サーバーにアップロードした
initramfsファイルの場所を指定します。注記この設定では、グラフィカルコンソールを使用するマシンでシリアルコンソールアクセスを有効にしません。別のコンソールを設定するには、
kernel行にconsole=引数を 1 つ以上追加します。たとえば、console=tty0 console=ttyS0を追加して、最初の PC シリアルポートをプライマリーコンソールとして、グラフィカルコンソールをセカンダリーコンソールとして設定します。詳細は、How does one set up a serial terminal and/or console in Red Hat Enterprise Linux? と、「高度な RHCOS インストール設定」セクションの「PXE および ISO インストール用シリアルコンソールの有効化」を参照してください。注記aarch64アーキテクチャーで CoreOSkernelをネットワークブートするには、IMAGE_GZIPオプションが有効になっているバージョンの iPXE ビルドを使用する必要があります。iPXE のIMAGE_GZIPオプション を参照してください。
aarch64上の PXE (第 2 段階として UEFI と Grub を使用) の場合:menuentry 'Install CoreOS' { linux rhcos-<version>-live-kernel-<architecture> coreos.live.rootfs_url=http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http://<HTTP_server>/bootstrap.ign initrd rhcos-<version>-live-initramfs.<architecture>.img }ここでは、以下のようになります。
coreos.live.rootfs_url- HTTP/TFTP サーバーにアップロードした RHCOS ファイルの場所を指定します。
kernel-
kernelパラメーター値は、TFTP サーバー上のkernelファイルの場所になります。coreos.live.rootfs_urlパラメーター値はrootfsファイルの場所であり、coreos.inst.ignition_urlパラメーター値は HTTP サーバー上のブートストラップ Ignition 設定ファイルの場所になります。複数の NIC を使用する場合、ipオプションに単一インターフェイスを指定します。たとえば、eno1という名前の NIC で DHCP を使用するには、ip=eno1:dhcpを設定します。 initrd rhcos-
TFTP サーバーにアップロードした
initramfsファイルの場所を指定します。
マシンのコンソールで RHCOS インストールの進捗を監視します。
重要OpenShift Container Platform のインストールを開始する前に、各ノードでインストールが成功していることを確認します。インストールプロセスを監視すると、発生する可能性のある RHCOS インストールの問題の原因を特定する上でも役立ちます。
- RHCOS のインストール後に、システムは再起動します。再起動中、システムは指定した Ignition 設定ファイルを適用します。
コンソール出力をチェックして、Ignition が実行されたことを確認します。
コマンドの例
Ignition: ran on 2022/03/14 14:48:33 UTC (this boot) Ignition: user-provided config was appliedクラスターのマシンの作成を続行します。
重要この時点でブートストラップおよびコントロールプレーンマシンを作成する必要があります。コントロールプレーンマシンがデフォルトのスケジュール対象にされていない場合、クラスターのインストール前に少なくとも 2 つのコンピュートマシンを作成します。
必要なネットワーク、DNS、およびロードバランサーインフラストラクチャーが配置されている場合、OpenShift Container Platform ブートストラッププロセスは RHCOS ノードの再起動後に自動的に起動します。
注記RHCOS ノードには、
coreユーザーのデフォルトのパスワードは含まれません。ノードには、ssh core@<node>.<cluster_name>.<base_domain>を、install_config.yamlファイルで指定したパブリックキーとペアになる SSH プライベートキーへのアクセスのあるユーザーとして実行してアクセスできます。RHCOS を実行する OpenShift Container Platform 4 クラスターノードは変更できず、Operator を使用してクラスターの変更を適用します。SSH を使用したクラスターノードへのアクセスは推奨されません。ただし、インストールの問題を調査する際に、OpenShift Container Platform API が利用できない場合や、kubelet がターゲットノードで適切に機能しない場合、デバッグまたは障害復旧に SSH アクセスが必要になることがあります。
1.13.3. 高度な RHCOS インストール設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトのインストール方法では利用できない高度な設定を適用するには、OpenShift Container Platform 用の Red Hat Enterprise Linux CoreOS (RHCOS) ノードを手動でプロビジョニングします。このアプローチにより、ノードインフラストラクチャーをきめ細かく制御し、特定のデプロイメント要件を満たすことが可能になります。
- カーネル引数をライブインストーラーに渡す
-
ライブシステムからの
coreos-installerの手動による実行 - ライブ ISO または PXE ブートイメージのカスタマイズ
このセクションで詳述する、Red Hat Enterprise Linux CoreOS (RHCOS) の手動インストールに関する高度な設定トピックは、ディスクパーティショニング、ネットワーク、およびさまざまな方法での Ignition の設定に関連しています。
1.13.4. ISO インストールのネットワークおよびボンディングのオプション リンクのコピーリンクがクリップボードにコピーされました!
高度なオプションを設定することで、Red Hat Enterprise Linux CoreOS (RHCOS) の手動インストールプロセスを変更することができます。以降のセクションでは、ISO インストールにおけるネットワークオプションの例を示します。
ISO イメージから RHCOS をインストールする場合、そのイメージを起動してノードのネットワークを設定する際に手動でカーネル引数を追加できます。ネットワークの引数が指定されていない場合、RHCOS が Ignition 設定ファイルを取得するためにネットワークが必要であることを検知する際に、DHCP が initramfs でアクティベートされます。
ネットワーク引数を手動で追加する場合は、rd.neednet=1 カーネル引数を追加して、ネットワークを initramfs で有効にする必要があります。
以下の情報は、ISO インストール用に RHCOS ノードでネットワークおよびボンディングを設定する例を示しています。この例では、ip=、nameserver=、および bond= カーネル引数の使用方法を説明しています。
順序は、カーネル引数の ip=、nameserver=、および bond= を追加する場合に重要です。
ネットワークオプションは、システムの起動時に dracut ツールに渡されます。dracut がサポートするネットワークオプションの詳細は、dracut.cmdline の man ページを参照してください。
1.13.4.1. DHCP または静的 IP アドレスの設定 リンクのコピーリンクがクリップボードにコピーされました!
IP アドレスは、DHCP を使用するか、個別の静的 IP アドレスを設定することで設定できます。静的 IP アドレスを設定する場合は、各ノードで DNS サーバーの IP アドレスを特定する必要があります。
手順書に記載されている設定例では、以下のコンポーネントの 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 アドレスを設定するには、次のようなコマンドを入力してください。
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none nameserver=4.4.4.41DHCP IP アドレスを設定するには、次のようなコマンドを入力してください。
ip=enp1s0:dhcp注記DHCP を使用して RHCOS マシンの IP アドレスを設定する場合、マシンは DHCP を介して DNS サーバー情報も取得します。DHCP ベースのデプロイメントの場合、DHCP サーバー設定を使用して RHCOS ノードが使用する DNS サーバーアドレスを定義できます。
ネットワークインターフェイスが 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複数のネットワークインターフェイスを持つシステムで DHCP と静的 IP 設定を組み合わせる必要がある場合は、次のコマンド例を実行してください。
ip=enp1s0:dhcp ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp2s0:none
1.13.4.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 アドレスを設定するには、次のようなコマンドを入力します。
ip=10.10.10.2::10.10.10.254:255.255.255.0::enp1s0:none nameserver=4.4.4.41
1.13.4.3. 複数のネットワークインターフェイスと DNS サーバーを指定する リンクのコピーリンクがクリップボードにコピーされました!
複数の ip= エントリーを設定することで、複数のネットワークインターフェイスを指定できます。各サーバーに nameserver= エントリーを追加することで、複数の DNS サーバーを指定できます。
手順
インターフェイスに複数のネットワークインターフェイスを指定するには、次のようなコマンドを入力します。
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各サーバーに
nameserver=エントリーを追加して複数の DNS サーバーを指定するには、次のようなコマンドを入力します。nameserver=1.1.1.1 nameserver=8.8.8.8
1.13.4.4. デフォルトゲートウェイとルートの設定 リンクのコピーリンクがクリップボードにコピーされました!
オプションのタスクとして、rd.route= の 値を設定することで、追加のネットワークへのルートを設定できます。
1 つまたは複数のネットワークを設定する場合、1 つのデフォルトゲートウェイが必要です。追加のネットワークゲートウェイがプライマリーネットワークゲートウェイと異なる場合、デフォルトゲートウェイはプライマリーネットワークゲートウェイである必要があります。
手順
デフォルトゲートウェイを設定するには、次のコマンドを入力します。
ip=::10.10.10.254::::追加のネットワークへのルートを設定するには、次のコマンドを入力します。
rd.route=20.20.20.0/24:20.20.20.254:enp2s0
1.13.4.5. 個々のインターフェイスでの 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ネットワークインターフェイスで VLAN を設定し、DHCP を使用するには、次のコマンドを実行します。
ip=enp2s0.100:dhcp vlan=enp2s0.100:enp2s0
1.13.4.6. 複数のネットワークインターフェイスの単一インターフェイスへのボンディング リンクのコピーリンクがクリップボードにコピーされました!
オプションとして、bond= オプションを使用することで、複数のネットワークインターフェイスを単一のインターフェイスにボンディングできます。この作業を完了することで、ネットワーク環境における単一障害点を排除できます。
次の例は 、/etc/config/network ファイルを編集し、複数のネットワークインターフェイスを単一のインターフェイスにボンディングするための構文を指定する方法を示しています。
bond=<name>[:<network_interfaces>][:<options>]
-
<name>: ボンディングデバイス名を指定します。例:bond0。 -
<network_interfaces>:em1,em2のように、物理 (イーサネット) インターフェイスをコンマ区切りで指定します。 -
<options>: 結合オプションをコンマ区切りで指定します。利用可能なオプションを確認するには、`modinfo bonding` コマンドを入力してください。
bond= コマンドを使用してボンディングインターフェイスを作成する場合、IP アドレスの割り当て方法や、ボンディングインターフェイスに関するその他の情報を指定する必要があります。
手順
ボンディングされたインターフェイスで DHCP を使用するように設定するには、
/etc/config/networkファイルを編集し、ボンディングの IP アドレスをdhcpに設定します。以下に例を示します。bond=bond0:em1,em2:mode=active-backup ip=bond0:dhcpボンディングされたインターフェイスで静的 IP アドレスを使用するように設定するには、
/etc/config/networkファイルを編集し、使用したい特定の IP アドレスと関連情報を入力します。以下に例を示します。bond=bond0:em1,em2:mode=active-backup ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:bond0:none
1.13.4.7. 複数の SR-IOV ネットワークインターフェイスをデュアルポート NIC インターフェイスに結合する リンクのコピーリンクがクリップボードにコピーされました!
bond= オプションを使用すると、複数の SR-IOV ネットワークインターフェイスをデュアルポート NIC インターフェイスにボンディングできます。このタスクは、単一の物理ポートが単一障害点となることを防ぐことで、ネットワークの可用性を高めます。各ノードに手順タスクを適用してください。
手順
- SR-IOV デバイスの管理 のガイダンスに従って、SR-IOV 仮想機能 (VF) を作成します。「仮想マシンへの SR-IOV ネットワークデバイスの接続」セクションの手順に従います。
ボンドを作成し、目的の VF をボンドに接続し、ネットワークボンディングの設定 のガイダンスに従って、ボンドリンクの状態を設定します。説明されている手順のいずれかに従って、結合を作成します。
次の例は、使用する必要がある構文を示しています。
結合インターフェイスを設定するための構文は、
bond=<name>[:<network_interfaces>][:options]です。<name>はボンディングデバイス名 (bond0)、<network_interfaces>は仮想機能 (VF) をカーネル内の既知の名前で表し、ip linkコマンド (eno1f0、eno2f0) の出力に表示されます。options は結合オプションのコンマ区切りリストです。modinfo bondingを入力して、利用可能なオプションを表示します。bond=を使用してボンディングされたインターフェイスを作成する場合は、ボンディングされたインターフェイスの IP アドレスの割り当て方法やその他の情報を指定する必要があります。DHCP を使用するようにボンディングされたインターフェイスを設定するには、ボンドの IP アドレスを
dhcpに設定します。以下に例を示します。bond=bond0:eno1f0,eno2f0:mode=active-backup ip=bond0:dhcp静的 IP アドレスを使用するようにボンディングされたインターフェイスを設定するには、必要な特定の IP アドレスと関連情報を入力します。以下に例を示します。
bond=bond0:eno1f0,eno2f0:mode=active-backup ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:bond0:none
オプション:
team=パラメーターを使用することで、ネットワークチーミングをボンディングの代替手段として使用できます。チームインターフェイス設定の構文は
team=name[:network_interfaces]です。name はチームデバイス名 (
team0)、network_interfaces は物理 (イーサネット) インターフェイス (em1, em2) のコンマ区切りリストを表します。注記RHCOS が次のバージョンの RHEL に切り替わると、チーミングは非推奨になる予定です。詳細は、こちらの Red Hat ナレッジベース記事 を参照してください。
次の例を使用して、ネットワークチームを設定します。
team=team0:em1,em2 ip=team0:dhcp
1.13.4.8. coreos-installer と ISO および PXE インストール用のブートオプション リンクのコピーリンクがクリップボードにコピーされました!
RHCOS は、ISO イメージから RHCOS ライブ環境に起動した後に、コマンドプロンプトで coreos-installer install <options> <device> を実行してインストールできます。
以下の表は、coreos-installer コマンドに渡すことのできるサブコマンド、オプションおよび引数を示しています。
| coreos-installer install サブコマンド | |
| サブコマンド | 説明 |
|
| Ignition 設定を ISO イメージに埋め込みます。 |
| coreos-installer install サブコマンドオプション | |
| オプション | 説明 |
|
| イメージの URL を手動で指定します。 |
|
| ローカルイメージファイルを手動で指定します。デバッグに使用されます。 |
|
| ファイルから Ignition 設定を埋め込みます。 |
|
| URL から Ignition 設定を埋め込みます。 |
|
|
Ignition 設定の |
|
| インストール済みシステムの Ignition プラットフォーム ID を上書きします。 |
|
|
インストール済みのシステムに対して、カーネルとブートローダーコンソールを設定します。 |
|
| インストール済みシステムにデフォルトのカーネル引数を追加します。 |
|
| インストール済みシステムからデフォルトのカーネル引数を削除します。 |
|
| インストール環境からネットワーク設定をコピーします。 重要
|
|
|
|
|
| このラベル glob でパーティションを保存します。 |
|
| この数または範囲でパーティションを保存します。 |
|
| RHCOS イメージ署名の検証を省略します。 |
|
| HTTPS またはハッシュなしで Ignition URL を許可します。 |
|
|
ターゲット CPU アーキテクチャー。有効な値は |
|
| エラー時のパーティションテーブルは消去しないでください。 |
|
| ヘルプ情報を表示します。 |
| coreos-installer インストールサブコマンド引数 | |
| 引数 | 説明 |
|
| 宛先デバイス。 |
| coreos-installer ISO サブコマンド | |
| サブコマンド | 説明 |
|
| RHCOS ライブ ISO イメージをカスタマイズします。 |
|
| RHCOS ライブ ISO イメージをデフォルト設定に復元します。 |
|
| ISO イメージから埋め込まれた Ignition 設定を削除します。 |
| coreos-installer ISO カスタマイズサブコマンドオプション | |
| オプション | 説明 |
|
| 指定された Ignition 設定ファイルを宛先システムの新しい設定フラグメントにマージします。 |
|
| 宛先システムのカーネルとブートローダーコンソールを指定してください。 |
|
| 指定した宛先デバイスをインストールして上書きします。 |
|
| 宛先システムの各起動にカーネル引数を追加します。 |
|
| 宛先システムの各起動からカーネル引数を削除します。 |
|
| ライブシステムと宛先システムに指定された NetworkManager キーファイルを使用してネットワークを設定します。 |
|
| Ignition によって信頼される追加の TLS 認証局を指定します。 |
|
| インストールする前に、指定されたスクリプトを実行します。 |
|
| インストール後に指定されたスクリプトを実行します。 |
|
| 指定されたインストーラー設定ファイルを適用します。 |
|
| 指定された Ignition 設定ファイルをライブ環境の新しい設定フラグメントにマージします。 |
|
| ライブ環境の各ブートにカーネル引数を追加します。 |
|
| ライブ環境の各ブートからカーネル引数を削除します。 |
|
|
ライブ環境の各起動で、 |
|
| 既存の Ignition 設定を上書きします。 |
|
| 新しい出力ファイルに ISO を書き込みます。 |
|
| ヘルプ情報を表示します。 |
| coreos-installer PXE サブコマンド | |
| サブコマンド | 説明 |
| これらのオプションすべてがすべてのサブコマンドで使用できる訳ではないことに注意してください。 | |
|
| RHCOS ライブ PXE ブート設定をカスタマイズします。 |
|
| イメージに Ignition 設定をラップします。 |
|
| イメージでラップされた Ignition 設定を表示します。 |
| coreos-installer PXE はサブコマンドオプションをカスタマイズします | |
| オプション | 説明 |
| これらのオプションすべてがすべてのサブコマンドで使用できる訳ではないことに注意してください。 | |
|
| 指定された Ignition 設定ファイルを宛先システムの新しい設定フラグメントにマージします。 |
|
| 宛先システムのカーネルとブートローダーコンソールを指定してください。 |
|
| 指定した宛先デバイスをインストールして上書きします。 |
|
| ライブシステムと宛先システムに指定された NetworkManager キーファイルを使用してネットワークを設定します。 |
|
| Ignition によって信頼される追加の TLS 認証局を指定します。 |
|
| インストールする前に、指定されたスクリプトを実行します。 |
|
| インストール後に指定されたスクリプトを実行します。 |
|
| 指定されたインストーラー設定ファイルを適用します。 |
|
| 指定された Ignition 設定ファイルをライブ環境の新しい設定フラグメントにマージします。 |
|
| initramfs を新しい出力ファイルに書き込みます。 注記 このオプションは、PXE 環境に必要です。 |
|
| ヘルプ情報を表示します。 |
coreos.inst の 起動引数を RHCOS ライブインストーラーに渡すことで、起動時に coreos-installer の オプションを自動的に起動できます。これらは、標準のブート引数の追加として提供されます。
-
ISO イメージをインストールする場合、ブートローダーメニューで自動起動を中断することで、
coreos.instオプションを追加できます。RHEL CoreOS (Live) メニューオプションが強調表示されている状態でTABを押すと、自動ブートを中断できます。 -
PXE または iPXE インストールの場合、RHCOS ライブインストーラーのブート前に
coreos.instオプションをAPPEND行に追加する必要があります。
以下の表は、ISO および PXE インストールの RHCOS ライブインストーラーの coreos.inst ブートオプションを示しています。
| 引数 | 説明 |
|---|---|
|
| 必須。インストール先のシステムのブロックデバイス。 注記
|
|
| オプション: インストール済みシステムに埋め込む Ignition 設定の URL。URL が指定されていない場合、Ignition 設定は埋め込まれません。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。 |
|
| オプション: インストール時に保存するパーティションのコンマ区切りのラベル。glob 形式のワイルドカードが許可されます。指定したパーティションは存在する必要はありません。 |
|
|
オプション: インストール時に保存するパーティションのコンマ区切りのインデックス。範囲 |
|
|
オプション: |
|
| オプション: 指定した RHCOS イメージをダウンロードし、インストールします。
|
|
| オプション: システムはインストール後に再起動しません。インストールが完了するとプロンプトが表示され、インストール時に生じる内容を検査できます。この引数は実稼働環境では使用できず、デバッグの目的でのみ使用することが意図されています。 |
|
|
オプション: RHCOS イメージがインストールされるプラットフォームの Ignition プラットフォーム ID。デフォルトは |
|
|
オプション: ライブ起動の Ignition 設定の URL。たとえば、これは |
1.14. ブートストラッププロセスの完了まで待機する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform をインストールするには、クラスターノードが RHCOS に起動した後、Ignition 設定ファイルを使用してブートストラッププロセスを初期化します。クラスターが完全にインストールされるまで、このプロセスが完了するまでお待ちください。
前提条件
- クラスターの Ignition 設定ファイルを作成している。
- 適切なネットワーク、DNS、およびロードバランシングのインフラストラクチャーを設定しました。
- インストールプログラムを取得し、クラスターの Ignition 設定ファイルを生成している。
- RHCOS をクラスターマシンにインストールし、OpenShift Container Platform インストールプログラムで生成される Ignition 設定ファイルを指定している。
- お使いのマシンでインターネットに直接アクセスできるか、HTTP または HTTPS プロキシーが利用できる。
手順
ブートストラッププロセスをモニターします。
$ ./openshift-install --dir <installation_directory> wait-for bootstrap-complete \ --log-level=infoここでは、以下のようになります。
<installation_directory>- インストールファイルが格納されているディレクトリーへのパスを指定します。
--log-level=infoインストールの詳細表示を
infoの代わりにwarn、debug、または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 resourcesKubernetes API サーバーでこれがコントロールプレーンマシンにブートストラップされていることを示すシグナルが出されるとコマンドは成功します。
ブートストラッププロセスが完了したら、ブートストラップマシンをロードバランサーから削除します。
重要この時点で、ブートストラップマシンをロードバランサーから削除する必要があります。さらに、ブートストラップマシン自体を削除し、再フォーマットすることができます。
1.15. CLI の使用によるクラスターへのログイン リンクのコピーリンクがクリップボードにコピーされました!
デフォルトのシステムユーザーとしてクラスターにログインするには、kubeconfig ファイルをエクスポートしてください。この設定により、CLI は OpenShift Container Platform のインストール時に作成された特定の API サーバーに対して認証を行い、接続できるようになります。
kubeconfig ファイルはクラスター固有のファイルであり、OpenShift Container Platform のインストール時に作成されます。
前提条件
- OpenShift Container Platform クラスターをデプロイしていること。
-
OpenShift CLI (
oc) がインストールされている。
手順
次のコマンドを実行して、
kubeadmin認証情報をエクスポートします。$ export KUBECONFIG=<installation_directory>/auth/kubeconfigここでは、以下のようになります。
<installation_directory>- インストールファイルが格納されているディレクトリーへのパスを指定します。
次のコマンドを実行し、エクスポートされた設定を使用して
ocコマンドを正常に実行できることを確認します。$ oc whoami出力例
system:admin
1.16. マシンの証明書署名要求の承認 リンクのコピーリンクがクリップボードにコピーされました!
クラスターにマシンを追加するには、各マシン用に生成された証明書署名要求 (CSR) のステータスを確認します。手動承認が必要な場合は、まずクライアントからのリクエストを承認し、次にサーバーからのリクエストを承認してください。
前提条件
- マシンがクラスターに追加されています。
手順
クラスターがマシンを認識していることを確認します。
$ oc get nodes出力例
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出力には作成したすべてのマシンがリスト表示されます。
注記上記の出力には、一部の CSR が承認されるまで、ワーカーノード (ワーカーノードとも呼ばれる) が含まれない場合があります。
保留中の証明書署名要求 (CSR) を確認し、クラスターに追加したそれぞれのマシンのクライアントおよびサーバー要求に
PendingまたはApprovedステータスが表示されていることを確認します。$ oc get csr出力例
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 ...この例では、2 つのマシンがクラスターに参加しています。このリストにはさらに多くの承認された CSR が表示される可能性があります。
追加したマシンの保留中の CSR すべてが
Pendingステータスになった後に CSR が承認されない場合には、クラスターマシンの CSR を承認します。注記CSR のローテーションは自動的に実行されるため、クラスターにマシンを追加後 1 時間以内に CSR を承認してください。1 時間以内に承認しない場合には、証明書のローテーションが行われ、各ノードに 3 つ以上の証明書が存在するようになります。これらの証明書すべてを承認する必要があります。クライアントの CSR が承認された後に、Kubelet は提供証明書のセカンダリー CSR を作成します。これには、手動の承認が必要になります。次に、後続の提供証明書の更新要求は、Kubelet が同じパラメーターを持つ新規証明書を要求する場合に
machine-approverによって自動的に承認されます。注記ベアメタルおよび他の user-provisioned infrastructure などのマシン API ではないプラットフォームで実行されているクラスターの場合、kubelet 提供証明書要求 (CSR) を自動的に承認する方法を実装する必要があります。要求が承認されない場合、API サーバーが kubelet に接続する際に提供証明書が必須であるため、
oc exec、oc rsh、およびoc logsコマンドは正常に実行できません。Kubelet エンドポイントにアクセスする操作には、この証明書の承認が必要です。この方法は新規 CSR の有無を監視し、CSR がsystem:nodeまたはsystem:adminグループのnode-bootstrapperサービスアカウントによって提出されていることを確認し、ノードの ID を確認します。それらを個別に承認するには、それぞれの有効な CSR に以下のコマンドを実行します。
$ oc adm certificate approve <csr_name>ここでは、以下のようになります。
<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注記一部の Operator は、一部の CSR が承認されるまで利用できない可能性があります。
クライアント要求が承認されたら、クラスターに追加した各マシンのサーバー要求を確認する必要があります。
$ oc get csr出力例
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 ...残りの CSR が承認されず、それらが
Pendingステータスにある場合、クラスターマシンの CSR を承認します。それらを個別に承認するには、それぞれの有効な CSR に以下のコマンドを実行します。
$ oc adm certificate approve <csr_name>ここでは、以下のようになります。
<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
すべてのクライアントおよびサーバーの CSR が承認された後に、マシンのステータスが
Readyになります。以下のコマンドを実行して、これを確認します。$ oc get nodes出力例
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注記サーバー CSR の承認後にマシンが
Readyステータスに移行するまでに数分の時間がかかる場合があります。
1.17. Operator の初期設定 リンクのコピーリンクがクリップボードにコピーされました!
すべての Operator が利用可能になるようにするには、制御プレーンの初期化直後に必要な Operator を設定してください。この設定は、インストール後のクラスター環境を安定させるために不可欠です。
前提条件
- コントロールプレーンが初期化されています。
手順
クラスターコンポーネントがオンラインになることを確認します。
$ watch -n5 oc get clusteroperators出力例
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- 利用不可の Operator を設定します。
1.17.1. デフォルトのソフトウェアカタログソースの無効化 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform のインストール時に、Red Hat およびコミュニティープロジェクトが提供するコンテンツをソースとする Operator カタログが、ソフトウェアカタログ用にデフォルトで設定されます。ネットワークが制限された環境では、クラスター管理者としてデフォルトのカタログを無効にする必要があります。
手順
disableAllDefaultSources: trueをOperatorHubオブジェクトに追加して、デフォルトカタログのソースを無効にします。$ oc patch OperatorHub cluster --type json \ -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'
または、Web コンソールを使用してカタログソースを管理できます。Administration → Cluster Settings → Configuration → OperatorHub ページから、Sources タブをクリックして、個別のソースを作成、更新、削除、無効化、有効化できます。
1.17.2. インストール時に削除されたイメージレジストリー リンクのコピーリンクがクリップボードにコピーされました!
共有可能なオブジェクトストレージを提供しないプラットフォームでは、OpenShift Image Registry Operator 自体が Removed としてブートストラップされます。これにより、openshift-installer がそれらのプラットフォームタイプでのインストールを完了できます。
インストール後に、Image Registry Operator 設定を編集して managementState を Removed から Managed に切り替える必要があります。これが完了したら、ストレージを設定する必要があります。
1.17.3. イメージレジストリーストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
Image Registry Operator は、デフォルトストレージを提供しないプラットフォームでは最初は利用できません。インストール後に、レジストリー Operator を使用できるようにレジストリーをストレージを使用するように設定する必要があります。
本番環境のクラスターに必要な永続ボリュームを設定します。該当する場合、非本番環境クラスターのストレージ場所として空のディレクトリーを設定できます。
アップグレード時に 再作成 ロールアウトストラテジーを使用することで、イメージレジストリーでブロックストレージタイプを使用できるようにすることもできます。
1.17.3.1. ベアメタルおよび他の手動インストールの場合のレジストリーストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
レジストリーが完全に動作するようにするには、クラスターのインストール直後にレジストリーがストレージを使用するように設定してください。この設定は、レジストリーがデータを保存できるようにするために必須の手順です。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 - ベアメタルなどの、手動でプロビジョニングされた Red Hat Enterprise Linux CoreOS (RHCOS) ノードを使用するクラスターがある。
Red Hat OpenShift Data Foundation などのクラスターのプロビジョニングされた永続ストレージがある。
重要OpenShift Container Platform は、1 つのレプリカのみが存在する場合にイメージレジストリーストレージの
ReadWriteOnceアクセスをサポートします。ReadWriteOnceアクセスでは、レジストリーがRecreateロールアウト戦略を使用する必要もあります。2 つ以上のレプリカで高可用性をサポートするイメージレジストリーをデプロイするには、ReadWriteManyアクセスが必要です。- 最低でも 100Gi の容量を持つシステムが必要です。
手順
レジストリーをストレージを使用できるように設定するには、
configs.imageregistry/clusterリソースのspec.storage.pvcを変更します。注記共有ストレージを使用する場合は、外部からアクセスを防ぐためにセキュリティー設定を確認します。
レジストリー Pod がないことを確認します。
$ oc get pod -n openshift-image-registry -l docker-registry=default出力例
No resources found in openshift-image-registry namespace注記出力にレジストリー Pod がある場合は、この手順を続行する必要はありません。
レジストリー設定を確認します。
$ oc edit configs.imageregistry.operator.openshift.io出力例
storage: pvc: claim:claimフィールドを空のままにし、image-registry-storagePVC の自動作成を可能にします。clusteroperatorステータスを確認します。$ oc get clusteroperator image-registry出力例
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE image-registry 4.20 True False False 6h50mイメージのビルドおよびプッシュを有効にするためにレジストリーが managed に設定されていることを確認します。
以下を実行します。
$ oc edit configs.imageregistry/cluster次に、行を変更します。
managementState: Removed次のように変更してください。
managementState: Managed
1.17.3.2. 実稼働以外のクラスターでのイメージレジストリーのストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
Image Registry Operator のストレージを設定する必要があります。実稼働用以外のクラスターの場合、イメージレジストリーは空のディレクトリーに設定することができます。これを実行する場合、レジストリーを再起動するとすべてのイメージが失われます。
手順
イメージレジストリーストレージを空のディレクトリーに設定するには、以下を実行します。
$ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"storage":{"emptyDir":{}}}}'警告このオプションは、非本番環境のクラスターでのみ設定してください。
Image Registry Operator がそのコンポーネントを初期化する前にこのコマンドを実行する場合、
oc patchコマンドは以下のエラーを出して失敗します。Error from server (NotFound): configs.imageregistry.operator.openshift.io "cluster" not found数分待機した後に、このコマンドを再び実行します。
1.17.3.3. ベアメタルの場合のブロックレジストリーストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
イメージレジストリーがクラスター管理者によるアップグレード時にブロックストレージタイプを使用できるようにするには、Recreate ロールアウトストラテジーを使用できます。
ブロックストレージボリューム (または永続ボリューム) はサポートされますが、実稼働クラスターでのイメージレジストリーと併用することは推奨されません。レジストリーに複数のレプリカを含めることができないため、ブロックストレージにレジストリーが設定されているインストールに高可用性はありません。
イメージレジストリーでブロックストレージボリュームを使用することを選択した場合は、ファイルシステムの persistent volume claim (PVC) を使用する必要があります。
手順
次のコマンドを入力してイメージレジストリーストレージをブロックストレージタイプとして設定し、レジストリーにパッチを適用して
Recreateロールアウトストラテジーを使用し、1 つの (1) レプリカのみで実行されるようにします。$ oc patch config.imageregistry.operator.openshift.io/cluster --type=merge -p '{"spec":{"rolloutStrategy":"Recreate","replicas":1}}'ブロックストレージデバイスの PV をプロビジョニングし、そのボリュームの PVC を作成します。要求されたブロックボリュームは ReadWriteOnce (RWO) アクセスモードを使用します。
以下の内容で
pvc.yamlファイルを作成して VMware vSpherePersistentVolumeClaimオブジェクトを定義します。kind: PersistentVolumeClaim apiVersion: v1 metadata: name: image-registry-storage namespace: openshift-image-registry spec: accessModes: - ReadWriteOnce resources: requests: storage: 100Giここでは、以下のようになります。
metadata.name-
PersistentVolumeClaimオブジェクトを表す一意の名前を指定します。 metadata.namespace-
PersistentVolumeClaimオブジェクトのnamespace(openshift-image-registry) を指定します。 仕様アクセスモード-
永続ボリューム要求のアクセスモードを指定します。
ReadWriteOnceでは、ボリュームは単一ノードによって読み取り/書き込みパーミッションでマウントできます。 仕様.リソース.リクエスト.ストレージ- 永続ボリューム要求のサイズ。
次のコマンドを入力して、ファイルから
PersistentVolumeClaimオブジェクトを作成します。$ oc create -f pvc.yaml -n openshift-image-registry
次のコマンドを入力して、正しい PVC を参照するようにレジストリー設定を編集します。
$ oc edit config.imageregistry.operator.openshift.io -o yaml出力例
storage: pvc: claim:カスタム PVC を作成することにより、
image-registry-storagePVC のデフォルトの自動作成のclaimフィールドを空のままにできます。
1.18. user-provisioned infrastructure でのインストールの完了 リンクのコピーリンクがクリップボードにコピーされました!
user-provisioned infrastructure へのインストールを完了するには、Operator の設定後、クラスターデプロイメントを完成させます。これにより、お客様が提供するインフラストラクチャー上でクラスターが完全に動作することが保証されます。
前提条件
- コントロールプレーンが初期化されています。
- Operator の初期設定を完了済みです。
手順
以下のコマンドを使用して、すべてのクラスターコンポーネントがオンラインであることを確認します。
$ watch -n5 oc get clusteroperators出力例
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 37muser 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 32muser 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あるいは、以下のコマンドを使用すると、すべてのクラスターが利用可能な場合に通知されます。このコマンドは、認証情報も取得して表示します。
$ ./openshift-install --dir <installation_directory> wait-for install-completeここでは、以下のようになります。
<installation_directory>インストールファイルを保存したディレクトリーへのパスを指定します。
出力例
INFO Waiting up to 30m0s for the cluster to initialize...Cluster Version Operator が Kubernetes API サーバーから OpenShift Container Platform クラスターのデプロイを終了するとコマンドは成功します。
重要-
インストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の
node-bootstrapper証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。 - 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
-
インストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の
Kubernetes API サーバーが Pod と通信していることを確認します。
すべての Pod のリストを表示するには、以下のコマンドを使用します。
$ oc get pods --all-namespaces出力例
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以下のコマンドを使用して、直前のコマンドの出力にリスト表示される Pod のログを表示します。
$ oc logs <pod_name> -n <namespace>ここでは、以下のようになります。
<namespace>前のコマンドの出力に示されているように、Pod 名と名前空間を指定します。
Pod のログが表示される場合、Kubernetes API サーバーはクラスターマシンと通信できます。
FCP (Fibre Channel Protocol) を使用したインストールでは、マルチパスを有効にするために追加の手順が必要です。インストール時にマルチパスを有効にしないでください。
詳細は、インストール後のマシン設定タスク ドキュメントで、「RHCOS でのカーネル引数を使用したマルチパスの有効化」を参照してください。
1.19. OpenShift Container Platform の Telemetry アクセス リンクのコピーリンクがクリップボードにコピーされました!
クラスターの状態やアップデートの成功に関するメトリクスを提供するため、Telemetry サービスにはインターネットアクセスが必要です。接続されると、このサービスはデフォルトで自動的に実行され、クラスターを OpenShift Cluster Manager に登録します。
テレメトリーによって自動的に、または OpenShift Cluster Manager を使用して手動で維持される OpenShift Cluster Manager インベントリーが正しいことを確認したら、subscription watch を使用して、アカウントまたはマルチクラスターレベルで OpenShift Container Platform のサブスクリプションを追跡します。サブスクリプション監視の詳細は、関連情報 セクションの Red Hat のサブスクリプションサービスによって収集および使用されるデータを参照してください。
1.20. 次のステップ リンクのコピーリンクがクリップボードにコピーされました!
- クラスターをカスタマイズ します。
- 必要に応じて、リモートヘルスレポート を作成できます。
- レジストリーをセットアップし、レジストリーストレージを設定 します。