MicroShift をインストールする準備
MicroShift のインストールを計画し、重要な設定について学習する
概要
第1章 MicroShift をインストールする準備 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux (RHEL) のインストールタイプと MicroShift 設定を検討し、Red Hat Device Edge のプランニングを行います。
1.1. MicroShift をインストールするためのシステム要件 リンクのコピーリンクがクリップボードにコピーされました!
MicroShift をインストールする前に、次の条件を満たす必要があります。
- Red Hat Enterprise Linux (RHEL) の互換性のあるバージョン。詳細は、互換性テーブル を参照してください。
- AArch64 または x86_64 システムアーキテクチャー。
- 2 CPU コア。
- 2 GB RAMネットワークからのインストール (UEFI HTTP または PXE ブート) には、RHEL 用に 3 GB の RAM が必要です。
- 10 GB のストレージ。
- Red Hat アカウントに有効な MicroShift サブスクリプションがある。サブスクリプションをお持ちでない場合は、営業担当者にお問い合わせください。
- ワークロードに永続ボリューム (PV) が必要な場合は、ワークロードに十分な空き容量を持つ論理ボリュームマネージャー (LVM) ボリュームグループ (VG) がある。
これらの要件は、MicroShift および Red Hat Enterprise Linux (RHEL) の最小システム要件です。実行予定のワークロードのシステム要件を追加します。
たとえば、IoT ゲートウェイソリューションが 4 GB の RAM を必要とする場合、システムには Red Hat Enterprise Linux (RHEL) と MicroShift 用に少なくとも 2 GB が必要で、ワークロード用にさらに 4 GB が必要です。合計で 6 GB の RAM が必要になります。
リモートロケーションに物理デバイスをデプロイする場合は、今後のニーズに備えて余裕を持たせることを推奨します。必要な RAM が不明な場合で、予算的に可能な場合は、デバイスがサポートできる最大 RAM 容量を使用します。
それに応じて管理できるように、システムへの安全なアクセスを設定するようにしてください。詳細は、2 台のシステム間で OpenSSH を使用した安全な通信の使用 を参照してください。
1.2. 互換性に関する表 リンクのコピーリンクがクリップボードにコピーされました!
次の互換性に関する表を参照して、サポート対象のバージョンの RHEL for Edge と使用する予定の MicroShift バージョンの組み合わせを検討してください。
Red Hat Device Edge リリースの互換性に関する表
Red Hat Enterprise Linux (RHEL) と MicroShift は、device-edge コンピューティング向けの単一のソリューションとして連携します。各コンポーネントを個別に更新できますが、製品バージョンの互換性を確保する必要があります。次の表に示すように、Red Hat Device Edge のサポート対象設定では、それぞれ検証済みのリリースが使用されます。
| RHEL バージョン | MicroShift バージョン | サポートされている MicroShift バージョン → バージョンの更新 |
|---|---|---|
| 9.4 | 4.18 | 4.18.0 → 4.18.z |
| 9.4 | 4.17 | 4.17.1 → 4.17.z, 4.17 → 4.18 |
| 9.4 | 4.16 | 4.16.0 → 4.16.z, 4.16 → 4.17, 4.16 → 4.18 |
| 9.2、9.3 | 4.15 | RHEL 9.4 の 4.15.0 → 4.15.z, 4.15 → 4.16 |
| 9.2、9.3 | 4.14 | RHEL 9.4 の 4.14.0 → 4.14.z, 4.14 → 4.15, 4.14 → 4.16 |
1.3. MicroShift インストールツール リンクのコピーリンクがクリップボードにコピーされました!
MicroShift を使用するには、RHEL タイプ (ベアメタル上に、またはプロビジョンする仮想マシンとして) をすでに持っている、またはインストールする予定である必要があります。各ユースケースの詳細は異なりますが、Red Hat Device Edge の各インストールでは、RHEL ツールと OpenShift CLI (oc) が使用されます。
RPM を使用して、既存の RHEL マシンに MicroShift をインストールできます。詳細は、RPM パッケージからのインストール を参照してください。イメージベースの RHEL システムまたは仮想マシンを同時にインストールする場合を除き、他のツールは必要ありません。
1.4. RHEL インストールタイプ リンクのコピーリンクがクリップボードにコピーされました!
クラスターをどこで実行するか、およびアプリケーションが何を実行するかにより、選択する RHEL インストールタイプが決まります。インストールターゲットごとに、オペレーティングシステムと MicroShift の両方を設定する必要があります。アプリケーションストレージのニーズ、クラスターアクセスまたはアプリケーションアクセスに使用するネットワーク、認証とセキュリティーの要件を考慮してください。
それぞれのサポート範囲や使用されるツールなど、RHEL インストールタイプ間の違いを理解する必要があります。
1.4.1. RPM またはパッケージベースのインストールを使用する リンクのコピーリンクがクリップボードにコピーされました!
このシンプルなインストールタイプでは、基本的なコマンドを使用して、既存の RHEL マシンに MicroShift をインストールします。詳細は、RPM パッケージからのインストール を参照してください。RHEL システムまたは仮想マシンを同時にインストールする場合を除き、他のツールは必要ありません。
1.4.2. RHEL イメージベースのインストール リンクのコピーリンクがクリップボードにコピーされました!
イメージベースのインストールタイプでは、エッジデプロイメントに最適化された、rpm-ostree ベースのイミュータブルなバージョンの RHEL が作成されます。
- RHEL for Edge は、実稼働環境のエッジにデプロイできます。このインストールタイプは、ネットワーク接続が存在する場合でも、完全にオフラインの場合でも、ローカル環境に応じて使用できます。
- Image Mode for RHEL は、テクノロジープレビューのサポート範囲内で利用できます。このイメージベースのインストールタイプは、OCI コンテナーイメージと起動可能なコンテナーに基づいています。bootc テクノロジーの概要は、bootc: 起動可能なコンテナーのスタートガイド を参照してください。
イメージベースのインストールを選択する場合は、インストールターゲットの接続状態 (オフライン状態またはネットワーク接続状態)、システムイメージをビルドする場所、Red Hat Device Edge のロード方法を考慮してください。一般的なガイダンスとして次のシナリオを使用できます。
- 完全に自己完結型の RHEL for Edge または非接続環境外の Image Mode for RHEL ISO をビルドし、その ISO をエッジデバイスにローカルにインストールする場合、RPM リポジトリーまたはミラーレジストリーは必要ない可能性があります。
- コンテナーイメージを含まず、RPM のみで構成される ISO を非接続環境外にビルドする場合は、非接続環境内にミラーレジストリーが必要です。ミラーレジストリーは、コンテナーイメージをプルするために使用します。
- 非接続環境内にイメージをビルドする場合、またはインストールにパッケージモードを使用する場合は、ミラーレジストリーとローカル RPM ミラーリポジトリーの両方が必要です。高度なユースケースでは、RHEL reposync ユーティリティーまたは Red Hat Satellite のいずれかを使用できます。詳細は、How to create a local mirror of the latest update for Red Hat Enterprise Linux 8 and 9 without using Satellite Server および Red Hat Satellite を参照してください。
1.5. RHEL インストールツールと概念 リンクのコピーリンクがクリップボードにコピーされました!
次の RHEL ツールと概念を理解する必要があります。
- 特定のオペレーティングシステムのインストール中に使用する設定と手順が含まれるキックスタートファイル。
RHEL Image Builder は、すぐにデプロイメントできるカスタマイズされたシステムイメージを作成するためのツールです。RHEL Image Builder は、ISO を作成するために作成したブループリントを使用します。RHEL Image Builder は RHEL 仮想マシンにインストールするのが最適で、
composer-cliツールを使用してビルドされます。これらのツールを設定し、ワークフローを確認するには、次の RHEL ドキュメントリンクを参照してください。- ブループリントファイルは、RHEL Image Builder に対して ISO に含める項目を指定します。イメージブループリントは、イメージのカスタマイズの永続的な定義を提供します。1 つのブループリントから複数のビルドを作成できます。要件の変更に応じて、既存のブループリントを編集して新しい ISO を構築することもできます。詳細は、RHEL ドキュメントの コマンドラインインターフェイスを使用したブループリントの作成 を参照してください。
ISO。ISO は、MicroShift が実行される起動可能なオペレーティングシステムです。
1.6. Red Hat Device Edge のインストール手順 リンクのコピーリンクがクリップボードにコピーされました!
ほとんどのインストールタイプでは、次の手順も実行する必要があります。
- Red Hat Hybrid Cloud Console から プルシークレット をダウンロードします。
- MicroShift YAML 設定ファイルにパラメーターと値を追加して、MicroShift を設定する準備をします。詳細は、MicroShift 設定ファイルの使用 を参照してください。
MicroShift クラスターで使用しているアプリケーションとタスクのストレージを設定する必要があるかどうかを判断します。もしくは、MicroShift ストレージプラグインを完全に無効にします。
- RHEL でボリュームグループと永続ボリュームを作成する方法の詳細は、論理ボリューム管理の概要 を参照してください。
- MicroShift プラグインの詳細は、LVMS プラグインを使用した動的ストレージ を参照してください。
MicroShift クラスターとアプリケーションで予想されるアクセスニーズに応じて、ネットワーク設定を行います。シングルスタックネットワークとデュアルスタックネットワークのどちらを使用するか、ファイアウォールを設定するか、ルートを設定するかを検討します。
- MicroShift のネットワークオプションの詳細は、ネットワーク設定について を参照してください。
-
クラスターにアクセスするには、OpenShift CLI (
oc) をインストールします。詳細は OpenShift CLI スタートガイド を参照してください。
Red Hat Enterprise Linux for Real Time (リアルタイムカーネル) は、予測可能なレイテンシーが重要な場合に使用できます。低レイテンシーのアプリケーションでは、ワークロードのパーティショニングも必要です。低レイテンシーとリアルタイムカーネルの詳細は、低レイテンシーの設定 を参照してください。
第2章 MicroShift での FIPS モードの使用 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux (RHEL) 9 への MicroShift の RPM ベースのインストールで FIPS モードを使用できます。
- MicroShift コンテナーで FIPS モードを有効にするには、マシンが起動する前に、ワーカーマシンカーネルが FIPS モードで実行できるようにする必要があります。
- Red Hat Enterprise Linux for Edge (RHEL for Edge) イメージでの FIPS の使用はサポートされていません。
- FIPS with Image Mode for RHEL の使用はサポートされていません。
2.1. RHEL RPM ベースのインストールでの FIPS モード リンクのコピーリンクがクリップボードにコピーされました!
MicroShift で FIPS を使用するには、Red Hat Enterprise Linux (RHEL) インストールで暗号化モジュールのセルフチェックを有効にする必要があります。ホストオペレーティングシステムが FIPS モジュールで起動するように設定されると、MicroShift コンテナーは FIPS モードで実行できるように自動的に有効になります。
- RHEL が FIPS モードで起動されると、MicroShift コアコンポーネントは、x86_64 アーキテクチャーのみでの FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用します。
ワーカーマシンとして使用する予定のマシンに RHEL 9 をインストールする場合は、FIPS モードを有効にする必要があります。
重要クラスターが使用するオペレーティングシステムの初回起動時の前に FIPS を有効にする必要があるため、クラスターのデプロイ後に FIPS を有効にすることはできません。
- MicroShift は、FIPS 互換の Golang コンパイラーを使用します。
- FIPS は CRI-O コンテナーランタイムでサポートされています。
2.1.1. 制限 リンクのコピーリンクがクリップボードにコピーされました!
- TLS 実装 FIPS サポートは完全ではありません。
- FIPS 実装は、ハッシュ関数を計算し、そのハッシュに基づくキーを検証する単一の機能を提供しません。この制限は、今後の MicroShift リリースでの改善のために引き続き評価されます。
第3章 Greenboot ヘルスチェックフレームワーク リンクのコピーリンクがクリップボードにコピーされました!
Greenboot は、rpm-ostree システム (Red Hat Enterprise Linux for Edge (RHEL for Edge) など) の systemd サービスの汎用ヘルスチェックフレームワークです。このフレームワークは、microshift-greenboot および greenboot-default-health-checks RPM パッケージとともに MicroShift インストールに組み込まれています。
Greenboot ヘルスチェックはさまざまなタイミングで実行され、システムの健全性を評価し、ソフトウェアの問題が発生した場合に rpm-ostree システムを最後の正常な状態に自動的にロールバックします。次に例を示します。
- デフォルトのヘルスチェックスクリプトは、システムが起動するたびに実行されます。
- デフォルトのヘルスチェックに加えて、システムが起動するたびに実行されるようにアプリケーションヘルスチェックスクリプトを作成、インストール、設定することもできます。
- Greenboot を使用すると、更新中にエッジデバイスからロックアウトされるリスクを軽減し、更新が失敗した場合にサービスが大幅に中断されるのを防ぐことができます。
-
障害が検出されると、システムは
rpm-ostreeロールバック機能を使用して、最後に認識された動作設定で起動します。この機能は、直接的な保守機能が制限されているか存在しないエッジデバイスに特に役立つ自動化機能です。
MicroShift アプリケーションのヘルスチェックスクリプトは、microshift-greenboot RPM に含まれています。greenboot-default-health-checks RPM には、DNS および ostree サービスにアクセスできることを確認するヘルスチェックスクリプトが含まれています。実行しているワークロード用に独自のヘルスチェックスクリプトを作成できます。たとえば、アプリケーションが開始したことを確認するものを作成できます。
3.1. greenboot がディレクトリーを使用してスクリプトを実行する方法 リンクのコピーリンクがクリップボードにコピーされました!
ヘルスチェックスクリプトは、4 つの /etc/greenboot ディレクトリーから実行します。これらのスクリプトはアルファベット順に実行します。ワークロードのスクリプトを設定するときは、このことに留意してください。
システムが起動すると、greenboot は、required.d および wanted.d ディレクトリーでスクリプトを実行します。これらのスクリプトの結果に応じて、greenboot は起動を続行するか、次のようにロールバックを試みます。
-
システムが想定どおりの場合:
required.dディレクトリー内のすべてのスクリプトが正常に実行されると、greenboot は/etc/greenboot/green.dディレクトリーにあるすべてのスクリプトを実行します。 -
システムに問題が発生している場合:
required.dディレクトリー内のいずれかのスクリプトが失敗した場合、greenboot はred.dディレクトリー内に存在するプレロールバックスクリプトを実行してから、システムを再起動します。
greenboot は、スクリプトとヘルスチェックの出力をシステムログにリダイレクトします。ログインすると、毎日のメッセージでシステム全体の状態が出力されます。
3.1.1. Greenboot ディレクトリーの詳細 リンクのコピーリンクがクリップボードにコピーされました!
スクリプトからゼロ以外の終了コードを返すことは、スクリプトが失敗したことを意味します。Greenboot は、以前のバージョンへのロールバックを試行する前に、システムを数回再起動してスクリプトを再試行します。
/etc/greenboot/check/required.dには、失敗してはならないヘルスチェックが含まれています。-
スクリプトが失敗すると、greenboot はデフォルトでスクリプトを 3 回再試行します。
/etc/greenboot/greenboot.confファイルで再試行回数を設定するには、GREENBOOT_MAX_BOOTSパラメーターを目的の再試行回数に設定します。 - すべての再試行が失敗すると、ロールバックが利用可能であれば greenboot が自動的に開始します。ロールバックが利用できない場合、システムログ出力は手動介入が必要であることを示します。
-
MicroShift の
40_microshift_running_check.shヘルスチェックスクリプトは、このディレクトリーにインストールされます。
-
スクリプトが失敗すると、greenboot はデフォルトでスクリプトを 3 回再試行します。
/etc/greenboot/check/wanted.dには、システムをロールバックさせずに失敗できるヘルススクリプトが含まれています。- これらのスクリプトのいずれかが失敗すると、greenboot は失敗を記録しますが、ロールバックを開始しません。
-
/etc/greenboot/green.dには、greenboot が起動の成功を宣言した後に実行されるスクリプトが含まれています。 -
/etc/greenboot/red.dには、40_microshift_pre_rollback.shプレロールバックスクリプトなど、greenboot が起動の失敗を宣言した後に実行するスクリプトが含まれています。このスクリプトは、システムロールバックの直前に実行されます。このスクリプトは、MicroShift Pod と OVN-Kubernetes のクリーンアップを実行して、システムが以前のバージョンにロールバックされた後の潜在的な競合を回避します。
/etc/greenboot/greenboot.conf ファイル内の環境変数の値をカスタマイズすると、greenboot RPM パッケージが更新またはダウングレードされたときにこれらの変更が失われる可能性があります。
-
MicroShift を使用してシステムイメージを構築するときにカスタマイズを保持するには、
greenboot.confファイルをブループリントに追加します。 -
RPM インストールを使用するときにカスタマイズを保持するには、MicroShift および greenboot RPM をインストールした後、
greenboot.confファイルに変更を適用します。
3.2. MicroShift ヘルスチェックスクリプト リンクのコピーリンクがクリップボードにコピーされました!
40_microshift_running_check.sh ヘルスチェックスクリプトは、コア MicroShift サービスの検証のみを実行します。カスタマイズしたワークロードのヘルスチェックスクリプトを greenboot ディレクトリーにインストールして、システムの更新後にアプリケーションが正常に動作するようにします。スクリプトはアルファベット順に実行されます。
次の表に、MicroShift ヘルスチェックを示します。
| 検証 | Pass | Fail |
|---|---|---|
|
スクリプトが | 次の手順 |
|
|
| 次の手順 |
|
|
| 次の手順 |
|
| Kubernetes API ヘルスエンドポイントが機能し、トラフィックを受信するまで待つ | 次の手順 |
|
| 任意の Pod が開始するのを待つ | 次の手順 |
|
| コア namespace ごとに、イメージがプルされるのを待つ | 次の手順 |
|
| コア namespace ごとに、Pod の準備が整うまで待つ | 次の手順 |
|
| コア namespace ごとに、Pod が再起動していないかどうかを確認する |
|
|
3.2.1. 検証待機期間 リンクのコピーリンクがクリップボードにコピーされました!
各検証の待機期間はデフォルトで 10 分です。待機期間の後、検証が成功しなかった場合は、失敗が宣言されます。この待機期間は、検証ループで起動するたびに基本待機期間だけ増加します。
-
/etc/greenboot/greenboot.conf設定ファイルでMICROSHIFT_WAIT_TIMEOUT_SEC環境変数を設定することにより、基本時間の待機期間をオーバーライドできます。たとえば、MICROSHIFT_WAIT_TIMEOUT_SEC=300のように値を 300 秒にリセットすることで、待機時間を 5 分に変更できます。
3.3. systemd ジャーナルサービスデータの永続性の有効化 リンクのコピーリンクがクリップボードにコピーされました!
systemd ジャーナルサービスのデフォルト設定では、揮発性の /run/log/journal ディレクトリーにデータが保存されます。次のシステム起動および再起動までのシステムログを表示するには、ログの永続性を有効にし、最大ジャーナルデータサイズの制限を設定する必要があります。
手順
次のコマンドを実行してディレクトリーを作成します。
sudo mkdir -p /etc/systemd/journald.conf.d
$ sudo mkdir -p /etc/systemd/journald.conf.dCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、設定ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - サイズ要件に合わせて設定ファイルの値を編集します。
3.4. 更新とサードパーティーのワークロード リンクのコピーリンクがクリップボードにコピーされました!
ヘルスチェックは、更新後に特に役立ちます。Greenboot ヘルスチェックの出力を調べて、更新が有効であると宣言されたかどうかを判断できます。このヘルスチェックは、システムが正常に動作しているかどうかを判断するのに役立ちます。
更新用のヘルスチェックスクリプトは /etc/greenboot/check/required.d ディレクトリーにインストールされ、システムの起動時に自動的に実行します。ゼロ以外のステータスでスクリプトを終了すると、システムの起動が失敗したと宣言されます。
サードパーティーのワークロードを開始する前に、更新が有効であると宣言されるまで待ちます。ワークロードの開始後にロールバックを実行すると、データが失われる可能性があります。一部のサードパーティーのワークロードは、更新が完了する前にデバイスでデータを作成または更新します。ロールバックすると、ファイルシステムは更新前の状態に戻ります。
3.5. 更新結果の確認 リンクのコピーリンクがクリップボードにコピーされました!
起動に成功すると、Greenboot は GRUB で変数 boot_success= を 1 に設定します。次の手順を使用して、更新後のシステムヘルスチェックの全体的なステータスをシステムログで表示できます。
手順
システムヘルスチェックの全体的なステータスにアクセスするには、次のコマンドを実行します。
sudo grub2-editenv - list | grep ^boot_success
$ sudo grub2-editenv - list | grep ^boot_successCopy to Clipboard Copied! Toggle word wrap Toggle overflow
システムが正常に起動した場合の出力例
boot_success=1
boot_success=1
3.6. システムログのヘルスチェック出力へのアクセス リンクのコピーリンクがクリップボードにコピーされました!
次の手順を使用して、システムログのヘルスチェックの出力に手動でアクセスできます。
手順
ヘルスチェックの結果にアクセスするには、次のコマンドを実行します。
sudo journalctl -o cat -u greenboot-healthcheck.service
$ sudo journalctl -o cat -u greenboot-healthcheck.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
失敗したヘルスチェックの出力例
3.7. システムログのプレロールバックヘルスチェック出力へのアクセス リンクのコピーリンクがクリップボードにコピーされました!
システムログのヘルスチェックスクリプトの出力にアクセスできます。たとえば、次の手順でプレロールバックスクリプトの結果を確認します。
手順
プレロールバックスクリプトの結果にアクセスするには、次のコマンドを実行します。
sudo journalctl -o cat -u redboot-task-runner.service
$ sudo journalctl -o cat -u redboot-task-runner.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
プレロールバックスクリプトの出力例
3.8. ヘルスチェックスクリプトを使用した更新の確認 リンクのコピーリンクがクリップボードにコピーされました!
次の手順に従って、更新後にシステムログ内の Greenboot ヘルスチェックスクリプトの出力にアクセスします。
手順
更新チェックの結果にアクセスするには、次のコマンドを実行します。
sudo grub2-editenv - list | grep ^boot_success
$ sudo grub2-editenv - list | grep ^boot_successCopy to Clipboard Copied! Toggle word wrap Toggle overflow
更新が成功した場合の出力例
boot_success=1
boot_success=1
コマンドが boot_success=0 を返す場合は、Greenboot ヘルスチェックがまだ実行しているか、更新が失敗しています。