5.6. 非接続環境からのイメージ削除


以前に oc-mirror プラグイン v2 を使用してイメージをデプロイしたことがある場合は、そのイメージを削除してミラーレジストリーの領域を解放できます。oc-mirror プラグイン v2 は、ImageSetConfiguration ファイルに含まれていないイメージを自動プルーニングしません。そのため、ImageSetConfig.yaml ファイルに変更を加えたときに、必要なイメージやデプロイされたイメージが誤って削除されることはありません。

削除するイメージを指定するには、DeleteImageSetConfiguration ファイルを作成する必要があります。

次の例では、DeleteImageSetConfiguration ファイルで次のイメージを削除します。

  • OpenShift Container Platform 4.13.3 のすべてのリリースイメージ。
  • aws-load-balancer-operator v0.0.1 バンドルと関連するすべてのイメージ。
  • それぞれ対応するダイジェストによって参照される、ubi および ubi-minimal の追加イメージ。

DeleteImageSetConfiguration ファイルの例

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
Copy to Clipboard Toggle word wrap

重要

削除の問題を軽減するために、ミラーからディスクへのミラーリングワークフローとディスクからミラーへのミラーリングワークフローの使用を検討してください。

oc-mirror プラグイン v2 はイメージのマニフェストのみを削除します。そのため、レジストリーの占有されているストレージは削減されません。

マニフェストが削除されたイメージなど、不要なイメージが使用するストレージ領域を解放するには、コンテナーレジストリーでガベージコレクターを有効にする必要があります。ガベージコレクターを有効にすると、レジストリーはマニフェストへの参照がなくなったイメージ Blob を削除します。そのため、削除された Blob が使用していたストレージが削減されます。ガベージコレクターを有効にするプロセスは、コンテナーレジストリーによって異なります。

詳細は、「ディストリビューションレジストリーのストレージクリーンアップ問題の解決」を参照してください。

重要
  • Operator イメージを削除するときに Operator カタログイメージの削除をスキップするには、DeleteImageSetConfiguration ファイル内の Operator カタログイメージの下に特定の Operator をリストする必要があります。そうすることで、カタログイメージではなく、指定された Operator のみが削除されます。

    Operator カタログイメージのみを指定した場合、そのカタログ内のすべての Operator とカタログイメージ自体が削除されます。

  • oc-mirror プラグイン v2 は、Operator カタログイメージを自動的に削除しません。他の Operator がまだデプロイされていて、これらのイメージに依存している可能性があるためです。

    カタログの Operator がレジストリーまたはクラスターに残っていないことが確実な場合は、DeleteImageSetConfigurationadditionalImages にカタログイメージを明示的に追加して削除できます。

  • レジストリーによってガベージコレクションの動作が異なります。一部のレジストリーでは、削除されたイメージが自動的に削除されません。そのため、システム管理者が手動でガベージコレクションをトリガーして領域を解放する必要があります。

5.6.1. ディストリビューションレジストリーのストレージクリーンアップ問題の解決

ディストリビューションレジストリーの既知の問題により、ガベージコレクターが期待どおりにストレージを解放できません。この問題は、Red Hat Quay を使用する場合には発生しません。

手順

  • 適切な方法を選択して、ディストリビューションレジストリーの既知の問題を回避します。

    • コンテナーレジストリーを再起動するには、次のコマンドを実行します。

      $ podman restart <registry_container>
      Copy to Clipboard Toggle word wrap
    • レジストリー設定でキャッシュを無効にするには、次の手順を実行します。

      1. blobdescriptor キャッシュを無効にするために、/etc/docker/registry/config.yml ファイルを変更します。

        version: 0.1
        log:
          fields:
            service: registry
        storage:
          cache:
            blobdescriptor: ""
          filesystem:
            rootdirectory: /var/lib/registry
        http:
          addr: :5000
          headers:
            X-Content-Type-Options: [nosniff]
        health:
          storagedriver:
            enabled: true
            interval: 10s
            threshold: 3
        Copy to Clipboard Toggle word wrap
      2. 変更を適用するために、次のコマンドを実行してコンテナーレジストリーを再起動します。

        $ podman restart <registry_container>
        Copy to Clipboard Toggle word wrap

5.6.2. 非接続環境からイメージを削除する

oc-mirror プラグイン v2 を使用して非接続環境からイメージを削除するには、次の手順に従います。

前提条件

  • マニフェストを参照しなくなったイメージを削除するために、環境でガベージコレクションを有効にした。

手順

  1. delete-image-set-config.yaml ファイルを作成し、次の内容を含めます。

    DeleteImageSetConfiguration ファイル

    apiVersion: mirror.openshift.io/v2alpha1
    kind: DeleteImageSetConfiguration
    delete:
      platform:
        channels:
          - name: <channel_name> 
    1
    
            minVersion: <channel_min_version> 
    2
    
            maxVersion: <channel_max_version> 
    3
    
      operators:
        - catalog: <operator_catalog_name> 
    4
    
          packages:
          - name: <operator_name> 
    5
    
             minVersion: <operator_max_version> 
    6
    
             maxVersion: <operator_min_version> 
    7
    
      additionalImages:
        - name: <additional_images>
    Copy to Clipboard Toggle word wrap

    1 1
    削除する OpenShift Container Platform チャネルの名前を指定します (例: stable-4.15)。
    2 3
    チャネル内の削除するイメージのバージョン範囲を指定します。たとえば、最小バージョンとして 4.15.0、最大バージョンとして 4.15.1 を指定します。1 つのバージョンのイメージのみを削除するには、minVersion フィールドと maxVersion フィールドの両方にそのバージョン番号を使用します。
    4
    削除する Operator を含む Operator カタログイメージを指定します (例: registry.redhat.io/redhat/redhat-operator-index:v4.14)。Operator カタログイメージは削除されません。クラスターに残っている他の Operator が、レジストリー内に存在するイメージを必要する場合があります。
    5
    削除する特定の Operator (例: aws-load-balancer-operator) を指定します。
    6 7
    Operator に対して削除するイメージのバージョン範囲を指定します。たとえば、最小バージョンとして 0.0.1、最大バージョンとして 0.0.2 を指定します。
  2. 次のコマンドを実行して、delete-images.yaml ファイルを作成します。

    $ oc mirror delete --config delete-image-set-config.yaml --workspace file://<previously_mirrored_work_folder> --v2 --generate docker://<remote_registry>
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    <previously_mirrored_work_folder>
    以前、ミラーリングプロセス中にイメージがミラーリングまたは保存されたディレクトリーを指定します。
    <remote_registry>

    イメージの削除元となるリモートコンテナーレジストリーの URL またはアドレスを指定します。

    重要

    イメージを削除するときは、正しいワークスペースディレクトリーを指定してください。新しいクラスターのセットアップなど、ミラーリングを最初から開始する場合にのみ、キャッシュディレクトリーを変更または削除してください。キャッシュディレクトリーに誤った変更を加えると、それ以降のミラーリング操作が中断される可能性があります。

  3. 作成された <previously_mirrored_work_folder>/delete ディレクトリーに移動します。
  4. delete-images.yaml ファイルが生成されたことを確認します。
  5. ファイルにリストされている各イメージがクラスターで不要になり、レジストリーから安全に削除できることを手動で確認します。
  6. delete-images YAML ファイルを生成した後、次のコマンドを実行してリモートレジストリーからイメージを削除します。

    $ oc mirror delete --v2 --delete-yaml-file <previously_mirrored_work_folder>/working-dir/delete/delete-images.yaml docker://<remote_registry>
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    <previously_mirrored_work_folder>
    以前、ミラーリングプロセス中にイメージがミラーリングまたは保存されたディレクトリーを指定します。
    <remote_registry>

    イメージの削除元となるリモートコンテナーレジストリーの URL またはアドレスを指定します。

    重要

    mirror-to-mirror 方式を使用してイメージをミラーリングする場合、イメージはローカルにキャッシュされないため、ローカルキャッシュからイメージを削除することはできません。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat