5.7. 非接続環境からのイメージ削除
oc-mirror プラグイン v2 を使用する前に、以前にデプロイしたイメージを削除する必要があります。oc-mirror プラグイン v2 では、自動プルーニングは実行されなくなりました。
oc-mirror プラグイン v2 を使用する場合は、イメージ設定を削除するために DeleteImageSetConfiguration ファイルを作成する必要があります。これにより、ImageSetConfig.yaml で変更を加えたときに、必要なイメージやデプロイされたイメージの誤削除がなくなります。
次の例では、DeleteImageSetConfiguration で以下が削除されます。
- OpenShift Container Platform リリース 4.13.3 のすべてのイメージ。
-
カタログイメージ
redhat-operator-indexv4.12。 -
aws-load-balancer-Operatorv0.0.1 バンドルと関連するすべてのイメージ。 -
対応するダイジェストが参照する追加イメージ
ubiおよびubi-minimal。
例: DeleteImageSetConfig
apiVersion: mirror.openshift.io/v2alpha1
kind: DeleteImageSetConfiguration
delete:
platform:
channels:
- name: stable-4.13
minVersion: 4.13.3
maxVersion: 4.13.3
operators:
- catalog: registry.redhat.io/redhat/redhat-operator-index:v4.12
packages:
- name: aws-load-balancer-operator
minVersion: 0.0.1
maxVersion: 0.0.1
additionalImages:
- name: registry.redhat.io/ubi8/ubi@sha256:bce7e9f69fb7d4533447232478fd825811c760288f87a35699f9c8f030f2c1a6
- name: registry.redhat.io/ubi8/ubi-minimal@sha256:8bedbe742f140108897fb3532068e8316900d9814f399d676ac78b46e740e34e
- 削除の問題を軽減するために、ミラーからディスクへのミラーリングワークフローとディスクからミラーへのミラーリングワークフローの使用を検討してください。
-
oc-mirror プラグイン v2 では、
additionalImagesにリストされているすべてのイメージに明示的なレジストリーホスト名を使用する必要があります。それ以外の場合、イメージは誤ったターゲットパスにミラーリングされます。
イメージ削除ワークフローでは、oc-mirror プラグイン v2 はイメージのマニフェストのみを削除するため、レジストリーで占有されるストレージは削減されません。
マニフェストが削除されたイメージなど、不要なイメージが使用するストレージ領域を解放するには、コンテナーレジストリーでガベージコレクターを有効にする必要があります。ガベージコレクターを有効にすると、レジストリーはマニフェストへの参照がなくなったイメージ Blob を削除します。そのため、削除された Blob が使用していたストレージが削減されます。ガベージコレクターを有効にする方法は、コンテナーレジストリーにより異なります。
イメージの削除時に Operator カタログイメージの削除をスキップするには、DeleteImageSetConfiguration ファイル内の Operator カタログイメージの下に特定の Operator をリストする必要があります。そうすることで、カタログイメージではなく、指定された Operator のみが削除されます。
Operator カタログイメージのみを指定した場合、そのカタログ内のすべての Operator とカタログイメージ自体が削除されます。
5.7.1. 非接続環境からイメージを削除する リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror プラグイン v2 を使用して非接続環境からイメージを削除するには、次の手順に従います。
手順
以前のイメージを削除する YAML ファイルを作成します。
$ oc mirror delete --config delete-image-set-config.yaml --workspace file://<previously_mirrored_work_folder> --v2 --generate docker://<remote_registry>ここでは、以下のようになります。
-
<previously_mirrored_work_folder>: ミラーリングプロセス中に、イメージが以前にミラーリングまたは保存されたディレクトリーを使用します。 -
<remote_registry>: 削除するイメージがあるリモートコンテナーレジストリーの URL またはアドレスを挿入します。
-
-
作成された
<previously_mirrored_work_folder>/delete directoryに移動します。 -
delete-images.yamlファイルが生成されたことを確認します。 - ファイルにリストされている各イメージがクラスターで不要になり、レジストリーから安全に削除できることを手動で確認します。
deleteYAML ファイルを生成した後に、リモートレジストリーからイメージを削除します。$ oc mirror delete --v2 --delete-yaml-file <previously_mirrored_work_folder>/delete/delete-images.yaml docker:/ <remote_registry>ここでは、以下のようになります。
<previously_mirrored_work_folder>: 以前にミラーリングした作業フォルダーを指定します。重要mirror-to-mirror 手順を使用する場合、イメージはローカルにキャッシュされないため、ローカルキャッシュからイメージを削除することはできません。