3.5. oc-mirror プラグイン v2 を使用した非接続インストールのイメージのミラーリング
プライベートレジストリー内のミラーリングされた OpenShift Container Platform コンテナーイメージのセットからクラスターをインストールすると、非接続環境でクラスターを実行できます。このレジストリーは、クラスターが実行中の場合は常に実行されている必要があります。
完全または部分的な非接続環境のミラーレジストリーにイメージをミラーリングするために、oc-mirror OpenShift CLI (oc) プラグインを使用できルノと同様に、oc-mirror プラグイン v2 を使用できます。公式の Red Hat レジストリーから必要なイメージをダウンロードするには、インターネットに接続されたシステムから oc-mirror プラグイン v2 を実行する必要があります。
oc-mirror プラグイン v2 はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、以下のリンクを参照してください。
3.5.1. oc-mirror プラグイン v2 について リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror OpenShift CLI (oc) プラグインは、必要なすべての OpenShift Container Platform コンテンツとその他のイメージをミラーレジストリーにミラーリングする単一のツールです。
oc-mirror の新しいテクノロジープレビューバージョンを使用するには、oc-mirror プラグイン v2 コマンドラインに --v2 フラグを追加します。
oc-mirror プラグイン v2 には次の機能があります。
- イメージが以前にミラーリングされたかどうかに関係なく、イメージセット設定ファイルで指定されたすべてのイメージセットが、ミラー先のレジストリーにミラーリングされていることを確認します。
- メタデータの代わりにキャッシュシステムを使用します。そのため、プロセスの 1 つのステップで障害が発生した場合でも、ミラーリングプロセスを最初からやり直す必要がなくなります。
- 新しいイメージのみをアーカイブに組み込むことで、アーカイブのサイズを最小限に抑えます。
- ミラーリングの日付で選択したコンテンツを含むミラーリングアーカイブを生成します。
-
ImageContentSourcePolicy(ICSP) リソースではなく、イメージセット全体をカバーするImageDigestMirrorSet(IDMS) およびImageTagMirrorSet(ITMS) リソースを生成できます。v1 では、ICSP リソースにより、各ミラーリング操作のイメージセットへの増分変更だけがカバーされていました。 - バンドル名でフィルタリングされた Operator バージョンを保存します。
-
自動プルーニングを実行しません。v2 では
Delete機能が使用されるようになり、ユーザーがイメージの削除をより細かく制御できるようになりました。 -
registries.confファイルのサポートを導入します。この変更により、同じキャッシュを使用しつつ複数のエンクレーブに容易にミラーリングできます。
3.5.1.1. ワークフローの概要 リンクのコピーリンクがクリップボードにコピーされました!
次の手順は、oc-mirror プラグイン v2 を使用してイメージをミラーレジストリーにミラーリングする方法の概要を示しています。
- イメージセット設定ファイルを作成します。
次のいずれかのワークフローを使用して、イメージセットをターゲットミラーレジストリーにミラーリングします。
- イメージセットをターゲットミラーレジストリーに直接 (ミラーからミラーに) ミラーリングします。
-
イメージセットをディスクにミラーリングし (ミラーからディスクへのミラーリング)、
tarファイルをターゲット環境に転送してから、イメージセットをターゲットミラーレジストリーにミラーリングします (ディスクからミラーへのミラーリング)。
- oc-mirror プラグイン v2 が生成したリソースを使用するようにクラスターを設定します。
- 必要に応じてこれらの手順を繰り返して、ターゲットミラーレジストリーを更新します。
3.5.1.2. oc-mirror プラグイン v2 の互換性とサポート リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror プラグイン v2 は、OpenShift Container Platform でサポートされています。
aarch64、ppc64le、および s390x アーキテクチャーでは、oc-mirror プラグイン v2 は OpenShift Container Platform 4.14 以降でのみサポートされます。
ミラーリングする必要がある OpenShift Container Platform のバージョンに関係なく、使用可能な最新バージョンの oc-mirror プラグイン v2 を使用してください。
3.5.2. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay など、OpenShift Container Platform クラスターをホストする場所に Docker V2-2 をサポートするコンテナーイメージレジストリーを持っている。
注記- Red Hat Quay を使用する場合は、oc-mirror プラグインを備えたバージョン 3.6 以降を使用してください。Red Hat Quay Operator の OpenShift Container Platform へのデプロイ (Red Hat Quay ドキュメント) を参照してください。レジストリーの選択とインストールにさらにサポートが必要な場合は、営業担当者または Red Hat サポートにお問い合わせください。
- コンテナーイメージレジストリー用の既存ソリューションがない場合、OpenShift Container Platform サブスクライバーには Red Hat OpenShift 用のミラーレジストリーが提供されます。このミラーレジストリーはサブスクリプションに含まれており、小規模なコンテナーレジストリーとして機能します。このレジストリーを使用して、非接続インストールに必要な OpenShift Container Platform のコンテナーイメージをミラーリングできます。
- プロビジョニングされたクラスター内のすべてのマシンは、ミラーレジストリーにアクセスできる必要があります。レジストリーにアクセスできない場合、インストールや更新などのタスクや、ワークロードの再配置などの日常的な操作が失敗する可能性があります。ミラーレジストリーは、その可用性が OpenShift Container Platform クラスターの実稼働環境の可用性と一致するように、可用性の高い方法で運用する必要があます。
3.5.3. ミラーホストの準備 リンクのコピーリンクがクリップボードにコピーされました!
イメージミラーリングに oc-mirror プラグイン v2 を使用するには、プラグインをインストールし、コンテナーイメージの認証情報を含むファイルを作成して、Red Hat からミラーにミラーリングできるようにする必要があります。
3.5.3.1. oc-mirror OpenShift CLI プラグインのインストール リンクのコピーリンクがクリップボードにコピーされました!
非接続環境でイメージセットを管理するには、oc-mirror OpenShift CLI プラグインをインストールします。
前提条件
OpenShift CLI (
oc) がインストールされている。完全な非接続環境でイメージセットをミラーリングする場合は、次の点を確認してください。- インターネットにアクセスできるホストに oc-mirror プラグインをインストールした。
- 非接続環境のホストが、ターゲットミラーレジストリーにアクセスできる。
-
oc-mirror を使用するオペレーティングシステムで、
umaskパラメーターを0022に設定した。 - 使用している RHEL バージョンに適したバイナリーをインストールした。
手順
oc-mirror CLI プラグインをダウンロードします。
- Red Hat Hybrid Cloud Console の Downloads ページに移動します。
- OpenShift disconnected installation tools セクションで、ドロップダウンメニューから OpenShift Client (oc) mirror plugin の OS type と Architecture type を選択します。
- Download をクリックしてファイルを保存します。
次のコマンドを実行してアーカイブを展開します。
tar xvzf oc-mirror.tar.gz
$ tar xvzf oc-mirror.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて、次のコマンドを実行し、プラグインファイルを更新して実行可能にします。
chmod +x oc-mirror
$ chmod +x oc-mirrorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記oc-mirrorファイルの名前を変更しないでください。次のコマンドを実行して、
PATH(例:/usr/local/bin) にファイルを配置し、oc-mirror CLI プラグインをインストールします。sudo mv oc-mirror /usr/local/bin/.
$ sudo mv oc-mirror /usr/local/bin/.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、oc-mirror プラグイン v2 が正常にインストールされていることを確認します。
oc mirror --v2 --help
$ oc mirror --v2 --helpCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5.3.2. イメージのミラーリングを可能にする認証情報の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat からミラーにイメージをミラーリングできるように、コンテナーイメージレジストリーの認証情報ファイルを作成します。インストールホストで以下の手順を実行します。
クラスターのインストール時に、このイメージレジストリー認証情報ファイルをプルシークレットとして使用しないでください。クラスターのインストール時にこのファイルを指定すると、クラスター内のすべてのマシンにミラーレジストリーへの書き込みアクセスが付与されます。
前提条件
- 非接続環境で使用するミラーレジストリーを設定した。
- イメージをミラーリングするミラーレジストリー上のイメージリポジトリーの場所を特定している。
- イメージのイメージリポジトリーへのアップロードを許可するミラーレジストリーアカウントをプロビジョニングしている。
- ミラーレジストリーへの書き込みアクセス権がある。
手順
-
registry.redhat.ioプルシークレットを Red Hat OpenShift Cluster Manager からダウンロードします。 次のコマンドを実行して、プルシークレットのコピーを JSON 形式で作成します。
cat ./pull-secret | jq . > <path>/<pull_secret_file_in_json>
$ cat ./pull-secret | jq . > <path>/<pull_secret_file_in_json>Copy to Clipboard Copied! Toggle word wrap Toggle overflow プルシークレットを保存するディレクトリーへのパスおよび作成する JSON ファイルの名前を指定します。
プルシークレットの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow $XDG_RUNTIME_DIR/containersディレクトリーが存在しない場合は、次のコマンドを入力して作成します。mkdir -p $XDG_RUNTIME_DIR/containers
$ mkdir -p $XDG_RUNTIME_DIR/containersCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
プルシークレットファイルを
$XDG_RUNTIME_DIR/containers/auth.jsonとして保存します。
次のコマンドを実行して、ミラーレジストリーの base64 でエンコードされたユーザー名とパスワードまたはトークンを生成します。
echo -n '<user_name>:<password>' | base64 -w0
$ echo -n '<user_name>:<password>' | base64 -w0Copy to Clipboard Copied! Toggle word wrap Toggle overflow <user_name>および<password>には、レジストリーに設定したユーザー名およびパスワードを指定します。出力例
BGVtbYk3ZHAtqXs=
BGVtbYk3ZHAtqXs=Copy to Clipboard Copied! Toggle word wrap Toggle overflow JSON ファイルを編集し、レジストリーを記述するセクションをこれに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<
mirror_registry> 値については、レジストリードメイン名と、ミラーレジストリーがコンテンツを提供するために使用するポートをオプションで指定します。たとえば、registry.example.comまたはregistry.example.com:8443です。 <
credentials> 値については、ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードを指定します。変更済みのプルシークレットの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
<
3.5.4. イメージセットをミラーレジストリーにミラーリングする リンクのコピーリンクがクリップボードにコピーされました!
イメージセットをミラーレジストリーにミラーリングすると、必要なイメージがセキュアで制御された環境で利用できるようになるため、デプロイメント、更新、メンテナンスのタスクがスムーズになります。
3.5.4.1. イメージセット設定の作成 リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror プラグイン v2 を使用してイメージをミラーリングする前に、イメージセット設定ファイルを作成する必要があります。このイメージセット設定ファイルにより、ミラーリングする OpenShift Container Platform リリース、Operator、およびその他のイメージと、oc-mirror プラグイン v2 の他の設定を定義します。
前提条件
- コンテナーイメージレジストリーの認証情報ファイルを作成している。手順は、イメージのミラーリングを可能にする認証情報の設定 を参照してください。
手順
ImageSetConfigurationYAML ファイルを作成し、ファイルを変更して必要なイメージを含めます。ImageSetConfigurationYAML ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- OpenShift Container Platform イメージの取得元のチャネルを設定します。
- 2
graph: trueを追加して、グラフデータイメージをビルドし、ミラーレジストリーにプッシュします。OpenShift Update Service (OSUS) を作成するには、graph-data イメージが必要です。graph: trueフィールドはUpdateServiceカスタムリソースマニフェストも生成します。ocコマンドラインインターフェイス (CLI) は、UpdateServiceカスタムリソースマニフェストを使用して OSUS を作成できます。詳細は、OpenShift Update Service について を参照してください。- 3
- OpenShift Container Platform イメージを取得するための Operator カタログを設定します。
- 4
- イメージセットに含める特定の Operator パッケージのみを指定します。カタログ内のすべてのパッケージを取得するには、このフィールドを削除してください。
- 5
- イメージセットに含める追加のイメージを指定します。
注記oc-mirror プラグイン v2 では、
additionalImagesにリストされているすべてのイメージに明示的なレジストリーホスト名を使用する必要があります。それ以外の場合、イメージは誤ったターゲットパスにミラーリングされます。
3.5.4.2. oc-mirror ワークフローの比較 リンクのコピーリンクがクリップボードにコピーされました!
ミラーからディスク (m2d)、ディスクからミラー (d2m)、ミラーからミラー (m2m) のワークフローでサポートされているユースケースを比較するには、次の表を使用してください。
| ユースケース | ディスクからミラー (m2d) およびディスクからミラー (d2m) | ミラーからミラー (m2m) |
|---|---|---|
| ターゲットレジストリーが、インターネットアクセスおよび外部アクセスのない環境に存在する。 | ✓ | |
| ターゲットレジストリーがインターネットにアクセスできない環境に存在するが、別のマシンからはアクセスできる。たとえば、ターゲットレジストリーが踏み台ホストに存在する。 | ✓ | |
| USB デバイスなどの物理的な手段を使用してコンテンツを非接続環境に移動する必要がある。 | ✓ | |
| 中間の tar ファイルを生成せずに、コンテンツをターゲットレジストリーに直接移動する。 | ✓ | |
| 失敗後に再開するために内部キャッシュを使用するが、追加のディスク領域を必要とする。 | ✓ | |
| キャッシュを使用せず、失敗した場合は最初から再開され、追加のディスク領域を必要としない。 | ✓ |
3.5.4.3. 部分的な非接続環境でのイメージセットのミラーリング リンクのコピーリンクがクリップボードにコピーされました!
インターネットアクセスが制限されている環境では、oc-mirror プラグイン v2 を使用してイメージセットをレジストリーにミラーリングできます。
前提条件
- インターネット接続があり、oc-mirror プラグイン v2 を実行している環境内のミラーレジストリーにアクセスできる。
手順
次のコマンドを実行して、指定されたイメージセット設定から指定されたレジストリーにイメージをミラーリングします。
oc mirror -c <image_set_configuration> --workspace file://<file_path> docker://<mirror_registry_url> --v2
$ oc mirror -c <image_set_configuration> --workspace file://<file_path> docker://<mirror_registry_url> --v21 Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
- <image_set_configuration>
- イメージセット設定ファイルの名前を指定します。
- <file_path>
- クラスターリソースの生成先のディレクトリーを指定します。
- <mirror_registry_url>
- イメージの保存先であり、そこからイメージを削除する必要があるミラーレジストリーの URL またはアドレスを指定します。
検証
-
<file_path>ディレクトリーに生成されたworking-dir/cluster-resourcesディレクトリーに移動します。 -
ImageDigestMirrorSet、ImageTagMirrorSet、およびCatalogSourceリソースの YAML ファイルが存在することを確認します。
次のステップ
- oc-mirror プラグイン v2 が生成したリソースを使用するようにクラスターを設定します。
3.5.4.4. 完全な非接続環境でのイメージセットのミラーリング リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターがパブリックインターネットにアクセスできない完全な非接続環境で、イメージセットをミラーリングできます。ミラーリングプロセスのワークフローの概要を以下に示します。
- ミラーからディスクへのミラーリング: イメージセットをアーカイブにミラーリングします。
- ディスク転送: 非接続ミラーレジストリーのネットワークにアーカイブを手動で転送します。
- ディスクからミラーへのミラーリング: イメージセットをアーカイブからターゲットの非接続レジストリーにミラーリングします。
3.5.4.4.1. ミラーからディスクへのミラーリング リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror プラグイン v2 を使用して、イメージセットを生成し、コンテンツをディスクに保存できます。その後、生成されたイメージセットを非接続環境に転送し、ターゲットレジストリーにミラーリングできます。
oc-mirror プラグイン v2 は、イメージセット設定ファイルで指定されたソースからコンテナーイメージを取得し、ローカルディレクトリーの tar アーカイブにパックします。
手順
次のコマンドを実行して、指定されたイメージセット設定からディスクにイメージをミラーリングします。
oc mirror -c <image_set_configuration> file://<file_path> --v2
$ oc mirror -c <image_set_configuration> file://<file_path> --v2Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
- <image_set_configuration>
- イメージセット設定ファイルの名前を指定します。
- <file_path>
- イメージセットを含むアーカイブの生成先のディレクトリーを指定します。
検証
-
生成された
<file_path>ディレクトリーに移動します。 - アーカイブファイルが生成されたことを確認します。
次のステップ
- ディスクからミラーへのミラーリング
3.5.4.4.2. ディスクからミラーへのミラーリング リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror プラグイン v2 を使用して、ディスクからターゲットミラーレジストリーにイメージセットをミラーリングできます。
oc-mirror プラグイン v2 は、ローカルディスクからコンテナーイメージを取得し、指定されたミラーレジストリーに転送します。
手順
- ミラーリングされたイメージセットが含まれているディスクを、ターゲットミラーレジストリーが含まれている環境に転送します。
次のコマンドを実行して、ディスク上のイメージセットファイルを処理し、その内容をターゲットミラーレジストリーにミラーリングします。
oc mirror -c <image_set_configuration> --from file://<file_path> docker://<mirror_registry_url> --v2
$ oc mirror -c <image_set_configuration> --from file://<file_path> docker://<mirror_registry_url> --v2Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
- <image_set_configuration>
- イメージセット設定ファイルの名前を指定します。
- <file_path>
- アーカイブが含まれているディスク上のディレクトリーを指定します。このフォルダーには、クラスターに適用するために生成されたクラスターリソース (ImageDigestMirrorSet (IDMS) や ImageTagMirrorSet (ITMS) リソースなど) も含まれています。
- <mirror_registry_url>
- イメージの保存先であるミラーレジストリーの URL またはアドレスを指定します。
検証
-
<file_path>ディレクトリーに生成されたworking-dirディレクトリー内のcluster-resourcesディレクトリーに移動します。 -
ImageDigestMirrorSet、ImageTagMirrorSet、およびCatalogSourceリソースの YAML ファイルが存在することを確認します。
次のステップ
- oc-mirror プラグイン v2 が生成したリソースを使用するようにクラスターを設定します。
3.5.5. v2 が生成するカスタムリソース リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror プラグイン v2 では、イメージセット内の 1 つ以上のイメージがダイジェストによってミラーリングされている場合、ImageDigestMirrorSet (IDMS) リソースがデフォルトで生成されます。イメージセット内の 1 つ以上のイメージがタグによってミラーリングされている場合、ImageTagMirrorSet (ITMS) リソースが生成されます。
Operator Lifecycle Manager (OLM) が、CatalogSource リソースを使用して、ミラーレジストリー内の利用可能な Operator に関する情報を取得します。
OpenShift Update Service が、UpdateService リソースを使用して、非接続環境に更新グラフデータを提供します。
3.5.5.1. oc-mirror プラグイン v2 が生成したリソースを使用するためのクラスター設定 リンクのコピーリンクがクリップボードにコピーされました!
イメージセットをミラーレジストリーにミラーリングした後、生成された ImageDigestMirrorSet (IDMS)、ImageTagMirrorSet (ITMS)、CatalogSource、および UpdateService リソースをクラスターに適用する必要があります。
oc-mirror プラグイン v2 では、oc-mirror プラグイン v1 の ImageContentSourcePolicy (ICSP) ファイルとは異なり、IDMS ファイルと ITMS ファイルがイメージセット全体をカバーします。したがって、増分ミラーリング中に新しいイメージのみを追加した場合でも、IDMS ファイルと ITMS ファイルにはセットのすべてのイメージが含まれます。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。
手順
-
cluster-adminロールを持つユーザーとして OpenShift CLI にログインします。 以下のコマンドを実行して、results ディレクトリーからクラスターに YAML ファイルを適用します。
oc apply -f <path_to_oc_mirror_workspace>/working-dir/cluster-resources
$ oc apply -f <path_to_oc_mirror_workspace>/working-dir/cluster-resourcesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、
ImageDigestMirrorSetリソースが正常にインストールされたことを確認します。oc get imagedigestmirrorset
$ oc get imagedigestmirrorsetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
ImageTagMirrorSetリソースが正常にインストールされたことを確認します。oc get imagetagmirrorset
$ oc get imagetagmirrorsetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、
CatalogSourceリソースが正常にインストールされたことを確認します。oc get catalogsource -n openshift-marketplace
$ oc get catalogsource -n openshift-marketplaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
oc-mirror プラグイン v2 によって生成されたリソースを使用するようにクラスターを設定したら、ミラーリングされたイメージを使用して実行できるタスクの詳細について、次のステップ を参照してください。
3.5.6. 非接続環境からのイメージ削除 リンクのコピーリンクがクリップボードにコピーされました!
以前に oc-mirror プラグイン v2 を使用してイメージをデプロイしたことがある場合は、そのイメージを削除してミラーレジストリーの領域を解放できます。oc-mirror プラグイン v2 は、ImageSetConfiguration ファイルに含まれていないイメージを自動プルーニングしません。そのため、ImageSetConfig.yaml ファイルに変更を加えたときに、必要なイメージやデプロイされたイメージが誤って削除されることはありません。
削除するイメージを指定するには、DeleteImageSetConfiguration ファイルを作成する必要があります。
次の例では、DeleteImageSetConfiguration ファイルで次のイメージを削除します。
- OpenShift Container Platform 4.13.3 のすべてのリリースイメージ。
-
redhat-operator-indexv4.12カタログイメージ。 -
aws-load-balancer-operatorv0.0.1 バンドルと関連するすべてのイメージ。 -
それぞれ対応するダイジェストによって参照される、
ubiおよびubi-minimalの追加イメージ。
DeleteImageSetConfiguration ファイルの例
- 削除の問題を軽減するために、ミラーからディスクへのミラーリングワークフローとディスクからミラーへのミラーリングワークフローの使用を検討してください。
-
oc-mirror プラグイン v2 では、
additionalImagesにリストされているすべてのイメージに明示的なレジストリーホスト名を使用する必要があります。それ以外の場合、イメージは誤ったターゲットパスにミラーリングされます。
oc-mirror プラグイン v2 はイメージのマニフェストのみを削除します。そのため、レジストリーの占有されているストレージは削減されません。
マニフェストが削除されたイメージなど、不要なイメージが使用するストレージ領域を解放するには、コンテナーレジストリーでガベージコレクターを有効にする必要があります。ガベージコレクターを有効にすると、レジストリーはマニフェストへの参照がなくなったイメージ Blob を削除します。そのため、削除された Blob が使用していたストレージが削減されます。ガベージコレクターを有効にするプロセスは、コンテナーレジストリーによって異なります。
詳細は、「ディストリビューションレジストリーのストレージクリーンアップ問題の解決」を参照してください。
Operator イメージを削除するときに Operator カタログイメージの削除をスキップするには、
DeleteImageSetConfigurationファイル内の Operator カタログイメージの下に特定の Operator をリストする必要があります。そうすることで、カタログイメージではなく、指定された Operator のみが削除されます。Operator カタログイメージのみを指定した場合、そのカタログ内のすべての Operator とカタログイメージ自体が削除されます。
oc-mirror プラグイン v2 は、Operator カタログイメージを自動的に削除しません。他の Operator がまだデプロイされていて、これらのイメージに依存している可能性があるためです。
カタログの Operator がレジストリーまたはクラスターに残っていないことが確実な場合は、
DeleteImageSetConfigurationのadditionalImagesにカタログイメージを明示的に追加して削除できます。- レジストリーによってガベージコレクションの動作が異なります。一部のレジストリーでは、削除されたイメージが自動的に削除されません。そのため、システム管理者が手動でガベージコレクションをトリガーして領域を解放する必要があります。
3.5.6.1. 非接続環境からイメージを削除する リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror プラグイン v2 を使用して非接続環境からイメージを削除するには、次の手順に従います。
前提条件
- マニフェストを参照しなくなったイメージを削除するために、環境でガベージコレクションを有効にした。
手順
delete-image-set-config.yamlファイルを作成し、次の内容を含めます。DeleteImageSetConfigurationファイルCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1 1
- 削除する OpenShift Container Platform チャネルの名前を指定します (例:
stable-4.15)。 - 2 3
- チャネル内の削除するイメージのバージョン範囲を指定します。たとえば、最小バージョンとして
4.15.0、最大バージョンとして4.15.1を指定します。1 つのバージョンのイメージのみを削除するには、minVersionフィールドとmaxVersionフィールドの両方にそのバージョン番号を使用します。 - 4
- 削除する Operator カタログイメージを指定します (例:
registry.redhat.io/redhat/redhat-operator-index:v4.14)。カタログイメージを削除する場合は、delete.operators.packagesパラメーターを使用して個別の Operator を指定しないでください。 - 5
- 削除する特定の Operator バンドルを指定します (例:
aws-load-balancer-operator)。個別の Operator を指定すると、Operator カタログイメージが削除されません。 - 6 7
- Operator に対して削除するイメージのバージョン範囲を指定します。たとえば、最小バージョンとして
0.0.1、最大バージョンとして0.0.2を指定します。1 つのバージョンのイメージのみを削除するには、minVersionフィールドとmaxVersionフィールドの両方にそのバージョン番号を使用します。 - 8
- 削除する追加イメージを指定します (例:
registry.redhat.io/ubi9/ubi-init:latest)。
次のコマンドを実行して、
delete-images.yamlファイルを作成します。oc mirror delete --config delete-image-set-config.yaml --workspace file://<previously_mirrored_work_folder> --v2 --generate docker://<remote_registry>
$ oc mirror delete --config delete-image-set-config.yaml --workspace file://<previously_mirrored_work_folder> --v2 --generate docker://<remote_registry>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
- <previously_mirrored_work_folder>
- 以前、ミラーリングプロセス中にイメージがミラーリングまたは保存されたディレクトリーを指定します。
- <remote_registry>
- イメージの削除元となるリモートコンテナーレジストリーの URL またはアドレスを指定します。
-
作成された
<previously_mirrored_work_folder>/deleteディレクトリーに移動します。 -
delete-images.yamlファイルが生成されたことを確認します。 - ファイルにリストされている各イメージがクラスターで不要になり、レジストリーから安全に削除できることを手動で確認します。
delete-imagesYAML ファイルを生成した後、次のコマンドを実行してリモートレジストリーからイメージを削除します。oc mirror delete --v2 --delete-yaml-file <previously_mirrored_work_folder>/working-dir/delete/delete-images.yaml docker://<remote_registry>
$ oc mirror delete --v2 --delete-yaml-file <previously_mirrored_work_folder>/working-dir/delete/delete-images.yaml docker://<remote_registry>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
- <previously_mirrored_work_folder>
- 以前、ミラーリングプロセス中にイメージがミラーリングまたは保存されたディレクトリーを指定します。
- <remote_registry>
イメージの削除元となるリモートコンテナーレジストリーの URL またはアドレスを指定します。
重要mirror-to-mirror 方式を使用してイメージをミラーリングする場合、イメージはローカルにキャッシュされないため、ローカルキャッシュからイメージを削除することはできません。
3.5.7. ミラーリング用に選択したイメージを確認する リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror プラグイン v2 を使用して、実際にはイメージをミラーリングしないテストラン (ドライラン) を実行できます。これにより、ミラーリングされるイメージのリストを確認できます。ドライランは、イメージセット設定のエラーを早期に検出するためにも使用できます。mirror-to-disk のワークフローでドライランを実行する場合、oc-mirror プラグイン v2 は、イメージセット内のすべてのイメージがキャッシュ内で使用可能か確認します。不足しているイメージは missing.txt ファイルにリストされます。ミラーリングの前にドライランを実行すると、missing.txt ファイルと mapping.txt ファイルには同じイメージリストが含まれています。
3.5.7.1. oc-mirror プラグイン v2 のドライランを実行する リンクのコピーリンクがクリップボードにコピーされました!
イメージをミラーリングせずにドライランを実行して、イメージセットの設定を確認します。これにより、セットアップが正しいことを確認でき、意図しない変更を防止できます。
手順
テストランを実行するには、
oc mirrorコマンドを実行し、コマンドに--dry-run引数を追加します。oc mirror -c <image_set_config_yaml> --from file://<oc_mirror_workspace_path> docker://<mirror_registry_url> --dry-run --v2
$ oc mirror -c <image_set_config_yaml> --from file://<oc_mirror_workspace_path> docker://<mirror_registry_url> --dry-run --v2Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
-
<image_set_config_yaml>: 先ほど作成したイメージセット設定ファイルを使用します。 -
<oc_mirror_workspace_path>: ワークスペースパスのアドレスを挿入します。 <mirror_registry_url>: イメージを削除するリモートコンテナーレジストリーの URL またはアドレスを挿入します。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
検証
生成されたワークスペースディレクトリーに移動します。
cd <oc_mirror_workspace_path>
$ cd <oc_mirror_workspace_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
生成された
mapping.txtファイルとmissing.txtファイルを確認します。これらのファイルには、ミラーリングされるすべてのイメージのリストが含まれています。
3.5.7.2. oc-mirror プラグイン v2 エラーのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror プラグイン v2 では、すべてのイメージミラーリングエラーが別のファイルに記録されるようになり、障害の追跡と診断が容易になりました。
リリースイメージまたはリリースコンポーネントイメージのミラーリング中にエラーが発生した場合、それは重大なエラーです。これにより、ミラーリングプロセスが直ちに停止します。
Operator、Operator 関連イメージ、または追加イメージのミラーリングに関するエラーが発生しても、ミラーリングプロセスは停止しません。ミラーリングは継続され、oc-mirror プラグイン v2 は 8 イメージごとに更新を記録します。
イメージのミラーリングに失敗し、そのイメージが 1 つ以上の Operator バンドルの一部としてミラーリングされている場合、oc-mirror プラグイン v2 は、どの Operator が不完全であるかをユーザーに通知し、エラーの影響を受ける Operator バンドルを明確に示します。
手順
サーバー関連の問題を確認します。
エラーの例
[ERROR] : [Worker] error mirroring image localhost:55000/openshift/graph-image:latest error: copying image 1/4 from manifest list: trying to reuse blob sha256:edab65b863aead24e3ed77cea194b6562143049a9307cd48f86b542db9eecb6e at destination: pinging container registry localhost:5000: Get "https://localhost:5000/v2/": http: server gave HTTP response to HTTPS client
[ERROR] : [Worker] error mirroring image localhost:55000/openshift/graph-image:latest error: copying image 1/4 from manifest list: trying to reuse blob sha256:edab65b863aead24e3ed77cea194b6562143049a9307cd48f86b542db9eecb6e at destination: pinging container registry localhost:5000: Get "https://localhost:5000/v2/": http: server gave HTTP response to HTTPS clientCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
oc-mirror プラグイン v2 出力ディレクトリーにある
working-dir/logsフォルダー内のmirroring_error_date_time.logファイルを開きます。 -
HTTP 500エラー、期限切れのトークン、タイムアウトなどの、通常はサーバー側の問題を示すエラーメッセージを探します。 - 問題が解決しない場合は、ミラーリングプロセスを再試行するか、サポートにお問い合わせください。
-
oc-mirror プラグイン v2 出力ディレクトリーにある
Operator の不完全なミラーリングを確認します。
エラーの例
error mirroring image docker://registry.redhat.io/3scale-amp2/zync-rhel9@sha256:8bb6b31e108d67476cc62622f20ff8db34efae5d58014de9502336fcc479d86d (Operator bundles: [3scale-operator.v0.11.12] - Operators: [3scale-operator]) error: initializing source docker://localhost:55000/3scale-amp2/zync-rhel9:8bb6b31e108d67476cc62622f20ff8db34efae5d58014de9502336fcc479d86d: reading manifest 8bb6b31e108d67476cc62622f20ff8db34efae5d58014de9502336fcc479d86d in localhost:55000/3scale-amp2/zync-rhel9: manifest unknown error mirroring image docker://registry.redhat.io/3scale-amp2/3scale-rhel7-operator-metadata@sha256:de0a70d1263a6a596d28bf376158056631afd0b6159865008a7263a8e9bf0c7d error: skipping operator bundle docker://registry.redhat.io/3scale-amp2/3scale-rhel7-operator-metadata@sha256:de0a70d1263a6a596d28bf376158056631afd0b6159865008a7263a8e9bf0c7d because one of its related images failed to mirror error mirroring image docker://registry.redhat.io/3scale-amp2/system-rhel7@sha256:fe77272021867cc6b6d5d0c9bd06c99d4024ad53f1ab94ec0ab69d0fda74588e (Operator bundles: [3scale-operator.v0.11.12] - Operators: [3scale-operator]) error: initializing source docker://localhost:55000/3scale-amp2/system-rhel7:fe77272021867cc6b6d5d0c9bd06c99d4024ad53f1ab94ec0ab69d0fda74588e: reading manifest fe77272021867cc6b6d5d0c9bd06c99d4024ad53f1ab94ec0ab69d0fda74588e in localhost:55000/3scale-amp2/system-rhel7: manifest unknown
error mirroring image docker://registry.redhat.io/3scale-amp2/zync-rhel9@sha256:8bb6b31e108d67476cc62622f20ff8db34efae5d58014de9502336fcc479d86d (Operator bundles: [3scale-operator.v0.11.12] - Operators: [3scale-operator]) error: initializing source docker://localhost:55000/3scale-amp2/zync-rhel9:8bb6b31e108d67476cc62622f20ff8db34efae5d58014de9502336fcc479d86d: reading manifest 8bb6b31e108d67476cc62622f20ff8db34efae5d58014de9502336fcc479d86d in localhost:55000/3scale-amp2/zync-rhel9: manifest unknown error mirroring image docker://registry.redhat.io/3scale-amp2/3scale-rhel7-operator-metadata@sha256:de0a70d1263a6a596d28bf376158056631afd0b6159865008a7263a8e9bf0c7d error: skipping operator bundle docker://registry.redhat.io/3scale-amp2/3scale-rhel7-operator-metadata@sha256:de0a70d1263a6a596d28bf376158056631afd0b6159865008a7263a8e9bf0c7d because one of its related images failed to mirror error mirroring image docker://registry.redhat.io/3scale-amp2/system-rhel7@sha256:fe77272021867cc6b6d5d0c9bd06c99d4024ad53f1ab94ec0ab69d0fda74588e (Operator bundles: [3scale-operator.v0.11.12] - Operators: [3scale-operator]) error: initializing source docker://localhost:55000/3scale-amp2/system-rhel7:fe77272021867cc6b6d5d0c9bd06c99d4024ad53f1ab94ec0ab69d0fda74588e: reading manifest fe77272021867cc6b6d5d0c9bd06c99d4024ad53f1ab94ec0ab69d0fda74588e in localhost:55000/3scale-amp2/system-rhel7: manifest unknownCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンソールまたはログファイルで、どの Operator が不完全であるかを示す警告を確認します。
Operator が不完全としてフラグ付けされている場合、その Operator に関連するイメージのミラーリングに失敗した可能性があります。
- 不足しているイメージを手動でミラーリングするか、ミラーリングプロセスを再試行します。
生成されたクラスターリソースに関連するエラーを確認します。一部のイメージのミラーリングに失敗した場合でも、oc-mirror v2 は、正常にミラーリングされたイメージに対して
IDMS.yamlファイルやITMS.yamlファイルなどのクラスターリソースを生成します。- 生成されたファイルの出力ディレクトリーを確認します。
- 特定のイメージでこれらのファイルが見つからない場合、ミラーリングプロセス中にそれらのイメージに重大なエラーが発生していないことを確認します。
これらの手順に従うことで、問題をより適切に診断し、よりスムーズにミラーリングを実行できます。
3.5.8. エンクレーブサポートの利点 リンクのコピーリンクがクリップボードにコピーされました!
エンクレーブサポートは、ネットワークの特定部分への内部アクセスを制限します。ファイアウォール境界を通過する受信トラフィックおよび送信トラフィックのアクセスを許可する非武装地帯 (DMZ) ネットワークとは異なり、エンクレーブはファイアウォール境界を越えません。
エンクレーブサポートはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、以下のリンクを参照してください。
新しいエンクレーブサポート機能は、少なくとも 1 つの中間非接続ネットワークの背後で保護された複数のエンクレーブのミラーリングが必要な場合に使用します。
エンクレーブサポートには次の利点があります。
- 複数のエンクレーブのコンテンツをミラーリングし、単一の内部レジストリーに集約できます。ミラーリングされたコンテンツに対してセキュリティーチェックを実行する必要がある場合もありますが、そのようなチェックもこのセットアップですべて一度に実行できます。その後、コンテンツはダウンストリームのエンクレーブにミラーリングされる前に検査されます。
- 各エンクレーブに対してインターネットからミラーリングプロセスを再開することなく、集約された内部レジストリーからエンクレーブにコンテンツを直接ミラーリングできます。
- ネットワークステージ間のデータ転送を最小限に抑え、ステージ間で Blob またはイメージが 1 回だけ転送されるようにできます。
3.5.8.1. エンクレーブへのミラーリングのワークフロー リンクのコピーリンクがクリップボードにコピーされました!
上の画像は、インターネット接続のある環境とない環境を含むさまざまな環境で oc-mirror プラグインを使用するフローの概要を示しています。
インターネット接続環境:
- ユーザーが oc-mirror プラグイン v2 を実行して、オンラインレジストリーのコンテンツをローカルディスクディレクトリーにミラーリングします。
- ミラーリングしたコンテンツを、オフライン環境への転送用のディスクに保存します。
非接続の企業環境 (インターネットなし):
フロー 1:
-
ユーザーが oc-mirror プラグイン v2 を実行して、オンライン環境から転送されたディスクディレクトリーのミラーリングされたコンテンツを
enterprise-registry.inレジストリーにロードします。
-
ユーザーが oc-mirror プラグイン v2 を実行して、オンライン環境から転送されたディスクディレクトリーのミラーリングされたコンテンツを
フロー 2:
-
registries.confファイルを更新した後、ユーザーは oc-mirror プラグイン v2 を実行して、enterprise-registry.inレジストリーのコンテンツをエンクレーブ環境にミラーリングします。 - コンテンツを、エンクレーブへの転送用のディスクディレクトリーに保存します。
-
エンクレーブ環境 (インターネットなし):
-
ユーザーが oc-mirror プラグイン v2 を実行して、ディスクディレクトリーのコンテンツを
enclave-registry.inレジストリーにロードします。
この画像は、これらの環境全体のデータフローを視覚的に表しており、インターネット接続のない非接続環境やエンクレーブ環境に対応するために oc-mirror を使用することを強調しています。
3.5.8.2. エンクレーブへのミラーリング リンクのコピーリンクがクリップボードにコピーされました!
エンクレーブにミラーリングする場合は、まず 1 つ以上のエンクレーブから必要なイメージをエンタープライズ集約レジストリーに転送する必要があります。
中央レジストリーは、セキュアなネットワーク内 (具体的には非接続環境内) に配置されており、パブリックインターネットに直接リンクされていません。ただしユーザーは、パブリックインターネットにアクセスできる環境で oc mirror を実行する必要があります。
手順
非接続環境で oc-mirror プラグイン v2 を実行する前に、
registries.confファイルを作成します。ファイルの TOML 形式は、この仕様で説明されています。注記ファイルは、
$HOME/.config/containers/registries.confまたは/etc/containers/registries.confに保存することが推奨されます。registries.confの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow ミラーアーカイブを生成します。
すべての OpenShift Container Platform コンテンツを
<file_path>/enterprise-content配下のディスクのアーカイブに収集するには、次のコマンドを実行します。oc mirror --v2 -c isc.yaml file://<file_path>/enterprise-content
$ oc mirror --v2 -c isc.yaml file://<file_path>/enterprise-contentCopy to Clipboard Copied! Toggle word wrap Toggle overflow isc.yaml の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成されたアーカイブは、非接続環境に転送されます。トランスポートメカニズムは、oc-mirror プラグイン v2 に含まれていません。転送ストラテジーは、エンタープライズネットワーク管理者が決定します。
場合によっては、ディスクをある場所から物理的に取り外し、非接続環境内の別のコンピューターに接続することで、手動で転送します。その他の場合、セキュアファイル転送プロトコル (SFTP) またはその他のプロトコルを使用します。
アーカイブの転送が完了したら、次の例のとおり、oc-mirror プラグイン v2 を再度実行して関連するアーカイブの内容をレジストリー (例では
entrerpise_registry.in) にミラーリングできます。oc mirror --v2 -c isc.yaml --from file://<disconnected_environment_file_path>/enterprise-content docker://<enterprise_registry.in>/
$ oc mirror --v2 -c isc.yaml --from file://<disconnected_environment_file_path>/enterprise-content docker://<enterprise_registry.in>/Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
-
--fromは、アーカイブを含むフォルダーを指します。file://で始まります。 -
docker://はミラーリングの宛先であり、最後の引数です。Docker レジストリーであるため、そのようになります。 -
-c(--config) は必須の引数です。これにより、oc-mirror プラグイン v2 は最終的にアーカイブのサブ部分のみをレジストリーにミラーリングできます。1 つのアーカイブに複数の OpenShift Container Platform リリースが含まれる場合がありますが、非接続環境またはエンクレーブではそのうちのいくつかのみミラーリングされる可能性があります。
-
エンクレーブにミラーリングするコンテンツを記述する
imageSetConfigYAML ファイルを準備します。isc-enclave.yaml の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 非接続レジストリーにアクセスできるマシン上で、oc-mirror プラグイン v2 を実行する必要があります。上記の例では、非接続環境
enterprise-registry.inにアクセスできます。グラフの URL を更新する
graph:trueを使用している場合、oc-mirror プラグイン v2 はcincinnatiAPI エンドポイントに到達しようとします。この環境は接続されていないため、OpenShift Update Service (OSUS) の URL を参照するためには環境変数UPDATE_URL_OVERRIDEをエクスポートする必要があります。export UPDATE_URL_OVERRIDE=https://<osus.enterprise.in>/graph
$ export UPDATE_URL_OVERRIDE=https://<osus.enterprise.in>/graphCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift クラスターで OSUS を設定する方法の詳細は、「OpenShift Update Service を使用した非接続環境でのクラスターの更新」を参照してください。
注記OpenShift Container Platform の Extended Update Support (EUS) バージョン間で更新する場合は、現在のバージョンとターゲットバージョン間の中間マイナーバージョンのイメージも含める必要があります。oc-mirror プラグイン v2 は必ずしもこの要件を自動的に検出するとは限りません。そのため、Red Hat OpenShift Container Platform Update Graph ページ で、必要な中間バージョンを確認してください。
Update Graph ページを使用して、アプリケーションによって提案される中間マイナーバージョンを確認してください。また、oc-mirror プラグイン v2 を使用するときに、該当するバージョンをすべて
ImageSetConfigurationファイルに含めてください。エンクレーブのエンタープライズレジストリーからミラーアーカイブを生成します。
enclave1のアーカイブを準備するには、ユーザーはそのエンクレーブ固有のimageSetConfigurationを使用して、エンタープライズ非接続環境で oc-mirror プラグイン v2 を実行します。これにより、そのエンクレーブに必要なイメージのみがミラーリングされます。oc mirror --v2 -c isc-enclave.yaml file:///disk-enc1/
$ oc mirror --v2 -c isc-enclave.yaml file:///disk-enc1/Copy to Clipboard Copied! Toggle word wrap Toggle overflow このアクションは、OpenShift Container Platform のすべてのコンテンツをアーカイブに収集し、ディスク上にアーカイブを生成します。
-
生成されたアーカイブは、
enclave1ネットワークに転送されます。トランスポートメカニズムは、oc-mirror プラグイン v2 の責任にはあたりません。 エンクレーブレジストリーにコンテンツをミラーリングする
アーカイブの転送が完了すると、ユーザーは関連するアーカイブの内容をレジストリーにミラーリングするために、oc-mirror プラグイン v2 を再度実行できます。
oc mirror --v2 -c isc-enclave.yaml --from file://local-disk docker://registry.enc1.in
$ oc mirror --v2 -c isc-enclave.yaml --from file://local-disk docker://registry.enc1.inCopy to Clipboard Copied! Toggle word wrap Toggle overflow これで、
enclave1の OpenShift Container Platform クラスターの管理者が、そのクラスターをインストールまたはアップグレードする準備が整いました。
3.5.9. Operator カタログでのフィルタリング リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror プラグイン v2 は、imageSetConfig の情報を処理することで、ミラーリングするバンドルのリストを選択します。
oc-mirror プラグイン v2 は、ミラーリングするバンドルを選択するときに、Group Version Kind (GVK) またはバンドルの依存関係を推測せず、それらをミラーリングセットから除外します。代わりに、ユーザーの指示に厳密に従います。必要な依存関係パッケージとそのバージョンを明示的に指定する必要があります。
通常、バンドルバージョンではセマンティックバージョニングの標準 (SemVer) が使用され、チャネル内のバンドルをバージョン別に並べ替えることができます。ImageSetConfig で特定の範囲内のバンドルを選択できます。
この選択アルゴリズムにより、oc-mirror プラグイン v1 と比較して一貫性のある結果を得ることができます。ただし、replaces、skip、skipRange などのアップグレードグラフの詳細は含まれません。このアプローチは OLM アルゴリズムとは異なります。minVersion と maxVersion の間のアップグレードパスが短くなる可能性があるため、クラスターのアップグレードに必要な数よりも多くのバンドルがミラーリングされる可能性があります。
| ImageSetConfig Operator のフィルタリング | 予想されるバンドルバージョン |
|---|---|
| シナリオ 1 mirror: operators: - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.10
| カタログ内の各パッケージに対し、そのパッケージのデフォルトチャネルのヘッドバージョンに対応する 1 つのバンドル。 |
| シナリオ 2 mirror:
operators:
- catalog: registry.redhat.io/redhat/redhat-operator-index:v4.10
full: true
| 指定されたカタログのすべてのチャネルのすべてのバンドル |
| シナリオ 3 mirror:
operators:
- catalog: registry.redhat.io/redhat/redhat-operator-index:v4.10
packages:
- name: compliance-operator
| そのパッケージのデフォルトチャネルのヘッドバージョンに対応する 1 つのバンドル |
| シナリオ 4 | 指定されたパッケージのすべてのチャネルのすべてのバンドル |
| シナリオ 5 |
|
| シナリオ 6 |
そのパッケージの |
| シナリオ 7 |
そのパッケージの |
| シナリオ 8 | そのパッケージの選択されたチャネルのヘッドバンドル。 |
| シナリオ 9 | 指定されたパッケージとチャネルのすべてのバンドル。 |
| シナリオ 10 | そのパッケージの選択された各チャネルのヘッドバンドル。 |
| シナリオ 11 |
そのパッケージの選択されたチャネル内の、 |
| シナリオ 12 |
そのパッケージの選択されたチャネル内の、 |
| シナリオ 13 |
そのパッケージの選択されたチャネル内の、アップグレードグラフからの最短パスに依存しない、 |
| シナリオ 14 | 各パッケージに指定されたバンドルのみがフィルタリングに含まれます。 |
| シナリオ 15 |
このシナリオは使用しないでください。チャネルでのフィルタリング、および |
| シナリオ 16 |
このシナリオは使用しないでください。 |
| シナリオ 17 |
このシナリオは使用しないでください。 |
3.5.10. oc-mirror プラグイン v2 の ImageSet 設定パラメーター リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror プラグイン v2 には、ミラーリングするイメージを定義するイメージセット設定ファイルが必要です。次の表に、ImageSetConfiguration リソースで使用可能なパラメーターを示します。
-
ミラーリング用のバンドルを選択する場合、oc-mirror プラグイン v2 はグループ/バージョン/種類(GVK)およびバンドルの依存関係を自動的に検出しません。
ImageSetConfigurationファイルに、必要な Operator、それらのチャネル、および Operator バージョンを明示的に指定する必要があります。詳細は、opm CLI reference を参照してください。 -
minVersionおよびmaxVersionプロパティーを使用して特定の Operator バージョン範囲をフィルターすると、複数のチャネルヘッドエラーが発生する可能性があります。エラーメッセージには、multiple channel headsがあることが示されます。これは、フィルターを適用すると、Operator の更新グラフが切り捨てられるためです。 - OLM の要件として、すべての Operator チャネルに、1 つのエンドポイント (つまり最新バージョンの Operator) を持つ更新グラフを構成するバージョンが含まれている必要があります。フィルター範囲を適用すると、更新グラフが 2 つ以上の個別のグラフ、または複数のエンドポイントを持つグラフに変換されることがあります。
-
このエラーを回避するには、最新バージョンの Operator を除外しないでください。それでもエラーが発生する場合は、Operator に応じて、
maxVersionプロパティーを増やすか、minVersionプロパティーを減らす必要があります。Operator グラフはそれぞれ異なる可能性があるため、エラーが解決するまでこれらの値を調整する必要がある場合があります。
| パラメーター | 説明 | 値 |
|---|---|---|
|
|
|
文字列の例: |
|
| イメージセット内の各アーカイブファイルの最大サイズ (GiB 単位)。 |
整数の例: |
|
|
|
ブール値のサンプル |
|
| イメージセットの設定。 | オブジェクト |
|
| イメージセットの追加のイメージ設定。 | オブジェクトの配列 以下に例を示します。 additionalImages: - name: registry.redhat.io/ubi8/ubi:latest
|
|
| ミラーリングするイメージのタグまたはダイジェスト。 |
文字列の例: |
|
| ミラーリングをブロックするタグまたはダイジェスト (SHA) を持つイメージのリスト。 |
文字列配列の例: |
|
| イメージセットの Operators 設定。 | オブジェクトの配列 以下に例を示します。 operators:
- catalog: registry.redhat.io/redhat/redhat-operator-index:4.17
packages:
- name: elasticsearch-operator
minVersion: '2.4.0'
|
|
| イメージセットに含める Operator カタログ。 |
文字列の例: |
|
|
|
ブール値。デフォルト値は |
|
| Operator パッケージ設定 | オブジェクトの配列 以下に例を示します。 operators:
- catalog: registry.redhat.io/redhat/redhat-operator-index:4.17
packages:
- name: elasticsearch-operator
minVersion: '5.2.3-31'
|
|
| イメージセットに含める Operator パッケージ名 |
文字列の例: |
|
| Operator パッケージのチャネル設定。 | オブジェクト |
|
| イメージセットに含める、パッケージ内で一意の Operator チャネル名。 |
文字列の例: |
|
| Operator が存在するすべてのチャネルでミラーリングする最上位バージョンの Operator。 |
文字列の例: |
|
| 存在するすべてのチャネル間でミラーリングする Operator の最低バージョン。 |
文字列の例: |
|
| Operator が存在するすべてのチャネルでミラーリングする最上位バージョンの Operator。 |
文字列の例: |
|
| 存在するすべてのチャネル間でミラーリングする Operator の最低バージョン。 |
文字列の例: |
|
| 選択したバンドルの設定 | オブジェクトの配列 以下に例を示します。 |
|
| ミラーリング対象として選択されたバンドルの名前 (カタログに表示される名前)。 |
文字列の例: |
|
| 参照されるカタログをミラーリングするための代替名とオプションの namespace 階層。 |
文字列の例: |
|
| oc-mirror プラグイン v2 が生成した catalogSource カスタムリソースを完了するために使用するテンプレートのディスク上のパス。 |
文字列の例: |
|
|
|
文字列の例: |
|
| イメージセットのプラットフォーム設定。 | オブジェクト |
|
| ミラーリングするプラットフォームリリースペイロードのアーキテクチャー。 | 文字列の配列例:
デフォルト値は |
|
| イメージセットのプラットフォームチャネル設定。 | オブジェクトの配列の例: channels: - name: stable-4.12 - name: stable-4.17
|
|
|
|
ブール値。デフォルト値は |
|
| リリースチャネルの名前。 |
文字列の例: |
|
| ミラーリングされる参照プラットフォームの最小バージョン。 |
文字列の例: |
|
| ミラーリングされる参照プラットフォームの最上位バージョン。 |
文字列の例: |
|
| 最短パスミラーリングまたはフルレンジミラーリングを切り替えます。 |
ブール値。デフォルト値は |
|
| ミラーリングするプラットフォームのタイプ。 |
文字列の例: |
|
| OSUS グラフがイメージセットに追加され、その後ミラーに公開されるかどうかを示します。 |
ブール値。デフォルト値は |
3.5.10.1. ImageSet 設定パラメーターを削除する リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror プラグイン v2 を使用するには、ミラーレジストリーから削除するイメージを定義するイメージセット削除設定ファイルが必要です。次の表は、DeleteImageSetConfiguration リソースで使用可能なパラメーターを示しています。
| パラメーター | 説明 | 値 |
|---|---|---|
|
|
|
文字列の例: |
|
| 削除するイメージセットの設定。 | オブジェクト |
|
| 削除イメージセットの追加イメージ設定。 | オブジェクトの配列の例: additionalImages: - name: registry.redhat.io/ubi8/ubi:latest
|
|
| 削除するイメージのタグまたはダイジェスト。 |
文字列の例: |
|
| 削除イメージセットの Operator の設定。 | オブジェクトの配列の例: operators:
- catalog: registry.redhat.io/redhat/redhat-operator-index:{product-version}
packages:
- name: elasticsearch-operator
minVersion: '2.4.0'
|
|
| 削除イメージセットに含める Operator カタログ。 |
文字列の例: |
|
| true の場合、完全なカタログ、Operator パッケージ、または Operator チャネルが削除されます。 |
ブール値。デフォルト値は |
|
| Operator パッケージ設定 | オブジェクトの配列の例: operators:
- catalog: registry.redhat.io/redhat/redhat-operator-index:{product-version}
packages:
- name: elasticsearch-operator
minVersion: '5.2.3-31'
|
|
| 削除イメージセットに含める Operator パッケージ名。 |
文字列の例: |
|
| Operator パッケージのチャネル設定。 | オブジェクト |
|
| 削除イメージセットに含める、パッケージ内で一意の Operator チャネル名。 |
文字列の例: |
|
| 選択したチャネル内で削除する Operator の最大バージョン。 |
文字列の例: |
|
| Operator が存在する選択範囲内で削除する Operator の最小バージョン。 |
文字列の例: |
|
| Operator が存在するすべてのチャネルで削除する最大バージョンの Operator。 |
文字列の例: |
|
| Operator が存在するすべてのチャネルで削除する最小バージョンの Operator。 |
文字列の例: |
|
| 選択したバンドル設定 | オブジェクトの配列 同じ Operator に対してチャネルとバンドルの両方を選択することはできません。 以下に例を示します。 |
|
| 削除対象として選択したバンドルの名前 (カタログに表示される名前) |
文字列の例: |
|
| イメージセットのプラットフォーム設定。 | オブジェクト |
|
| 削除するプラットフォームリリースペイロードのアーキテクチャー。 | 文字列の配列例:
デフォルト値は |
|
| イメージセットのプラットフォームチャネル設定。 | オブジェクトの配列 以下に例を示します。 channels: - name: stable-4.12 - name: stable-4.17
|
|
|
|
ブール値。デフォルト値は |
|
| リリースチャネルの名前。 |
文字列の例: |
|
| 削除する参照プラットフォームの最小バージョン。 |
文字列の例: |
|
| 削除する参照プラットフォームの最大バージョン。 |
文字列の例: |
|
| 最短パスの削除と全範囲の削除を切り替えます。 |
ブール値。デフォルト値は |
|
| 削除するプラットフォームのタイプ |
文字列の例: |
|
| ミラーレジストリー上の OSUS グラフも削除するかどうかを指定します。 |
ブール値。デフォルト値は |
3.5.11. oc-mirror プラグイン v2 のコマンドリファレンス リンクのコピーリンクがクリップボードにコピーされました!
次の表は、oc-mirror プラグイン v2 の oc mirror サブコマンドとフラグを説明しています。
| サブコマンド | 説明 |
|---|---|
|
| サブコマンドに関するヘルプを表示します。 |
|
| oc-mirror バージョンを出力します。 |
|
| リモートレジストリーとローカルキャッシュ内のイメージを削除します。 |
| フラグ | 説明 |
|---|---|
|
|
認証ファイルの文字列パスを表示します。デフォルトは |
|
| イメージセット設定ファイルへのパスを指定します。 |
|
| コンテナーレジストリーまたはデーモンにアクセスするには HTTPS が必要であり、証明書が検証されます。 |
|
| イメージをミラーリングせずにアクションを出力します。 |
|
| oc-mirror プラグイン v2 を実行してターゲットレジストリーをロードすることで生成されたイメージセットアーカイブへのパスを指定します。 |
|
| ヘルプを表示します。 |
|
|
文字列のログレベルを表示します。サポートされる値には、info、debug、trace、error などがあります。デフォルトは |
|
|
oc-mirror プラグイン v2 のローカルストレージインスタンスが使用する HTTP ポートを指定します。デフォルトは |
|
|
ネストされたパスを制限する宛先レジストリーのネストされたパスの最大数を指定します。デフォルトは |
|
|
デフォルト値は |
|
|
指定した日付以降のすべての新しいコンテンツが含まれます (形式: |
|
| コンテナーレジストリーまたはデーモンにアクセスするには HTTPS が必要であり、証明書が検証されます。 |
|
|
デフォルト値は |
|
| oc-mirror プラグイン v2 のバージョンを表示します。 |
|
| リソースと内部アーティファクトが生成される文字列 oc-mirror プラグイン v2 ワークスペースを指定します。 |
3.5.12. 次のステップ リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror プラグイン v2 を使用して非接続環境にイメージをミラーリングしたら、次のアクションを実行できます。