第6章 ブートイメージ管理
サポートされているプラットフォームの場合、Machine Config Operator (MCO) は各ノードのブートイメージを管理および更新し、ブートイメージの Red Hat Enterprise Linux CoreOS(RHCOS) バージョンが、クラスターに適した Red Hat Enterprise Linux CoreOS(RHCOS) バージョンと一致するようにします。
ブートイメージ管理が利用可能なプラットフォームを以下の表に示します。
| プラットフォーム | 作業機械セット | コントロールプレーンマシンセット |
|---|---|---|
| Google Cloud | デフォルトでは有効です。 | デフォルトでは無効になっています。 |
| Amazon Web Services (AWS) | デフォルトでは有効です。 | デフォルトでは無効になっています。 |
| Microsoft Azure | デフォルトでは無効になっています。 | デフォルトでは無効になっています。 |
| VMware vSphere | デフォルトでは無効になっています。 | サポート対象外 |
その他のすべてのプラットフォームでは、MCO はクラスターの更新ごとにブートイメージを更新しません。
コントロールプレーンノードのブートイメージ管理は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
6.1. ブートイメージ管理について リンクのコピーリンクがクリップボードにコピーされました!
ブートイメージ管理が有効になっている場合、Machine Config Operator (MCO) は、コントロールプレーンまたはワーカーノードのマシンセット内の Red Hat Enterprise Linux CoreOS(RHCOS) バージョンのブートイメージを管理および更新します。これは、クラスターを更新するたびに、MCO がブートイメージを更新することを意味します。ブートイメージ管理が有効になっていない場合、クラスターが元々古いバージョンの OpenShift Container Platform で作成されていた場合、クラスターがより新しいバージョンの OpenShift Container Platform であっても、MCO が新しいノードを作成するために使用するブートイメージは、古いバージョンの Red Hat Enterprise Linux CoreOS(RHCOS) になります。
機能の有効化後に作成された新しいノードは、更新されたブートイメージを使用します。この機能は既存のノードには影響しません。
ブートイメージ管理が利用可能なプラットフォームを以下の表に示します。
| プラットフォーム | 作業機械セット | コントロールプレーンマシンセット |
|---|---|---|
| Google Cloud | デフォルトでは有効です。 | デフォルトでは無効になっています。 |
| Amazon Web Services (AWS) | デフォルトでは有効です。 | デフォルトでは無効になっています。 |
| Microsoft Azure | デフォルトでは無効になっています。 | デフォルトでは無効になっています。 |
| VMware vSphere | デフォルトでは無効になっています。 | サポート対象外 |
その他のすべてのプラットフォームでは、MCO はクラスターの更新ごとにブートイメージを更新しません。
たとえば、この機能が無効になっている場合、クラスターが元々 OpenShift Container Platform 4.16 で作成されたものであれば、MCO が新しいノードを作成するために使用するブートイメージは、クラスターにインストールされた RHCOS バージョンと同じものになります。たとえクラスターが現在、より新しい OpenShift Container Platform バージョンを使用している場合でも同様です。
古いブートイメージを使用すると、次のような問題が発生する可能性があります。
- ノードの起動に余分に時間がかかる
- 証明書の有効期限の問題が発生する
- バージョンスキューの問題が発生する
ブートイメージ管理機能は、必要に応じて無効にできます。この機能を無効にすると、ブートイメージのバージョンはクラスターに合わせて更新されなくなります。たとえば、変更したくないカスタムブートイメージを使用するために、ブートイメージ管理機能を無効にすることができます。この機能を無効にする方法は、「ブートイメージ管理の無効化」を参照してください。この機能を無効にした場合は、いつでも再有効化できます。詳細は、「ブートイメージ管理の有効化」を参照してください。
機能を無効化した後、または再有効化した後のクラスターの動作は、次のシナリオを含め、変更を行ったタイミングによって異なります。
新しい OpenShift Container Platform バージョンに更新する前にこの機能を無効にすると、次のようになります。
- マシンセットで使用されるブートイメージのバージョンは、機能が無効にされたときと同じ OpenShift Container Platform バージョンのままになります。
- ノードをスケールアップすると、新しいノードは同じ OpenShift Container Platform バージョンを使用します。
新しい OpenShift Container Platform バージョンに更新した後にこの機能を無効にすると、次のようになります。
- マシンセットで使用されるブートイメージバージョンは、更新された OpenShift Container Platform バージョンと一致するように更新されます。
- ノードをスケールアップすると、新しいノードは更新された OpenShift Container Platform バージョンを使用します。
- 新しい OpenShift Container Platform バージョンに更新すると、マシンセット内のブートイメージのバージョンは、現在のバージョンのままとなり、クラスターとともに更新されません。
機能を無効にした後に有効にすると、次のようになります。
- マシンセットで使用されるブートイメージバージョンが異なる場合は、現在の OpenShift Container Platform バージョンに更新されます。
- ノードをスケールアップすると、新しいノードはクラスター内の現在の OpenShift Container Platform バージョンを使用します。
ブートイメージはノードがスケールアップされるときにのみ使用されるため、この機能は既存のノードには影響しません。
クラスターで使用されている現在の Red Hat Enterprise Linux CoreOS (RHCOS) ブートイメージのバージョンを確認するには、そのノード上の /sysroot/.coreos-aleph-version.json ファイルを参照してください。
古いブートイメージを使用した coreos-aleph-version.json ファイルの例
{
# ...
"ref": "docker://ostree-image-signed:oci-archive:/rhcos-418.94.202511191518-0-ostree.x86_64.ociarchive",
"version": "418.94.202511191518-0"
}
各項目の説明:
<version>- Red Hat Enterprise Linux CoreOS (RHCOS) のブートイメージのバージョンを指定します。この例では、クラスターの現在のバージョンに関係なく、ブートイメージは最初にインストールされた OpenShift Container Platform 4.18 バージョンのものです。
ブートイメージ管理を有効にするマシンセットのいずれかが Ignition バージョン 2.2.0 に基づく *-user-data シークレットを使用している場合、この機能を有効にすると、Machine Config Operator によって Ignition バージョンが 3.4.0 に変換されます。OpenShift Container Platform バージョン 4.5 以下では、Ignition バージョン 2.2.0 が使用されます。この変換が失敗すると、MCO またはクラスターのパフォーマンスが低下する可能性があります。oc get ClusterOperator machine-config コマンドの出力に、err: converting ignition stub failed: failed to parse Ignition config を含むエラーメッセージが追加されました。この問題を修正するには、次の一般的な手順を実行します。
- ブートイメージ管理機能を無効にします。詳細は、「ブートイメージ管理の無効化」を参照してください。
-
Ignition バージョン 3.2.0 を使用するには、
*-user-dataシークレットを手動で更新します。 - ブートイメージ管理機能を有効にします。詳細は、「ブートイメージ管理の有効化」を参照してください。