第6章 ブートイメージ管理
Google Cloud Platform (GCP) および Amazon Web Services (AWS) クラスターの場合、デフォルトでは、Machine Config Operator (MCO) がノードのスケールアップに使用されるブートイメージを管理および更新します。つまり、デフォルトでは、クラスターをアップグレードするたびに、MCO によってブートイメージが更新されます。
その他のすべてのプラットフォームでは、MCO はクラスターの更新ごとにブートイメージを更新しません。
6.1. ブートイメージ管理について リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Google Cloud Platform (GCP) および Amazon Web Services (AWS) クラスターの場合、クラスターを更新するたびに、Machine Config Operator (MCO) がクラスター内のマシンセットのブートイメージを更新します。
GCP および AWS の場合、必要に応じてブートイメージ管理機能を無効化できます。この機能が無効になっていると、ブートイメージはクラスターで更新されなくなります。たとえば、この機能を無効にすると、クラスターが元々 OpenShift Container Platform 4.16 で作成されていた場合、クラスターがそれ以降のバージョンであっても、MCO がノードの作成に使用するブートイメージは同じ 4.16 バージョンになります。
ただし、古いブートイメージを使用すると、次の問題が発生する可能性があります。
- ノードの起動に余分に時間がかかる
- 証明書の有効期限の問題が発生する
- バージョンスキューの問題が発生する
この機能を無効にする方法は、「ブートイメージ管理を無効にする」を参照してください。この機能を無効にした場合は、いつでも再有効化できます。詳細は、「ブートイメージ管理を有効にする」を参照してください。
ブートイメージ管理を設定する機能は、GCP および AWS クラスターでのみ使用できます。Cluster CAPI Operator によって管理されるクラスターではサポートされません。
機能を無効化した後、または再有効化した後のクラスターの動作は、次のシナリオを含め、変更を行ったタイミングによって異なります。
新しい 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 バージョンを使用します。
ブートイメージはノードがスケールアップされるときにのみ使用されるため、この機能は既存のノードには影響しません。
クラスターで使用されている現在のブートイメージを表示するには、マシンセットを調べます。
マシンセット内のブートイメージの場所と形式は、プラットフォームによって異なります。ただし、ブートイメージは常に spec.template.spec.providerSpec.
パラメーターにリスト表示されます。
ブートイメージ参照を含む GCP マシンセットの例
- 1
- このブートイメージは、クラスターの現在のバージョンに関係なく、最初にインストールされた OpenShift Container Platform バージョン (この例では OpenShift Container Platform 4.12) と同じです。
providerSpec
フィールドの構造はプラットフォームごとに異なるため、マシンセット内でブートイメージが表現される方法はプラットフォームによって異なります。
ブートイメージ参照を含む AWS マシンセットの例
ブートイメージ管理を有効にするマシンセットのいずれかが 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
シークレットを手動で更新します。 - ブートイメージ管理機能を有効にします。詳細は、「ブートイメージ管理を有効にする」を参照してください。