3.8.2. マシン設定を使用してブートローダーを自動的に更新する
ブートローダーを bootupd で自動的に更新するには、起動時に必要に応じてブートローダーを更新する systemd サービスユニットを作成します。このユニットは、ブートプロセス中に bootupctl update コマンドを実行し、マシン設定を通してノードにインストールされます。
この設定はデフォルトでは有効になっていません。なぜなら、アップデート操作中に予期せぬ中断が発生すると、ノードが起動不能になる可能性があるためです。この設定を有効にする場合は、ブートローダーの更新処理中は、起動プロセス中にノードの動作を中断しないようにしてください。通常、ブートローダーの更新操作はすぐに完了するため、リスクは低くなります。
手順
bootupctl-update.servicesystemd ユニットの内容を含む Butane 設定ファイル99-worker-bootupctl-update.buを作成します。注記設定ファイルで指定する Butane のバージョン は、OpenShift Container Platform のバージョンと同じである必要があり、末尾は常に
0です。たとえば、4.20.0などです。Butane の詳細は、「Butane を使用したマシン設定の作成」を参照してください。出力例
variant: openshift version: 4.20.0 metadata: name: 99-worker-chrony labels: machineconfiguration.openshift.io/role: worker systemd: units: - name: bootupctl-update.service enabled: true contents: | [Unit] Description=Bootupd automatic update [Service] ExecStart=/usr/bin/bootupctl update RemainAfterExit=yes [Install] WantedBy=multi-user.targetコントロールプレーンノードでは、
metadata.nameおよびmetadata.labels.machineconfiguration.openshift.io/roleのworkerをmasterに置き換えます。以下のコマンドを実行して、ノードに配信する設定を含む
MachineConfigオブジェクトファイル99-worker-bootupctl-update.yamlを生成します。$ butane 99-worker-bootupctl-update.bu -o 99-worker-bootupctl-update.yaml以下の 2 つの方法のいずれかで設定を適用します。
-
クラスターがまだ起動していない場合は、マニフェストファイルを生成した後に、
MachineConfigオブジェクトファイルを<installation_directory>/openshiftディレクトリーに追加してから、クラスターの作成を続行します。 クラスターがすでに稼働している場合は、以下のコマンドを実行してファイルを適用してください。
$ oc apply -f ./99-worker-bootupctl-update.yaml
-
クラスターがまだ起動していない場合は、マニフェストファイルを生成した後に、