oc-mirror v2で変わるOpenShiftのミラー運用:v1との違いと実践手順

OpenShiftのDisconnected環境では、必要なイメージ群を事前にミラーリングして、外部レジストリに依存せずにクラスタを構築・運用できます。2024年以降、oc-mirror v2 が正式に登場し、従来のv1から大きく進化しました。

この記事では、v1との違い移行のポイント実践手順、ディレクトリ構造を見ていきます。

目次

🧭 oc-mirrorとは?

oc-mirror は、OpenShift CLI (oc) に追加するプラグインで、Disconnected環境向けに必要なイメージ群(OpenShift本体、Operator、Helmチャート、追加イメージなど)をミラーレジストリに転送するためのツールです。

主な機能

  • OpenShiftのリリースイメージ、Operator、Helmチャート、追加イメージを一括ミラー
  • 宣言型の設定ファイル(ImageSetConfiguration)による柔軟な制御
  • インクリメンタルミラーリング(差分更新)
  • v2ではイメージ削除機能(DeleteImageSetConfiguration)も追加

🧭 oc-mirror v1とv2の違い

項目v1v2
実行方法oc mirroroc mirror --v2
アーキテクチャ単一構造(MirrorOptions)モジュール構造(ExecutorSchema)
並列処理逐次処理バッチ並列処理(channelベース)
キャッシュメタデータベースファイルキャッシュベース
削除機能自動プルーニングDeleteImageSetConfiguration による明示的削除
出力リソースICSPIDMS / ITMS
ローカルレジストリファイル操作HTTP API対応のレジストリサービス
エラーハンドリング基本的なログコンテキスト付き詳細ログ
ディレクトリ構造oc-mirror-workspaceworkspace/working-dir に統一

🔄 v1はOpenShift 4.18で非推奨となり、将来的に削除予定です。v2への移行が推奨されています。

🛠️ oc-mirror v2 実践手順

1. ImageSetConfiguration の作成

imagesetconfiguration.yaml

kind: ImageSetConfiguration
apiVersion: mirror.openshift.io/v2alpha1
mirror:
  platform:
    channels:
      - name: stable-4.18
        minVersion: 4.18.15
        maxVersion: 4.18.15
        graph: true
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.18
      packages:
        - name: cluster-logging
          channels:
            - name: stable-6.2
              minVersion: "6.2.2"
              maxVersion: "6.2.2"
  helm: {}
  additionalImages:
    - name: registry.redhat.io/ubi9/ubi:latest
storageConfig:
  local:
    path: ./oc-mirror-workspace
 

2. ミラー実行コマンド

以下はローカルディレクリの./oc-mirror-workspaceに、イメージをミラーリングする例です。

oc-mirror --config=imageset-config.yaml file://./oc-mirror-workspace --v2 \
--workspace file://./ \
--cache-dir ./cache-dir \
--image-timeout 30m \
--retry-delay 30s \
--retry-times 4 \
--parallel-images 1 \
--src-tls-verify false \
--log-level debug

📁 oc-mirror v2で生成されるディレクトリ構造

./
├── cache-dir/                # イメージキャッシュ
├── workspace/                # 中間ファイル・メタ情報
│   ├── cluster-resources/    # IDMS, ITMS, CatalogSourceなど
│   ├── logs/                 # 実行ログ
│   ├── release-images/       # OCPリリースイメージ
│   ├── hold-release/         # リリースメタ情報
│   └── signatures/           # イメージ署名
└── oc-mirror-workspace/      # 成果物(tar形式など)
    ├── metadata/
    ├── manifests/
    ├── image-set/
    └── helm/

🧠 cluster-resources/ にある ImageDigestMirrorSetImageTagMirrorSet をクラスタに適用することで、Disconnected環境でもミラー済みイメージを参照可能になります。

🧹 v2でのイメージ削除方法

v2では自動削除が廃止され、明示的に削除対象を定義する DeleteImageSetConfiguration を使用します。

delete-imagesetconfiguration.yaml

kind: DeleteImageSetConfiguration
apiVersion: mirror.openshift.io/v2alpha1
delete:
  platform:
    channels:
      - name: stable-4.18
        minVersion: 4.18.15
        maxVersion: 4.18.15

削除コマンド:

以下はミラーレジストリから直接イメージを削除する例です。

oc mirror --v2 delete --generate \
--config deleteimagesetconfig.yaml \
--workspace file://./workspace \
docker://registry.example.com:8443

🎯 まとめ

oc-mirror v2 は、OpenShiftのDisconnected運用をより安全・効率的に進化させるツールです。
v1と比較すると、v2ではImageSetConfigurationにおける追記管理が不要となり、都度ミラーするイメージのみ  を定義すれば良い、という運用に変更されました。また、クラスターに適用するIDMSやカタログソースのインクリメント管理、ICSPからIDMSへの変換が不要となり、運用がとても楽になりました。
v1からの移行は必須となるため、早めの対応をおすすめします。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次