第11章 RHEL bootc イメージの管理
RHEL bootc イメージをインストールしてデプロイした後、システムの変更や更新などの管理操作をコンテナーイメージに対して実行できます。システムは、デプロイメント後にロールバックが可能なインプレーストランザクション更新をサポートします。
この種の管理は Day 2 管理ベースラインとも呼ばれ、コンテナーレジストリーから新しいオペレーティングシステムの更新をトランザクショナルに取得して、システムを起動します。同時に、障害発生時には手動または自動のロールバックをサポートします。
デフォルトで有効になっている自動更新を利用することもできます。systemd service unit と systemd timer unit ファイルがコンテナーレジストリーの更新をチェックし、システムに適用します。アプリケーションの更新など、さまざまなイベントで更新プロセスをトリガーできます。これらの更新を監視し、CI/CD パイプラインをトリガーする自動化ツールがあります。更新はトランザクションであるため、再起動が必要です。より高度なロールアウトやスケジュールされたロールアウトが必要な環境では、自動更新を無効にし、bootc ユーティリティーを使用してオペレーティングシステムを更新する必要があります。
詳細は、Day 2 operations support を参照してください。
rhel-bootc イメージは、RPM パッケージなどの基礎となる入力が更新されるたびに再ビルドされます。これらの再ビルドは少なくとも毎月実行されますが、重要な更新がリリースされた場合はより頻繁に実行されます。ユーザーは、更新イメージをプッシュするタイミングを完全に制御できます。新しく公開されたベースイメージでは、カスタムイメージの自動再ビルドまたは再デプロイメントはトリガーされません。更新の頻度を設定し、必要な場合にのみ変更をプッシュします。
図11.1 インストールされたオペレーティングシステムを手動で更新し、必要に応じて変更をコンテナーイメージの参照を変更したり、ロールバックしたりする
11.1. コンテナーイメージ参照の切り替え リンクのコピーリンクがクリップボードにコピーされました!
bootc switch コマンドを使用して、アップグレードに使用するコンテナーイメージ参照を変更できます。たとえば、ステージタグから実稼働タグに切り替えることができます。既存の ostree-based コンテナーイメージ参照を手動で切り替えるには、bootc switch コマンドを使用します。
rpm-ostree を使用して変更を加えたり、コンテンツをインストールしたりすることはサポートされていません。
前提条件
-
bootcを使用して起動したシステム。
手順
以下のコマンドを実行します。
$ sudo bootc switch [--apply] quay.io/<namespace>/<image>:<tag>システム変更時に再起動などのアクションを自動的に実行する場合は、必要に応じて
--applyオプションを使用できます。
bootc switch コマンドは bootc upgrade と同じ効果があります。唯一の違いは、コンテナーイメージ参照が変更されることです。これにより、ホストの SSH 鍵やホームディレクトリーなど、/etc および /var 内の既存の状態を保持することが可能になります。
オプションで、非接続環境で、またはレジストリーに依存しない場合は、the- transport オプションを使用して、起動をローカルストレージメディアにポイントできます。この- transport オプションは、bootc スイッチ の実行時にシステムイメージをソースする方法を指定します。リモートレジストリーまたはローカルファイルに関係なく、異なるストレージバックエンドからのイメージに切り換えることができます。ローカルストレージの場合は、oci トランスポートを使用してください。これは通常推奨されます。単一のアーカイブファイルが必要な場合は oci-archive を使用します。the- transport オプションを使用してシステムイメージを入手する主な方法は、以下のとおりです。
OCI: ローカルの OCI レイアウトディレクトリーをイメージソースとして使用します。1 つのアーカイブファイルを作成せずに、事前にプルまたはエクスポートしたイメージに便利です。$ bootc switch --transport oci ./<image-directory>Registry (デフォルト): リモートコンテナーレジストリーからイメージをプルします。
以下に例を示します。$ bootc switch <image>containers-storage: Podman などのツールによってローカルに保存されたイメージを使用します。これは、イメージをローカルにプルまたはビルドしている場合に役立ちます。以下に例を示します。$ bootc switch --transport containers-storage <image>