非接続インストールミラーリング


OpenShift Container Platform 4.14

インストールコンテナーイメージのミラーリング

Red Hat OpenShift Documentation Team

概要

このドキュメントでは、切断された OpenShift Container Platform インストールのインストールコンテナーイメージをミラーリングする方法を説明します。

第1章 非接続インストールミラーリングについて

クラスター管理者はミラーレジストリーを使用して、クラスターが、外部コンテンツに対する組織の制御条件を満たすコンテナーイメージのみを使用するようにすることができます。

1.1. 非接続環境にクラスターをインストールするためのミラーレジストリー

クラスターをインストールしてプロビジョニングする前に、必要なコンテナーイメージを非接続環境にミラーリングする必要があります。これらのコンテナーイメージをミラーリングするには、ミラーレジストリーが必要です。ミラーレジストリーを作成して使用する場合、次のオプションを検討してください。

  • Red Hat Quay などのコンテナーイメージレジストリーがすでにある場合は、それをミラーレジストリーとして使用できます。レジストリーがまだない場合は、作成する必要があります。
  • レジストリーを確立した後は、ミラーリングツールが必要になります。OpenShift Container Platform イメージリポジトリーを非接続環境のミラーレジストリーにミラーリングするには、oc-mirror OpenShift CLI (oc) プラグインを使用します。oc-mirror プラグインは、必要なすべての OpenShift Container Platform コンテンツとその他のイメージをミラーレジストリーにミラーリングする単一のツールです。oc-mirror プラグインはミラーリングに推奨される方法です。
  • または、oc adm コマンドを使用して、OpenShift Container Platform のリリースイメージとカタログイメージのみをミラーリングすることもできます。

第2章 mirror registry for Red Hat OpenShift を使用したミラーレジストリーの作成

mirror registry for Red Hat OpenShift は、非接続環境でのインストールに使用する OpenShift Container Platform の必要なコンテナーイメージをミラーリングするためのターゲットとして使用できる、小規模で効率的なコンテナーレジストリーです。

Red Hat Quay などのコンテナーイメージレジストリーがすでにある場合は、このセクションをスキップして、OpenShift Container Platform イメージリポジトリーのミラーリング に直接進むことができます。

重要

mirror registry for Red Hat OpenShift は、Red Hat Quay の実稼働デプロイメントの代替となることを意図したものではありません。

2.1. 前提条件

  • OpenShift Container Platform サブスクリプション
  • Podman 3.4.2 以降および OpenSSL がインストールされている Red Hat Enterprise Linux (RHEL) 8 および 9。
  • Red Hat Quay サービスの完全修飾ドメイン名。DNS サーバーを介して解決する必要があります。
  • ターゲットホストでのキーベースの SSH 接続。SSH キーは、ローカルインストール用に自動的に生成されます。リモートホストの場合は、独自の SSH キーを生成する必要があります。
  • vCPU 2 つ以上。
  • RAM 8 GB。
  • OpenShift Container Platform 4.14 リリースイメージの場合は約 12 GB、OpenShift Container Platform 4.14 リリースイメージおよび OpenShift Container Platform 4.14 Red Hat Operator イメージの場合は約 358 GB。

    重要
    • ストリームあたり最大 1 TB 以上が推奨されます。
    • これらの要件は、リリースイメージと Operator イメージのみを使用したローカルテスト結果に基づいています。ストレージ要件は、組織のニーズによって異なります。たとえば、複数の z-stream をミラーリングする場合は、より多くのスペースが必要になることがあります。標準の Red Hat Quay 機能 または適切な API コールアウト を使用して不要なイメージを削除し、スペースを解放できます。

2.2. mirror registry for Red Hat OpenShift の概要

OpenShift Container Platform の切断されたデプロイメントの場合に、クラスターのインストールを実行するためにコンテナーレジストリーが必要です。このようなクラスターで実稼働レベルのレジストリーサービスを実行するには、別のレジストリーデプロイメントを作成して最初のクラスターをインストールする必要があります。Red Hat Openshift 導入用のミラーレジストリー は、このニーズに対応し、すべての OpenShift サブスクリプションに含まれています。これは、OpenShift コンソールの ダウンロード ページからダウンロードできます。

mirror registry for Red Hat OpenShift を使用すると、ユーザーは、mirror-registry コマンドラインインターフェイス (CLI) ツールを使用して、Red Hat Quay の小規模バージョンとその必要なコンポーネントをインストールできます。mirror registry for Red Hat OpenShift は、事前設定されたローカルストレージとローカルデータベースを使用して自動的にデプロイされます。また、このレジストリーには、自動生成されたユーザー認証情報とアクセス許可も含まれており、単一の入力セットを使用するだけで開始でき、追加の設定を選択する必要はありません。

mirror registry for Red Hat OpenShift は、事前に決定されたネットワーク設定を提供し、成功時にデプロイされたコンポーネントの認証情報とアクセス URL を報告します。完全修飾ドメイン名 (FQDN) サービス、スーパーユーザー名とパスワード、カスタム TLS 証明書などのオプションの設定入力のセットも少しだけ含まれています。これにより、ユーザーはコンテナーレジストリーを利用できるため、制限されたネットワーク環境で OpenShift Container Platform を実行するときに、すべての OpenShift Container Platform リリースコンテンツのオフラインミラーを簡単に作成できます。

インストール環境で別のコンテナーレジストリーがすでに使用可能な場合、mirror registry for Red Hat OpenShift の使用はオプションです。

2.2.1. mirror registry for Red Hat OpenShift に関する制限

mirror registry for Red Hat OpenShift には次の制限が適用されます。

  • mirror registry for Red Hat OpenShift は高可用性レジストリーではなく、ローカルファイルシステムストレージのみがサポートされます。Red Hat Quay や OpenShift Container Platform の内部イメージレジストリーを置き換えることを目的としたものではありません。
  • mirror registry for Red Hat OpenShift は、Red Hat Quay の実稼働デプロイメントの代替となることを意図したものではありません。
  • Red Hat Openshift 導入用のミラーレジストリー は、リリースイメージや Red Hat Operator イメージなど、切断された OpenShift Container Platform クラスターのインストールに必要なイメージのホスティングでのみサポートされます。Red Hat Enterprise Linux (RHEL)マシンでローカルストレージを使用し、RHEL でサポートされているストレージは、Red Hat Openshift 導入用のミラーレジストリー でサポートされます

    注記

    mirror registry for Red Hat OpenShift はローカルストレージを使用します。そのため、イメージをミラーリングするときには、消費されるストレージの使用量に常に注意し、潜在的な問題を軽減するために Red Hat Quay のガベージコレクション機能を使用してください。この機能の詳細は、「Red Hat Quay ガベージコレクション」を参照してください。

  • ブートストラップ目的で Red Hat OpenShift のミラーレジストリー にプッシュされた Red Hat 製品イメージの サポートは、それぞれの製品の有効なサブスクリプションでカバーされます。ブートストラップエクスペリエンスをさらに有効にする例外のリストは、セルフマネージド Red Hat OpenShift のサイジングおよびサブスクリプションガイド に記載されています。
  • お客様が作成したコンテンツは、mirror registry for Red Hat OpenShift でホストしないでください。
  • クラスターのグループの更新時にクラスターが複数あると単一障害点を生み出す可能性があるため、複数のクラスターで mirror registry for Red Hat OpenShift を使用することは推奨されません。代わりに、mirror registry for Red Hat OpenShift を使用して、OpenShift Container Platform コンテンツを他のクラスターに提供できる Red Hat Quay などの実稼働グレードの高可用性レジストリーをホストできるクラスターをインストールします。

2.3. mirror registry for Red Hat OpenShift を使用したローカルホストでのミラーリング

この手順では、 mirror-registry インストーラーツールを使用して、Red Hat Openshift 導入用 のミラーレジストリー をローカルホストにインストールする方法を説明します。このツールを使用することで、ユーザーは、OpenShift Container Platform イメージのミラーを保存する目的で、ポート 443 で実行されるローカルホストレジストリーを作成できます。

注記

mirror-registry CLI ツールを使用して mirror registry for Red Hat OpenShift をインストールすると、マシンにいくつかの変更が加えられます。インストール後、インストールファイル、ローカルストレージ、および設定バンドルを含む $HOME/quay-install ディレクトリーが作成されます。デプロイ先がローカルホストである場合には、信頼できる SSH キーが生成され、コンテナーのランタイムが永続的になるようにホストマシン上の systemd ファイルが設定されます。さらに、init という名前の初期ユーザーが、自動生成されたパスワードを使用して作成されます。すべてのアクセス認証情報は、インストール操作の最後に出力されます。

手順

  1. OpenShift コンソールの ダウンロード ページにある mirror registry for Red Hat OpenShift の最新バージョンは、mirror-registry.tar.gz パッケージをダウンロードしてください。
  2. mirror-registry ツールを使用して、現在のユーザーアカウントでローカルホストに mirror registry for Red Hat OpenShift をインストールします。使用可能なフラグの完全なリストは、「Red Hat OpenShift フラグのミラーレジストリー」を参照してください。

    $ ./mirror-registry install \
      --quayHostname <host_example_com> \
      --quayRoot <example_directory_name>
    Copy to Clipboard Toggle word wrap
  3. インストール中に生成されたユーザー名とパスワードを使用して、次のコマンドを実行してレジストリーにログインします。

    $ podman login -u init \
      -p <password> \
      <host_example_com>:8443> \
      --tls-verify=false 
    1
    Copy to Clipboard Toggle word wrap
    1
    生成された rootCA 証明書を信頼するようにシステムを設定して、--tls-verify=false の実行を回避できます。詳細は、「Red Hat Quay の保護」および「認証局を信頼するようにシステムを設定する」を参照してください。
    注記

    インストール後、https://<host.example.com>:8443 で UI にアクセスしてログインすることもできます。

  4. ログイン後、OpenShift Container Platform イメージをミラーリングできます。必要に応じて、このドキュメントの「OpenShift Container Platform イメージリポジトリーのミラーリング」または、「非接続クラスターで使用する Operator カタログのミラーリング」セクションを参照してください。

    注記

    ストレージレイヤーの問題が原因で Red Hat Openshift 導入用のミラーレジストリー で保存されたイメージに問題がある場合は、OpenShift Container Platform イメージを再ミラーリングするか、より安定したストレージにミラーレジストリーを再インストールできます。

2.4. ローカルホストからの mirror registry for Red Hat OpenShift の更新

この手順では、upgrade コマンドを使用してローカルホストから Red Hat Openshift 導入用のミラーレジストリー を更新する方法について説明します。最新バージョンに更新することで、新機能、バグ修正およびセキュリティー脆弱性の修正が保証されます。

重要

バージョン 1 からバージョン 2 にアップグレードする場合は、次の制約に注意してください。

  • SQLite では複数の書き込みが許可されていないため、ワーカー数が 1 に設定されます。
  • mirror registry for Red Hat OpenShift のユーザーインターフェイス (UP) を使用しないでください。
  • アップグレード中は sqlite-storage Podman ボリュームにアクセスしないでください。
  • アップグレードプロセス中にミラーレジストリーが再起動されるため、ミラーレジストリーのダウンタイムが断続的に発生します。
  • PostgreSQL のデータは、復旧用に /$HOME/quay-install/quay-postgres-backup/ ディレクトリーにバックアップされます。

前提条件

  • mirror registry for Red Hat OpenShift をローカルホストにインストールしている。

手順

  • mirror registry for Red Hat OpenShift を 1.3 → 2.y にアップグレードする場合、インストールディレクトリーがデフォルトの /etc/quay-install である場合は、次のコマンドを入力できます。

    $ sudo ./mirror-registry upgrade -v
    Copy to Clipboard Toggle word wrap
    注記
    • mirror registry for Red Hat OpenShift は、Red Hat Quay ストレージ、Postgres データ、および /etc/quay-install データの Podman ボリュームを新しい $HOME/quay-install の場所に移行します。これにより、今後のアップグレード時に --quayRoot フラグなしで mirror registry for Red Hat OpenShift を使用できます。
    • ./mirror-registry upgrade -v フラグを使用して mirror registry for Red Hat OpenShift をアップグレードする場合は、ミラーレジストリーの作成時に使用したものと同じ認証情報を含める必要があります。たとえば、mirror registry for Red Hat OpenShift--quayHostname <host_example_com> および --quayRoot <example_directory_name> でインストールした場合、ミラーレジストリーを適切にアップグレードするには、その文字列を含める必要があります。
  • mirror registry for Red Hat OpenShift を 1.3 → 2.y にアップグレードする場合、1.y デプロイメントでカスタムの quay 設定とストレージディレクトリーを使用していた場合は、--quayRoot フラグと --quayStorage フラグを渡す必要があります。以下に例を示します。

    $ sudo ./mirror-registry upgrade --quayHostname <host_example_com> --quayRoot <example_directory_name>  --quayStorage <example_directory_name>/quay-storage -v
    Copy to Clipboard Toggle word wrap
  • mirror registry for Red Hat OpenShift を 1.3 → 2.y にアップグレードし、カスタムの SQLite ストレージパスを指定する場合は、--sqliteStorage フラグを渡す必要があります。次に例を示します。

    $ sudo ./mirror-registry upgrade --sqliteStorage <example_directory_name>/sqlite-storage -v
    Copy to Clipboard Toggle word wrap

検証

  1. 次のコマンドを実行して、mirror registry for Red Hat OpenShift が更新されていることを確認します。

    $ podman ps
    Copy to Clipboard Toggle word wrap

    出力例

    registry.redhat.io/quay/quay-rhel8:v3.12.10
    Copy to Clipboard Toggle word wrap

2.5. mirror registry for Red Hat OpenShift を使用したリモートホストでのミラーリング

この手順では、mirror-registry ツールを使用して、mirror registry for Red Hat OpenShift をリモートホストにインストールする方法を説明します。そうすることで、ユーザーは OpenShift Container Platform イメージのミラーを保持するレジストリーを作成できます。

注記

mirror-registry CLI ツールを使用して mirror registry for Red Hat OpenShift をインストールすると、マシンにいくつかの変更が加えられます。インストール後、インストールファイル、ローカルストレージ、および設定バンドルを含む $HOME/quay-install ディレクトリーが作成されます。デプロイ先がローカルホストである場合には、信頼できる SSH キーが生成され、コンテナーのランタイムが永続的になるようにホストマシン上の systemd ファイルが設定されます。さらに、init という名前の初期ユーザーが、自動生成されたパスワードを使用して作成されます。すべてのアクセス認証情報は、インストール操作の最後に出力されます。

手順

  1. OpenShift コンソールの ダウンロード ページにある mirror registry for Red Hat OpenShift の最新バージョンは、mirror-registry.tar.gz パッケージをダウンロードしてください。
  2. mirror-registry ツールを使用して、現在のユーザーアカウントでローカルホストに mirror registry for Red Hat OpenShift をインストールします。使用可能なフラグの完全なリストは、「Red Hat OpenShift フラグのミラーレジストリー」を参照してください。

    $ ./mirror-registry install -v \
      --targetHostname <host_example_com> \
      --targetUsername <example_user> \
      -k ~/.ssh/my_ssh_key \
      --quayHostname <host_example_com> \
      --quayRoot <example_directory_name>
    Copy to Clipboard Toggle word wrap
  3. インストール中に生成されたユーザー名とパスワードを使用して、次のコマンドを実行してミラーレジストリーにログインします。

    $ podman login -u init \
      -p <password> \
      <host_example_com>:8443> \
      --tls-verify=false 
    1
    Copy to Clipboard Toggle word wrap
    1
    生成された rootCA 証明書を信頼するようにシステムを設定して、--tls-verify=false の実行を回避できます。詳細は、「SSL を使用した Red Hat Quay への接続の保護」および、「認証局を信頼するようにシステムを設定する」を参照してください。
    注記

    インストール後、https://<host.example.com>:8443 で UI にアクセスしてログインすることもできます。

  4. ログイン後、OpenShift Container Platform イメージをミラーリングできます。必要に応じて、このドキュメントの「OpenShift Container Platform イメージリポジトリーのミラーリング」または、「非接続クラスターで使用する Operator カタログのミラーリング」セクションを参照してください。

    注記

    ストレージレイヤーの問題が原因で Red Hat Openshift 導入用のミラーレジストリー で保存されたイメージに問題がある場合は、OpenShift Container Platform イメージを再ミラーリングするか、より安定したストレージにミラーレジストリーを再インストールできます。

2.6. リモートホストからの mirror registry for Red Hat OpenShift の更新

この手順では、upgrade コマンドを使用してリモートホストから mirror registry for Red Hat OpenShift を更新する方法を説明します。最新バージョンへの更新により、バグ修正およびセキュリティー脆弱性の修正が確保されます。

重要

バージョン 1 からバージョン 2 にアップグレードする場合は、次の制約に注意してください。

  • SQLite では複数の書き込みが許可されていないため、ワーカー数が 1 に設定されます。
  • mirror registry for Red Hat OpenShift のユーザーインターフェイス (UP) を使用しないでください。
  • アップグレード中は sqlite-storage Podman ボリュームにアクセスしないでください。
  • アップグレードプロセス中にミラーレジストリーが再起動されるため、ミラーレジストリーのダウンタイムが断続的に発生します。
  • PostgreSQL のデータは、復旧用に /$HOME/quay-install/quay-postgres-backup/ ディレクトリーにバックアップされます。

前提条件

  • mirror registry for Red Hat OpenShift をリモートホストにインストールしている。

手順

  • mirror registry for Red Hat OpenShift をリモートホストからアップグレードするには、以下のコマンドを入力します。

    $ ./mirror-registry upgrade -v --targetHostname <remote_host_url> --targetUsername <user_name> -k ~/.ssh/my_ssh_key
    Copy to Clipboard Toggle word wrap
    注記

    ./mirror-registry upgrade -v フラグを使用して mirror registry for Red Hat OpenShift をアップグレードするユーザーは、ミラーレジストリーの作成時に使用したものと同じクレデンシャルを含める必要があります。たとえば、mirror registry for Red Hat OpenShift--quayHostname <host_example_com> および --quayRoot <example_directory_name> でインストールした場合、ミラーレジストリーを適切にアップグレードするには、その文字列を含める必要があります。

  • mirror registry for Red Hat OpenShift を 1.3 → 2.y にアップグレードし、カスタムの SQLite ストレージパスを指定する場合は、--sqliteStorage フラグを渡す必要があります。次に例を示します。

    $ ./mirror-registry upgrade -v --targetHostname <remote_host_url> --targetUsername <user_name> -k ~/.ssh/my_ssh_key --sqliteStorage <example_directory_name>/quay-storage
    Copy to Clipboard Toggle word wrap

検証

  1. 次のコマンドを実行して、mirror registry for Red Hat OpenShift が更新されていることを確認します。

    $ podman ps
    Copy to Clipboard Toggle word wrap

    出力例

    registry.redhat.io/quay/quay-rhel8:v3.12.10
    Copy to Clipboard Toggle word wrap

2.7. Red Hat OpenShift SSL/TLS 証明書のミラーレジストリーの置き換え

mirror registry for Red Hat OpenShift の SSL/TLS 証明書を更新する必要がある場合もあるはずです。これは、以下のシナリオで役に立ちます。

  • 現在の mirror registry for Red Hat OpenShift 証明書を置き換える場合。
  • 以前の mirror registry for Red Hat OpenShift インストールと同じ証明書を使用している場合。
  • mirror registry for Red Hat OpenShift 証明書を定期的に更新している場合。

mirror registry for Red Hat OpenShift の SSL/TLS 証明書を置き換えるには、次の手順を使用します。

前提条件

手順

  1. 次のコマンドを入力して、mirror registry for Red Hat OpenShift をインストールします。

    $ ./mirror-registry install \
    --quayHostname <host_example_com> \
    --quayRoot <example_directory_name>
    Copy to Clipboard Toggle word wrap

    mirror registry for Red Hat OpenShift$HOME/quay-install ディレクトリーにインストールされます。

  2. 新しい認証局 (CA) バンドルを準備し、新しい ssl.key および ssl.crt キーファイルを生成します。詳細は、Red Hat Quay の SSL および TLS の設定 を参照してください。
  3. 次のコマンドを入力して、/$HOME/quay-install に環境変数 (QUAY など) を割り当てます。

    $ export QUAY=/$HOME/quay-install
    Copy to Clipboard Toggle word wrap
  4. 次のコマンドを入力して、新しい ssl.crt ファイルを /$HOME/quay-install ディレクトリーにコピーします。

    $ cp ~/ssl.crt $QUAY/quay-config
    Copy to Clipboard Toggle word wrap
  5. 次のコマンドを入力して、新しい ssl.key ファイルを /$HOME/quay-install ディレクトリーにコピーします。

    $ cp ~/ssl.key $QUAY/quay-config
    Copy to Clipboard Toggle word wrap
  6. 次のコマンドを入力して、quay-app アプリケーション Pod を再起動します。

    $ systemctl --user restart quay-app
    Copy to Clipboard Toggle word wrap

2.8. mirror registry for Red Hat OpenShift のアンインストール

ローカルホストから mirror registry for Red Hat OpenShift をアンインストールするには、次の手順に従います。

前提条件

  • mirror registry for Red Hat OpenShift をローカルホストにインストールした。

手順

  • 次のコマンドを実行して、ローカルホストから mirror registry for Red Hat OpenShift をアンインストールします。

    $ ./mirror-registry uninstall -v \
      --quayRoot <example_directory_name>
    Copy to Clipboard Toggle word wrap
    注記
    • Red Hat Openshift 導入用のミラーレジストリー を削除すると、 削除前にユーザーにプロンプトが表示されます。--autoApprove を使用して、このプロンプトをスキップできます。
    • --quayRoot フラグを指定して mirror registry for Red Hat OpenShift をインストールした場合には、アンインストール時に --quayRoot フラグを含める必要があります。たとえば、mirror registry for Red Hat OpenShift のインストールで --quayRoot example_directory_name を指定した場合には、この文字列を追加して、ミラーレジストリーを適切にアンインストールする必要があります。

2.9. mirror registry for Red Hat OpenShift のフラグ

mirror registry for Red Hat OpenShift では、次のフラグを使用できます。

Expand
フラグ説明

--autoApprove

対話型プロンプトを無効にするブール値。true に設定すると、ミラーレジストリーをアンインストールするときに quayRoot ディレクトリーが自動的に削除されます。指定しない場合には、デフォルトは false に設定されます。

--initPassword

Quay のインストール中に作成された init ユーザーのパスワード。空白を含まず、8 文字以上にする必要があります。

--initUser string

初期ユーザーのユーザー名を表示します。指定しない場合、デフォルトで init になります。

--no-color-c

インストール、アンインストール、およびアップグレードコマンドの実行時に、ユーザーがカラーシーケンスを無効にして、それを Ansible に伝播できるようにします。

--quayHostname

クライアントがレジストリーへの接続に使用するミラーレジストリーの完全修飾ドメイン名。Quay config.yamlSERVER_HOSTNAME に相当します。DNS で解決する必要があります。指定しない場合は、デフォルトは <targetHostname>:8443 です。[1]

--quayStorage

Quay 永続ストレージデータが保存されるフォルダー。デフォルトは quay-storage Podman ボリュームです。アンインストールには root 権限が必要です。

--quayRoot-r

rootCA.keyrootCA.pemrootCA.srl 証明書など、コンテナーイメージレイヤーと設定データが保存されるディレクトリー。指定しない場合、デフォルトは $HOME/quay-install です。

--sqliteStorage

SQLite データベースデータが保存されるフォルダー。指定されていない場合は、デフォルトで sqlite-storage Podman ボリュームになります。アンインストールするには root が必要です。

--ssh-key-k

SSH ID キーのパス。指定しない場合、デフォルトは ~/.ssh/quay_installer です。

--sslCert

SSL/TLS 公開鍵/証明書へのパス。デフォルトは {quayRoot}/quay-config で、指定しない場合は自動生成されます。

--sslCheckSkip

config.yaml ファイルの SERVER_HOSTNAME に対する証明書のホスト名のチェックをスキップします。[2]

--sslKey

HTTPS 通信に使用される SSL/TLS 秘密鍵へのパス。デフォルトは {quayRoot}/quay-config で、指定しない場合は自動生成されます。

--targetHostname-H

Quay のインストール先のホスト名。デフォルトは $HOST になります。たとえば、指定していない場合にはローカルホストになります。

--targetUsername-u

SSH に使用するターゲットホストのユーザー。デフォルトは $USER です。たとえば、指定しない場合は現在のユーザーになります。

--verbose-v

デバッグログと Ansible Playbook の出力を表示します。

--version

mirror registry for Red Hat OpenShift のバージョンを表示します。

  1. システムのパブリック DNS 名がローカルホスト名と異なる場合は、--quayHostname を変更する必要があります。さらに、--quayHostname フラグは、IP アドレスを使用したインストールをサポートしていません。ホスト名を使用してインストールする必要があります。
  2. --sslCheckSkip は、ミラーレジストリーがプロキシーの背後に設定されており、公開されているホスト名が内部の Quay ホスト名と異なる場合に使用されます。また、インストール中に、指定した Quay ホスト名に対して証明書の検証を行わない場合にも使用できます。

2.10. mirror registry for Red Hat OpenShift のリリースノート

mirror registry for Red Hat OpenShift は、非接続環境でのインストールに使用する OpenShift Container Platform の必要なコンテナーイメージをミラーリングするためのターゲットとして使用できる、小規模で効率的なコンテナーレジストリーです。

以下のリリースノートは、OpenShift Container Platform の mirror registry for Red Hat OpenShift の開発履歴を記録したものです。

2.10.1. mirror registry for Red Hat OpenShift 2.0 のリリースノート

以下のセクションでは、mirror registry for Red Hat OpenShift の 2.0 リリースの詳細をそれぞれ説明します。

2.10.1.1. Mirror registry for Red Hat OpenShift 2.0.7

発行日: 2025 年 7 月 14 日

Mirror registry for Red Hat OpenShift が Red Hat Quay 3.12.10 で利用できるようになりました。

mirror registry for Red Hat OpenShift には、次のアドバイザリーが提供されています。

2.10.1.2. Mirror registry for Red Hat OpenShift 2.0.6

発行日: 2025 年 4 月 28 日

mirror registry for Red Hat OpenShift が Red Hat Quay 3.12.8 で利用できるようになりました。

mirror registry for Red Hat OpenShift には、次のアドバイザリーが提供されています。

2.10.1.3. mirror registry for Red Hat OpenShift 2.0.5

発行日: 2025 年 1 月 13 日

mirror registry for Red Hat OpenShift が Red Hat Quay 3.12.5 で利用できるようになりました。

mirror registry for Red Hat OpenShift には、次のアドバイザリーが提供されています。

2.10.1.4. mirror registry for Red Hat OpenShift 2.0.4

発行日: 2025 年 1 月 6 日

mirror registry for Red Hat OpenShift が Red Hat Quay 3.12.4 で利用できるようになりました。

mirror registry for Red Hat OpenShift には、次のアドバイザリーが提供されています。

2.10.1.5. mirror registry for Red Hat OpenShift 2.0.3

発行日: 2024 年 11 月 25 日

mirror registry for Red Hat OpenShift が Red Hat Quay 3.12.3 で利用できるようになりました。

mirror registry for Red Hat OpenShift には、次のアドバイザリーが提供されています。

2.10.1.6. mirror registry for Red Hat OpenShift 2.0.2

発行日: 2024 年 10 月 31 日

mirror registry for Red Hat OpenShift が Red Hat Quay 3.12.2 で利用できるようになりました。

mirror registry for Red Hat OpenShift には、次のアドバイザリーが提供されています。

2.10.1.7. mirror registry for Red Hat OpenShift 2.0.1

発行日: 2024 年 9 月 26 日

mirror registry for Red Hat OpenShift が Red Hat Quay 3.12.1 で利用できるようになりました。

mirror registry for Red Hat OpenShift には、次のアドバイザリーが提供されています。

2.10.1.8. mirror registry for Red Hat OpenShift 2.0.0

発行日: 2024 年 9 月 3 日

mirror registry for Red Hat OpenShift が Red Hat Quay 3.12.0 で利用できるようになりました。

mirror registry for Red Hat OpenShift には、次のアドバイザリーが提供されています。

mirror registry for Red Hat OpenShift 2.0.0 では、次の新機能を使用できます。

  • mirror registry for Red Hat OpenShift のリリースに伴い、内部データベースが PostgreSQL から SQLite にアップグレードされました。その結果、データがデフォルトで sqlite-storage Podman ボリュームに保存されるようになり、tarball 全体のサイズが 300 MB 削減されました。

    新規インストールではデフォルトで SQLite が使用されます。バージョン 2.0 にアップグレードする前に、環境に応じて「ローカルホストからの mirror registry for Red Hat OpenShift の更新」または「リモートホストからの mirror registry for Red Hat OpenShift の更新」を参照してください。

  • 新しい機能フラグ --sqliteStorage が追加されました。このフラグを使用すると、SQLite データベースのデータを保存する場所を手動で設定できます。
  • mirror registry for Red Hat OpenShift が、IBM Power および IBM Z アーキテクチャー (s390x および ppc64le) で利用できるようになりました。

2.10.2. mirror registry for Red Hat OpenShift 1.3 のリリースノート

mirror registry for Red Hat OpenShift 1.3 のリリースノートを確認するには、mirror registry for Red Hat OpenShift 1.3 のリリースノート を参照してください。

2.10.3. mirror registry for Red Hat OpenShift 1.2 のリリースノート

mirror registry for Red Hat OpenShift 1.2 のリリースノートを確認するには、mirror registry for Red Hat OpenShift 1.2 のリリースノート を参照してください。

2.10.4. mirror registry for Red Hat OpenShift 1.1 のリリースノート

mirror registry for Red Hat OpenShift 1.1 のリリースノートを確認するには、mirror registry for Red Hat OpenShift 1.1 のリリースノート を参照してください。

2.11. mirror registry for Red Hat OpenShift のトラブルシューティング

mirror registry for Red Hat OpenShift のトラブルシューティングに、ミラーレジストリーによってインストールされた systemd サービスのログを収集すると役立ちます。次のサービスがインストールされます。

  • quay-app.service
  • quay-postgres.service
  • quay-redis.service
  • quay-pod.service

前提条件

  • mirror registry for Red Hat OpenShift をインストールした。

手順

  • root 権限で mirror registry for Red Hat OpenShift をインストールした場合は、次のコマンドを入力して systemd サービスのステータス情報を取得できます。

    $ sudo systemctl status <service>
    Copy to Clipboard Toggle word wrap
  • 標準ユーザーとして mirror registry for Red Hat OpenShift をインストールした場合は、次のコマンドを入力して systemd サービスのステータス情報を取得できます。

    $ systemctl --user status <service>
    Copy to Clipboard Toggle word wrap

2.12. 関連情報

第3章 非接続インストールのイメージのミラーリング

クラスターが、外部コンテンツに対する組織の制限条件を満たすコンテナーイメージのみを使用するようにできますネットワークが制限された環境でプロビジョニングするインフラストラクチャーにクラスターをインストールする前に、必要なコンテナーイメージをその環境にミラーリングする必要があります。コンテナーイメージをミラーリングするには、ミラーリング用のレジストリーが必要です。

重要

必要なコンテナーイメージを取得するには、インターネットへのアクセスが必要です。この手順では、ネットワークとインターネットの両方にアクセスできるミラーホストにミラーレジストリーを配置します。ミラーホストにアクセスできない場合は、非接続クラスターで使用する Operator カタログのミラーリング を使用して、ネットワークの境界を越えて移動できるデバイスにイメージをコピーします。

3.1. 前提条件

  • 以下のレジストリーのいずれかなど、OpenShift Container Platform クラスターをホストする場所に Docker v2-2 をサポートするコンテナーイメージレジストリーが必要です。

    Red Hat Quay のライセンスをお持ちの場合は、概念実証のため に、または Red Hat Quay Operator を使用 して Red Hat Quay をデプロイする方法を記載したドキュメントを参照してください。レジストリーの選択とインストールについてさらにサポートが必要な場合は、営業担当者または Red Hat サポートにお問い合わせください。

  • コンテナーイメージレジストリーの既存のソリューションがまだない場合には、OpenShift Container Platform のサブスクライバーに mirror registry for Red Hat OpenShift が提供されます。mirror registry for Red Hat OpenShift はサブスクリプションに含まれており、切断されたインストールで OpenShift Container Platform で必須のコンテナーイメージのミラーリングに使用できる小規模なコンテナーレジストリーです。

3.2. ミラーレジストリーについて

OpenShift Container Platform のインストールとその後の製品更新に必要なイメージは、Red Hat Quay、JFrog Artifactory、Sonatype Nexus Repository、Harbor などのコンテナーミラーレジストリーにミラーリングできます。大規模なコンテナーレジストリーにアクセスできない場合は、OpenShift Container Platform サブスクリプションに含まれる小規模なコンテナーレジストリーである mirror registry for Red Hat OpenShift を使用できます。

Red Hat Quay、mirror registry for Red Hat OpenShift、Artifactory、Sonatype Nexus リポジトリー、Harbor など、Dockerv2-2 をサポートする任意のコンテナーレジストリーを使用できます。選択したレジストリーに関係なく、インターネット上の Red Hat がホストするサイトから分離されたイメージレジストリーにコンテンツをミラーリングする手順は同じです。コンテンツをミラーリングした後に、各クラスターをミラーレジストリーからこのコンテンツを取得するように設定します。

重要

OpenShift イメージレジストリーはターゲットレジストリーとして使用できません。これは、ミラーリングプロセスで必要となるタグを使わないプッシュをサポートしないためです。

mirror registry for Red Hat OpenShift 以外のコンテナーレジストリーを選択する場合は、プロビジョニングするクラスター内のすべてのマシンからそのレジストリーにアクセスできる必要があります。レジストリーに到達できない場合、インストール、更新、またはワークロードの再配置などの通常の操作が失敗する可能性があります。そのため、ミラーレジストリーは可用性の高い方法で実行し、ミラーレジストリーは少なくとも OpenShift Container Platform クラスターの実稼働環境の可用性の条件に一致している必要があります。

ミラーレジストリーを OpenShift Container Platform イメージで設定する場合、2 つのシナリオを実行することができます。インターネットとミラーレジストリーの両方にアクセスできるホストがあり、クラスターノードにアクセスできない場合は、そのマシンからコンテンツを直接ミラーリングできます。このプロセスは、connected mirroring (接続ミラーリング) と呼ばれます。このようなホストがない場合は、イメージをファイルシステムにミラーリングしてから、そのホストまたはリムーバブルメディアを制限された環境に配置する必要があります。このプロセスは、disconnected mirroring (非接続ミラーリング) と呼ばれます。

ミラーリングされたレジストリーの場合は、プルされたイメージのソースを表示するには、CRI-O ログで Trying to access のログエントリーを確認する必要があります。ノードで crictl images コマンドを使用するなど、イメージのプルソースを表示する他の方法では、イメージがミラーリングされた場所からプルされている場合でも、ミラーリングされていないイメージ名を表示します。

注記

Red Hat は、OpenShift Container Platform を使用してサードパーティーのレジストリーをテストしません。

関連情報

CRI-O ログを表示してイメージソースを表示する方法の詳細は、Viewing the image pull source を参照してください。

3.3. ミラーホストの準備

ミラー手順を実行する前に、ホストを準備して、コンテンツを取得し、リモートの場所にプッシュできるようにする必要があります。

3.3.1. バイナリーのダウンロードによる OpenShift CLI のインストール

コマンドラインインターフェイスを使用して OpenShift Container Platform と対話するために CLI (oc) をインストールすることができます。oc は Linux、Windows、または macOS にインストールできます。

重要

以前のバージョンの oc をインストールしている場合、これを使用して OpenShift Container Platform 4.14 のすべてのコマンドを実行することはできません。新規バージョンの oc をダウンロードし、インストールします。

3.3.1.1. Linux への OpenShift CLI のインストール

以下の手順を使用して、OpenShift CLI (oc) バイナリーを Linux にインストールできます。

手順

  1. Red Hat カスタマーポータルの OpenShift Container Platform ダウンロードページ に移動します。
  2. Product Variant ドロップダウンリストからアーキテクチャーを選択します。
  3. バージョン ドロップダウンリストから適切なバージョンを選択します。
  4. OpenShift v4.14 Linux Client エントリーの横にある Download Now をクリックして、ファイルを保存します。
  5. アーカイブを展開します。

    $ tar xvf <file>
    Copy to Clipboard Toggle word wrap
  6. oc バイナリーを、PATH にあるディレクトリーに配置します。

    PATH を確認するには、以下のコマンドを実行します。

    $ echo $PATH
    Copy to Clipboard Toggle word wrap

検証

  • OpenShift CLI のインストール後に、oc コマンドを使用して利用できます。

    $ oc <command>
    Copy to Clipboard Toggle word wrap
3.3.1.2. Windows への OpenShift CLI のインストール

以下の手順を使用して、OpenShift CLI (oc) バイナリーを Windows にインストールできます。

手順

  1. Red Hat カスタマーポータルの OpenShift Container Platform ダウンロードページ に移動します。
  2. バージョン ドロップダウンリストから適切なバージョンを選択します。
  3. OpenShift v4.14 Windows Client エントリーの横にある Download Now をクリックして、ファイルを保存します。
  4. ZIP プログラムでアーカイブを展開します。
  5. oc バイナリーを、PATH にあるディレクトリーに移動します。

    PATH を確認するには、コマンドプロンプトを開いて以下のコマンドを実行します。

    C:\> path
    Copy to Clipboard Toggle word wrap

検証

  • OpenShift CLI のインストール後に、oc コマンドを使用して利用できます。

    C:\> oc <command>
    Copy to Clipboard Toggle word wrap
3.3.1.3. macOS への OpenShift CLI のインストール

以下の手順を使用して、OpenShift CLI (oc) バイナリーを macOS にインストールできます。

手順

  1. Red Hat カスタマーポータルの OpenShift Container Platform ダウンロードページ に移動します。
  2. バージョン ドロップダウンリストから適切なバージョンを選択します。
  3. OpenShift v4.14 macOS Client エントリーの横にある Download Now をクリックして、ファイルを保存します。

    注記

    macOS arm64 の場合は、OpenShift v4.14 macOS arm64 Client エントリーを選択します。

  4. アーカイブを展開し、解凍します。
  5. oc バイナリーをパスにあるディレクトリーに移動します。

    PATH を確認するには、ターミナルを開き、以下のコマンドを実行します。

    $ echo $PATH
    Copy to Clipboard Toggle word wrap

検証

  • oc コマンドを使用してインストールを確認します。

    $ oc <command>
    Copy to Clipboard Toggle word wrap

3.4. イメージのミラーリングを可能にする認証情報の設定

Red Hat からミラーへのイメージのミラーリングを可能にするコンテナーイメージレジストリーの認証情報ファイルを作成します。

警告

クラスターのインストール時に、このイメージレジストリー認証情報ファイルをプルシークレットとして使用しないでください。クラスターのインストール時にこのファイルを指定すると、クラスター内のすべてのマシンにミラーレジストリーへの書き込みアクセスが付与されます。

警告

このプロセスでは、ミラーレジストリーのコンテナーイメージレジストリーへの書き込みアクセスがあり、認証情報をレジストリープルシークレットに追加する必要があります。

前提条件

  • 非接続環境で使用するミラーレジストリーを設定した。
  • イメージをミラーリングするミラーレジストリー上のイメージリポジトリーの場所を特定している。
  • イメージのイメージリポジトリーへのアップロードを許可するミラーレジストリーアカウントをプロビジョニングしている。

手順

インストールホストで以下の手順を実行します。

  1. registry.redhat.io プルシークレットを Red Hat OpenShift Cluster Manager からダウンロードします。
  2. JSON 形式でプルシークレットのコピーを作成します。

    $ cat ./pull-secret | jq . > <path>/<pull_secret_file_in_json> 
    1
    Copy to Clipboard Toggle word wrap
    1
    プルシークレットを保存するフォルダーへのパスおよび作成する JSON ファイルの名前を指定します。

    ファイルの内容は以下の例のようになります。

    {
      "auths": {
        "cloud.openshift.com": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "quay.io": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "registry.connect.redhat.com": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        },
        "registry.redhat.io": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        }
      }
    }
    Copy to Clipboard Toggle word wrap
  3. ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードまたはトークンを生成します。

    $ echo -n '<user_name>:<password>' | base64 -w0 
    1
    
    BGVtbYk3ZHAtqXs=
    Copy to Clipboard Toggle word wrap
    1
    <user_name> および <password> には、レジストリーに設定したユーザー名およびパスワードを指定します。
  4. JSON ファイルを編集し、レジストリーについて記述するセクションをこれに追加します。

      "auths": {
        "<mirror_registry>": { 
    1
    
          "auth": "<credentials>", 
    2
    
          "email": "you@example.com"
        }
      },
    Copy to Clipboard Toggle word wrap
    1
    <mirror_registry> については、レジストリードメイン名と、ミラーレジストリーがコンテンツを提供するために使用するポートをオプションで指定します。例: registry.example.com または registry.example.com:8443
    2
    <credentials> については、ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードを指定します。

    ファイルは以下の例のようになります。

    {
      "auths": {
        "registry.example.com": {
          "auth": "BGVtbYk3ZHAtqXs=",
          "email": "you@example.com"
        },
        "cloud.openshift.com": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "quay.io": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "registry.connect.redhat.com": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        },
        "registry.redhat.io": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        }
      }
    }
    Copy to Clipboard Toggle word wrap

3.5. OpenShift Container Platform イメージリポジトリーのミラーリング

クラスターのインストールまたはアップグレード時に使用するために、OpenShift Container Platform イメージリポジトリーをお使いのレジストリーにミラーリングします。

前提条件

  • ミラーホストがインターネットにアクセスできる。
  • ネットワークが制限された環境で使用するミラーレジストリーを設定し、設定した証明書および認証情報にアクセスできる。
  • Red Hat OpenShift Cluster Manager からプルシークレット をダウンロードし、ミラーリポジトリーへの認証を組み込むように変更している。
  • 自己署名証明書を使用する場合は、証明書にサブジェクトの別名を指定しています。

手順

ミラーホストで以下の手順を実行します。

  1. OpenShift Container Platform ダウンロード ページを確認し、インストールする必要のある OpenShift Container Platform のバージョンを判別し、Repository Tags ページで対応するタグを判別します。
  2. 必要な環境変数を設定します。

    1. リリースバージョンをエクスポートします。

      $ OCP_RELEASE=<release_version>
      Copy to Clipboard Toggle word wrap

      <release_version> について、インストールする OpenShift Container Platform のバージョンに対応するタグを指定します (例: 4.5.4)。

    2. ローカルレジストリー名とホストポートをエクスポートします。

      $ LOCAL_REGISTRY='<local_registry_host_name>:<local_registry_host_port>'
      Copy to Clipboard Toggle word wrap

      <local_registry_host_name> には、ミラーレジストリーのレジストリードメイン名を指定し、<local_registry_host_port> には、コンテンツの送信に使用するポートを指定します。

    3. ローカルリポジトリー名をエクスポートします。

      $ LOCAL_REPOSITORY='<local_repository_name>'
      Copy to Clipboard Toggle word wrap

      <local_repository_name> には、ocp4/openshift4 などのレジストリーに作成するリポジトリーの名前を指定します。

    4. ミラーリングするリポジトリーの名前をエクスポートします。

      $ PRODUCT_REPO='openshift-release-dev'
      Copy to Clipboard Toggle word wrap

      実稼働環境のリリースの場合には、openshift-release-dev を指定する必要があります。

    5. パスをレジストリープルシークレットにエクスポートします。

      $ LOCAL_SECRET_JSON='<path_to_pull_secret>'
      Copy to Clipboard Toggle word wrap

      <path_to_pull_secret> には、作成したミラーレジストリーのプルシークレットの絶対パスおよびファイル名を指定します。

    6. リリースミラーをエクスポートします。

      $ RELEASE_NAME="ocp-release"
      Copy to Clipboard Toggle word wrap

      実稼働環境のリリースは、ocp-release を指定する必要があります。

    7. クラスターのアーキテクチャーのタイプをエクスポートします。

      $ ARCHITECTURE=<cluster_architecture> 
      1
      Copy to Clipboard Toggle word wrap
      1
      x86_64aarch64s390x、または ppc64le など、クラスターのアーキテクチャーを指定します。
    8. ミラーリングされたイメージをホストするためにディレクトリーへのパスをエクスポートします。

      $ REMOVABLE_MEDIA_PATH=<path> 
      1
      Copy to Clipboard Toggle word wrap
      1
      最初のスラッシュ (/) 文字を含む完全パスを指定します。
  3. バージョンイメージをミラーレジストリーにミラーリングします。

    • ミラーホストがインターネットにアクセスできない場合は、以下の操作を実行します。

      1. リムーバブルメディアをインターネットに接続しているシステムに接続します。
      2. ミラーリングするイメージおよび設定マニフェストを確認します。

        $ oc adm release mirror -a ${LOCAL_SECRET_JSON}  \
             --from=quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-${ARCHITECTURE} \
             --to=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} \
             --to-release-image=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE} --dry-run
        Copy to Clipboard Toggle word wrap
      3. 直前のコマンドの出力の imageContentSources セクション全体を記録します。ミラーの情報はミラーリングされたリポジトリーに一意であり、インストール時に imageContentSources セクションを install-config.yaml ファイルに追加する必要があります。
      4. イメージをリムーバブルメディア上のディレクトリーにミラーリングします。

        $ oc adm release mirror -a ${LOCAL_SECRET_JSON} --to-dir=${REMOVABLE_MEDIA_PATH}/mirror quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-${ARCHITECTURE}
        Copy to Clipboard Toggle word wrap
      5. メディアをネットワークが制限された環境に移し、イメージをローカルコンテナーレジストリーにアップロードします。

        $ oc image mirror -a ${LOCAL_SECRET_JSON} --from-dir=${REMOVABLE_MEDIA_PATH}/mirror "file://openshift/release:${OCP_RELEASE}*" ${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} 
        1
        Copy to Clipboard Toggle word wrap
        1
        REMOVABLE_MEDIA_PATH の場合、イメージのミラーリング時に指定した同じパスを使用する必要があります。
        重要

        oc image mirror を実行すると、error: unable to retrieve source image エラーが発生する場合があります。このエラーは、イメージレジストリーに存在しなくなったイメージへの参照がイメージインデックスに含まれている場合に発生します。イメージインデックスは、それらのイメージを実行しているユーザーがアップグレードグラフの新しいポイントへのアップグレードパスを実行できるように、古い参照を保持する場合があります。一時的な回避策として、--skip-missing オプションを使用してエラーを回避し、イメージインデックスのダウンロードを続行できます。詳細は、Service Mesh Operator mirroring failed を参照してください。

    • ローカルコンテナーレジストリーがミラーホストに接続されている場合は、以下の操作を実行します。

      1. 以下のコマンドを使用して、リリースイメージをローカルレジストリーに直接プッシュします。

        $ oc adm release mirror -a ${LOCAL_SECRET_JSON}  \
             --from=quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-${ARCHITECTURE} \
             --to=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} \
             --to-release-image=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE}
        Copy to Clipboard Toggle word wrap

        このコマンドは、リリース情報をダイジェストとしてプルします。その出力には、クラスターのインストール時に必要な imageContentSources データが含まれます。

      2. 直前のコマンドの出力の imageContentSources セクション全体を記録します。ミラーの情報はミラーリングされたリポジトリーに一意であり、インストール時に imageContentSources セクションを install-config.yaml ファイルに追加する必要があります。

        注記

        ミラーリングプロセス中にイメージ名に Quay.io のパッチが適用され、podman イメージにはブートストラップ仮想マシンのレジストリーに Quay.io が表示されます。

  4. ミラーリングしたコンテンツに基づくインストールプログラムを作成するために、インストールプログラムを展開してリリースに固定します。

    • ミラーホストがインターネットにアクセスできない場合は、以下のコマンドを実行します。

      $ oc adm release extract -a ${LOCAL_SECRET_JSON} --icsp-file=<file> --command=openshift-install "${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE}"
      Copy to Clipboard Toggle word wrap
    • ローカルコンテナーレジストリーがミラーホストに接続されている場合は、以下のコマンドを実行します。

      $ oc adm release extract -a ${LOCAL_SECRET_JSON} --command=openshift-install "${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE}"
      Copy to Clipboard Toggle word wrap
      重要

      選択した OpenShift Container Platform のバージョンに適したイメージを確実に使用するために、ミラーリングしたコンテンツからインストールプログラムを展開する必要があります。

      インターネット接続のあるマシンで、このステップを実行する必要があります。

  5. installer-provisioned infrastructure を使用するクラスターの場合は、以下のコマンドを実行します。

    $ openshift-install
    Copy to Clipboard Toggle word wrap

3.6. 非接続環境の Cluster Samples Operator

非接続環境で Cluster Samples Operator を設定するには、クラスターのインストール後に追加の手順を実行する必要があります。以下の情報を確認し、準備してください。

3.6.1. ミラーリングの Cluster Samples Operator のサポート

インストール時に、OpenShift Container Platform は imagestreamtag-to-image という名前の設定マップを openshift-cluster-samples-operator namespace に作成します。imagestreamtag-to-image 設定マップには、各イメージストリームタグのエントリー (設定されるイメージ) が含まれます。

設定マップの data フィールドの各エントリーのキーの形式は、<image_stream_name>_<image_stream_tag_name> です。

OpenShift Container Platform の非接続インストール時に、Cluster Samples Operator のステータスは Removed に設定されます。これを Managed に変更することを選択する場合、サンプルがインストールされます。

注記

ネットワークが制限されている環境または切断されている環境でサンプルを使用するには、ネットワークの外部のサービスにアクセスする必要がある場合があります。サービスの例には、Github、Maven Central、npm、RubyGems、PyPi などがあります。場合によっては、Cluster Samples Operator のオブジェクトが必要なサービスに到達できるようにするために、追加の手順を実行する必要があります。

この config map は、イメージストリームをインポートするためにミラーリングする必要があるイメージの参照情報として使用できます。

  • Cluster Samples Operator が Removed に設定される場合、ミラーリングされたレジストリーを作成するか、使用する必要のある既存のミラーリングされたレジストリーを判別できます。
  • 新しい config map をガイドとして使用し、ミラーリングされたレジストリーに必要なサンプルをミラーリングします。
  • Cluster Samples Operator 設定オブジェクトの skippedImagestreams リストに、ミラーリングされていないイメージストリームを追加します。
  • Cluster Samples Operator 設定オブジェクトの samplesRegistry をミラーリングされたレジストリーに設定します。
  • 次に、Cluster Samples Operator を Managed に設定し、ミラーリングしたイメージストリームをインストールします。

3.7. 非接続クラスターで使用する Operator カタログのミラーリング

oc adm catalog mirror コマンドを使用して、Red Hat が提供するカタログまたはカスタムカタログの Operator コンテンツをコンテナーイメージレジストリーにミラーリングできます。ターゲットレジストリーは Docker v2-2 をサポートする必要があります。ネットワークが制限された環境のクラスターの場合、このレジストリーには、ネットワークが制限されたクラスターのインストール時に作成されたミラーレジストリーなど、クラスターにネットワークアクセスのあるレジストリーを使用できます。

重要
  • OpenShift イメージレジストリーはターゲットレジストリーとして使用できません。これは、ミラーリングプロセスで必要となるタグを使わないプッシュをサポートしないためです。
  • oc adm catalog mirror を実行すると、error: unable to retrieve source image エラーが発生する場合があります。このエラーは、イメージレジストリーに存在しなくなったイメージへの参照がイメージインデックスに含まれている場合に発生します。イメージインデックスは、それらのイメージを実行しているユーザーがアップグレードグラフの新しいポイントへのアップグレードパスを実行できるように、古い参照を保持する場合があります。一時的な回避策として、--skip-missing オプションを使用してエラーを回避し、イメージインデックスのダウンロードを続行できます。詳細は、Service Mesh Operator mirroring failed を参照してください。

oc adm catalog mirror コマンドは、Red Hat が提供するインデックスイメージであるか、独自のカスタムビルドされたインデックスイメージであるかに関係なく、ミラーリングプロセス中に指定されるインデックスイメージをターゲットレジストリーに自動的にミラーリングします。次に、ミラーリングされたインデックスイメージを使用して、Operator Lifecycle Manager (OLM) がミラーリングされたカタログを OpenShift Container Platform クラスターにロードできるようにするカタログソースを作成できます。

3.7.1. 前提条件

非接続クラスターで使用する Operator カタログのミラーリングには、以下の前提条件があります。

  • ネットワークアクセスが無制限のワークステーション
  • podman バージョン 1.9.3 以降。
  • 既存のカタログをフィルタリングまたは プルーニング して、Operator のサブセットのみを選択的にミラーリングする場合は、次のセクションを参照してください。

  • Red Hat が提供するカタログをミラーリングする場合は、ネットワークアクセスが無制限のワークステーションで以下のコマンドを実行し、registry.redhat.io で認証します。

    $ podman login registry.redhat.io
    Copy to Clipboard Toggle word wrap
  • Docker v2-2 をサポートするミラーレジストリーへのアクセス。
  • ミラーレジストリーで、ミラーリングされた Operator コンテンツの保存に使用するリポジトリーまたは namespace を決定します。たとえば、olm-mirror リポジトリーを作成できます。
  • ミラーレジストリーにインターネットアクセスがない場合は、ネットワークアクセスが無制限のワークステーションにリムーバブルメディアを接続します。
  • registry.redhat.io などのプライベートレジストリーを使用している場合、後続の手順で使用するために REG_CREDS 環境変数をレジストリー認証情報のファイルパスに設定します。たとえば podman CLI の場合は、以下のようになります。

    $ REG_CREDS=${XDG_RUNTIME_DIR}/containers/auth.json
    Copy to Clipboard Toggle word wrap

3.7.2. カタログコンテンツの抽出およびミラーリング

oc adm catalog mirror コマンドは、インデックスイメージのコンテンツを抽出し、ミラーリングに必要なマニフェストを生成します。コマンドのデフォルト動作で、マニフェストを生成し、インデックスイメージからのすべてのイメージコンテンツを、インデックスイメージと同様にミラーレジストリーに対して自動的にミラーリングします。

または、ミラーレジストリーが完全に非接続または エアギャップ環境のホスト上にある場合、最初にコンテンツをリムーバブルメディアにミラーリングし、メディアを非接続環境に移行してから、メディアからレジストリーにコンテンツをレジストリーに対してミラーリングできます。

3.7.2.1. 同じネットワーク上のレジストリーへのカタログコンテンツのミラーリング

ミラーレジストリーがネットワークアクセスが無制限のワークステーションと同じネットワーク上に置かれている場合は、ワークステーションで以下のアクションを実行します。

手順

  1. ミラーレジストリーに認証が必要な場合は、以下のコマンドを実行してレジストリーにログインします。

    $ podman login <mirror_registry>
    Copy to Clipboard Toggle word wrap
  2. 以下のコマンドを実行して、コンテンツをミラーレジストリーに対して抽出し、ミラーリングします。

    $ oc adm catalog mirror \
        <index_image> \ 
    1
    
        <mirror_registry>:<port>[/<repository>] \ 
    2
    
        [-a ${REG_CREDS}] \ 
    3
    
        [--insecure] \ 
    4
    
        [--index-filter-by-os='<platform>/<arch>'] \ 
    5
    
        [--manifests-only] 
    6
    Copy to Clipboard Toggle word wrap
    1
    ミラーリングするカタログのインデックスイメージを指定します。
    2
    Operator の内容をミラーリングするターゲットレジストリーの完全修飾ドメイン名 (FQDN) を指定します。ミラーレジストリー <repository> には、前提条件で説明した olm-mirror など、レジストリー上の既存のリポジトリーまたは namespace を指定できます。ミラーリング中に既存のリポジトリーが見つかった場合は、そのリポジトリー名が結果のイメージ名に追加されます。イメージ名にリポジトリー名を含めたくない場合は、この行から <repository> 値を省略します (例: <mirror_registry>:<port>)
    3
    オプション: 必要な場合は、レジストリー認証情報ファイルの場所を指定します。registry.redhat.io には、{REG_CREDS} が必要です。
    4
    オプション: ターゲットレジストリーの信頼を設定しない場合は、--insecure フラグを追加します。
    5
    オプション: 複数のバリアントが利用可能な場合に、選択するインデックスイメージのプラットフォームおよびアーキテクチャーを指定します。イメージは '<platform>/<arch>[/<variant>]' として渡されます。これはインデックスで参照されるイメージには適用されません。有効な値は、linux/amd64linux/ppc64lelinux/s390xlinux/arm64 です。
    6
    オプション: 実際にイメージコンテンツをレジストリーにミラーリングせずに、ミラーリングに必要なマニフェストのみを生成します。このオプションは、ミラーリングする内容を確認するのに役立ちます。また、パッケージのサブセットのみが必要な場合に、マッピングのリストに変更を加えることができます。次に、mapping.txt ファイルを oc image mirror コマンドで使用し、後のステップでイメージの変更済みの一覧をミラーリングできます。これは、カタログからのコンテンツの高度な選択可能ミラーリングの実行に使用するためのフラグです。

    出力例

    src image has index label for database path: /database/index.db
    using database path mapping: /database/index.db:/tmp/153048078
    wrote database to /tmp/153048078 
    1
    
    ...
    wrote mirroring manifests to manifests-redhat-operator-index-1614211642 
    2
    Copy to Clipboard Toggle word wrap

    1
    コマンドで生成された一時的な index.db データベースのディレクトリー。
    2
    生成される manifests ディレクトリー名を記録します。このディレクトリーは、後続の手順で参照されます。
    注記

    Red Hat Quay は、ネストされたリポジトリーをサポートしていません。その結果、oc adm catalog mirror コマンドを実行すると、401 unauthorized エラーで失敗します。回避策として、oc adm catalog mirror コマンドを実行するときに --max-components = 2 オプションを使用して、ネストされたリポジトリーの作成を無効にすることができます。この回避策の詳細は Unauthorized error thrown while using catalog mirror command with Quay registry のナレッジソリューションを参照してください。

3.7.2.2. カタログコンテンツをエアギャップされたレジストリーへのミラーリング

ミラーレジストリーが完全に切断された、またはエアギャップのあるホスト上にある場合は、次のアクションを実行します。

手順

  1. ネットワークアクセスが無制限のワークステーションで以下のコマンドを実行し、コンテンツをローカルファイルにミラーリングします。

    $ oc adm catalog mirror \
        <index_image> \ 
    1
    
        file:///local/index \ 
    2
    
        -a ${REG_CREDS} \ 
    3
    
        --insecure \ 
    4
    
        --index-filter-by-os='<platform>/<arch>' 
    5
    Copy to Clipboard Toggle word wrap
    1
    ミラーリングするカタログのインデックスイメージを指定します。
    2
    現在のディレクトリーのローカルファイルにミラーリングするコンテンツを指定します。
    3
    オプション: 必要な場合は、レジストリー認証情報ファイルの場所を指定します。
    4
    オプション: ターゲットレジストリーの信頼を設定しない場合は、--insecure フラグを追加します。
    5
    オプション: 複数のバリアントが利用可能な場合に、選択するインデックスイメージのプラットフォームおよびアーキテクチャーを指定します。イメージは '<platform>/<arch>[/<variant>]' として指定されます。これはインデックスで参照されるイメージには適用されません。使用できる値は、linux/amd64linux/ppc64lelinux/s390xlinux/arm64、および .*です。

    出力例

    ...
    info: Mirroring completed in 5.93s (5.915MB/s)
    wrote mirroring manifests to manifests-my-index-1614985528 
    1
    
    
    To upload local images to a registry, run:
    
    	oc adm catalog mirror file://local/index/myrepo/my-index:v1 REGISTRY/REPOSITORY 
    2
    Copy to Clipboard Toggle word wrap

    1
    生成される manifests ディレクトリー名を記録します。このディレクトリーは、後続の手順で参照されます。
    2
    提供されたインデックスイメージをベースとする、拡張された file:// パスを記録します。このパスは、後続のステップで参照されます。

    このコマンドにより、現在のディレクトリーに v2/ ディレクトリーが作成されます。

  2. v2/ ディレクトリーをリムーバブルメディアにコピーします。
  3. メディアを物理的に削除して、これをミラーレジストリーにアクセスできる非接続環境のホストに割り当てます。
  4. ミラーレジストリーに認証が必要な場合は、非接続環境のホストで以下のコマンドを実行し、レジストリーにログインします。

    $ podman login <mirror_registry>
    Copy to Clipboard Toggle word wrap
  5. v2/ ディレクトリーを含む親ディレクトリーから以下のコマンドを実行し、ローカルファイルからミラーレジストリーにイメージをアップロードします。

    $ oc adm catalog mirror \
        file://local/index/<repository>/<index_image>:<tag> \ 
    1
    
        <mirror_registry>:<port>[/<repository>] \ 
    2
    
        -a ${REG_CREDS} \ 
    3
    
        --insecure \ 
    4
    
        --index-filter-by-os='<platform>/<arch>' 
    5
    Copy to Clipboard Toggle word wrap
    1
    直前のコマンド出力の file:// パスを指定します。
    2
    Operator の内容をミラーリングするターゲットレジストリーの完全修飾ドメイン名 (FQDN) を指定します。ミラーレジストリー <repository> には、前提条件で説明した olm-mirror など、レジストリー上の既存のリポジトリーまたは namespace を指定できます。ミラーリング中に既存のリポジトリーが見つかった場合は、そのリポジトリー名が結果のイメージ名に追加されます。イメージ名にリポジトリー名を含めたくない場合は、この行から <repository> 値を省略します (例: <mirror_registry>:<port>)
    3
    オプション: 必要な場合は、レジストリー認証情報ファイルの場所を指定します。
    4
    オプション: ターゲットレジストリーの信頼を設定しない場合は、--insecure フラグを追加します。
    5
    オプション: 複数のバリアントが利用可能な場合に、選択するインデックスイメージのプラットフォームおよびアーキテクチャーを指定します。イメージは '<platform>/<arch>[/<variant>]' として指定されます。これはインデックスで参照されるイメージには適用されません。使用できる値は、linux/amd64linux/ppc64lelinux/s390xlinux/arm64、および .*です。
    注記

    Red Hat Quay は、ネストされたリポジトリーをサポートしていません。その結果、oc adm catalog mirror コマンドを実行すると、401 unauthorized エラーで失敗します。回避策として、oc adm catalog mirror コマンドを実行するときに --max-components = 2 オプションを使用して、ネストされたリポジトリーの作成を無効にすることができます。この回避策の詳細は Unauthorized error thrown while using catalog mirror command with Quay registry のナレッジソリューションを参照してください。

  6. oc adm catalog mirror コマンドを再度実行します。新しくミラー化されたインデックスイメージをソースとして使用し、前の手順で使用したものと同じミラーレジストリーターゲットを使用します。

    $ oc adm catalog mirror \
        <mirror_registry>:<port>/<index_image> \
        <mirror_registry>:<port>[/<repository>] \
        --manifests-only \
    1
    
        [-a ${REG_CREDS}] \
        [--insecure]
    Copy to Clipboard Toggle word wrap
    1
    コマンドがミラーリングされたすべてのコンテンツを再度コピーしないように、このステップには --manifests-only フラグが必要です。
    重要

    前のステップで生成された imageContentSourcePolicy.yaml ファイルのイメージマッピングをローカルパスから有効なミラー位置に更新する必要があるため、このステップが必要です。そうしないと、後のステップで ImageContentSourcePolicy オブジェクトを作成するときにエラーが発生します。

カタログのミラーリング後、残りのクラスターインストールを続行できます。クラスターのインストールが正常に完了した後に、この手順から manifests ディレクトリーを指定して ImageContentSourcePolicy および CatalogSource オブジェクトを作成する必要があります。これらのオブジェクトは、OperatorHub からの Operator のインストールを有効にするために必要になります。

3.7.3. 生成されたマニフェスト

Operator カタログコンテンツをミラーレジストリーにミラーリングした後に、現在のディレクトリーに manifests ディレクトリーが生成されます。

同じネットワークのレジストリーにコンテンツをミラーリングする場合、ディレクトリー名は以下のパターンになります。

manifests-<index_image_name>-<random_number>
Copy to Clipboard Toggle word wrap

直前のセクションで非接続ホストのレジストリーにコンテンツをミラーリングする場合、ディレクトリー名は以下のパターンになります。

manifests-index/<repository>/<index_image_name>-<random_number>
Copy to Clipboard Toggle word wrap
注記

manifests ディレクトリー名は、後続の手順で参照されます。

manifests ディレクトリーには以下のファイルが含まれており、これらの一部にはさらに変更が必要になる場合があります。

  • catalogSource.yaml ファイルは、インデックスイメージタグおよび他の関連するメタデータで事前に設定される CatalogSource オブジェクトの基本的な定義です。このファイルは、カタログソースをクラスターに追加するためにそのまま使用したり、変更したりできます。

    重要

    ローカルファイルにコンテンツをミラーリングする場合は、catalogSource.yaml ファイルを変更して metadata.name フィールドからバックスラッシュ (/) 文字を削除する必要があります。または、オブジェクトの作成を試みると、"invalid resource name" (無効なリソース名) を示すエラーを出して失敗します。

  • これにより、imageContentSourcePolicy.yaml ファイルは ImageContentSourcePolicy オブジェクトを定義します。このオブジェクトは、ノードを Operator マニフェストおよびミラーリングされたレジストリーに保存されるイメージ参照間で変換できるように設定します。

    注記

    クラスターが ImageContentSourcePolicy オブジェクトを使用してリポジトリーのミラーリングを設定する場合、ミラーリングされたレジストリーにグローバルプルシークレットのみを使用できます。プロジェクトにプルシークレットを追加することはできません。

  • mapping.txt ファイルには、すべてのソースイメージが含まれ、これはそれらのイメージをターゲットレジストリー内のどこにマップするかを示します。このファイルは oc image mirror コマンドと互換性があり、ミラーリング設定をさらにカスタマイズするために使用できます。

    重要

    ミラーリングのプロセスで --manifests-only フラグを使用しており、ミラーリングするパッケージのサブセットをさらにトリミングするには、mapping.txt ファイルの変更および oc image mirror コマンドでのファイルの使用について、OpenShift Container Platform 4.7 ドキュメントの Package Manifest Format カタログイメージのミラーリング の手順を参照してください。

3.7.4. インストール後の要件

カタログのミラーリング後、残りのクラスターインストールを続行できます。クラスターのインストールが正常に完了した後に、この手順から manifests ディレクトリーを指定して ImageContentSourcePolicy および CatalogSource オブジェクトを作成する必要があります。これらのオブジェクトは、OperatorHub からの Operator のインストールを設定し、有効にするために必要です。

3.8. 次のステップ

第4章 oc-mirror プラグインを使用した非接続インストールのイメージのミラーリング

プライベートレジストリー内の OpenShift Container Platform コンテナーイメージのミラーリングされたセットからクラスターをインストールすることにより、インターネットに直接接続せずに制限されたネットワークでクラスターを実行することができます。このレジストリーは、クラスターが実行されている限り、常に実行されている必要があります。詳細は、前提条件 セクションを参照してください。

oc-mirror OpenShift CLI (oc) プラグインを使用して、完全なまたは部分的な非接続環境でイメージをミラーレジストリーにミラーリングできます。公式の Red Hat レジストリーから必要なイメージをダウンロードするには、インターネット接続のあるシステムから oc-mirror を実行する必要があります。

次の手順は、oc-mirror プラグインを使用してイメージをミラーレジストリーにミラーリングする方法の概要を示しています。

  1. イメージセット設定ファイルを作成します。
  2. 以下のいずれかの方法を使用して、イメージセットをミラーレジストリーにミラーリングします。

    • イメージセットをミラーレジストリーに直接ミラーリングします。
    • イメージセットをディスクにミラーリングし、イメージセットをターゲット環境に転送してから、イメージセットをターゲットミラーレジストリーにアップロードします。
  3. oc-mirror プラグインが生成したリソースを使用するようにクラスターを設定します。
  4. これらの手順を繰り返して、必要に応じてミラーレジストリーを更新します。

4.1. oc-mirror プラグインについて

oc-mirror OpenShift CLI(oc) プラグインを使用すると、単一のツールを使用して、必要なすべての OpenShift Container Platform コンテンツおよびその他のイメージをミラーレジストリーにミラーリングできます。次の機能を提供します。

  • OpenShift Container Platform のリリース、Operator、Helm チャート、およびその他のイメージをミラーリングするための一元化された方法を提供します。
  • OpenShift Container Platform および Operator の更新パスを維持します。
  • 宣言型イメージセット設定ファイルを使用して、クラスターに必要な OpenShift Container Platform リリース、Operator、およびイメージのみを含めます。
  • 将来のイメージセットのサイズを縮小するインクリメンタルミラーリングを実行します。
  • 前回の実行以降にイメージセット設定から除外されたターゲットミラーレジストリーからのイメージをプルーニングします。
  • オプションで、OpenShift Update Service (OSUS) を使用する際のサポートアーティファクトを生成します。

oc-mirror プラグインを使用する場合、イメージセット設定ファイルでミラーリングするコンテンツを指定します。この YAML ファイルでは、クラスターに必要な OpenShift Container Platform リリースと Operator のみを含めるように設定を微調整できます。これにより、ダウンロードして転送する必要のあるデータの量が減ります。oc-mirror プラグインは、任意の Helm チャートと追加のコンテナーイメージをミラーリングして、ユーザーがワークロードをミラーレジストリーにシームレスに同期できるようにすることもできます。

oc-mirror プラグインを初めて実行すると、非接続クラスターのインストールまたは更新を実行するために必要なコンテンツがミラーレジストリーに入力されます。非接続クラスターが更新を受信し続けるには、ミラーレジストリーを更新しておく必要があります。ミラーレジストリーを更新するには、最初に実行したときと同じ設定を使用して oc-mirror プラグインを実行します。oc-mirror プラグインは、ストレージバックエンドからメタデータを参照し、ツールを最後に実行してからリリースされたもののみをダウンロードします。これにより、OpenShift Container Platform および Operator の更新パスが提供され、必要に応じて依存関係の解決が実行されます。

重要

oc-mirror CLI プラグインを使用してミラーレジストリーにデータを入力する場合、ミラーレジストリーをさらに更新するには、oc-mirror ツールを使用する必要があります。

4.2. oc-mirror の互換性とサポート

oc-mirror プラグインは、OpenShift Container Platform バージョン 4.10 以降の OpenShift Container Platform ペイロードイメージと Operator カタログのミラーリングをサポートします。

注記

aarch64ppc64le、および s390x アーキテクチャーでは、oc-mirror プラグインは OpenShift Container Platform バージョン 4.14 以降でのみサポートされます。

ミラーリングする必要がある OpenShift Container Platform のバージョンに関係なく、使用可能な最新バージョンの oc-mirror プラグインを使用してください。

重要

OpenShift Container Platform 4.12 の oc-mirror プラグインの Technology Preview OCI ローカルカタログ機能を使用した場合、完全に切断されたクラスターへのミラーリングの最初のステップとして、ローカルにカタログをコピーして OCI 形式に変換するために oc-mirror プラグインの OCI ローカルカタログ機能を使用できないようになりました。

4.3. ミラーレジストリーについて

OpenShift Container Platform のインストールとその後の製品更新に必要なイメージを、Red Hat Quay などの Docker v2-2 をサポートするコンテナーミラーレジストリーにミラーリングできます。大規模なコンテナーレジストリーにアクセスできない場合は、OpenShift Container Platform サブスクリプションに含まれる小規模なコンテナーレジストリーである Red Hat Openshift 導入用のミラー レジストリー を使用できます。

選択したレジストリーに関係なく、インターネット上の Red Hat がホストするサイトから分離されたイメージレジストリーにコンテンツをミラーリングする手順は同じです。コンテンツをミラーリングした後に、各クラスターをミラーレジストリーからこのコンテンツを取得するように設定します。

重要

OpenShift イメージレジストリーはターゲットレジストリーとして使用できません。これは、ミラーリングプロセスで必要となるタグを使わないプッシュをサポートしないためです。

Red Hat Openshift 導入用のミラーレジストリー以外のコンテナーレジストリー を選択する場合は、プロビジョニングするクラスター内のすべてのマシンから到達可能である必要があります。レジストリーに到達できない場合、インストール、更新、またはワークロードの再配置などの通常の操作が失敗する可能性があります。そのため、ミラーレジストリーは可用性の高い方法で実行し、ミラーレジストリーは少なくとも OpenShift Container Platform クラスターの実稼働環境の可用性の条件に一致している必要があります。

ミラーレジストリーを OpenShift Container Platform イメージで設定する場合、2 つのシナリオを実行することができます。インターネットとミラーレジストリーの両方にアクセスできるホストがあり、クラスターノードにアクセスできない場合は、そのマシンからコンテンツを直接ミラーリングできます。このプロセスは、connected mirroring (接続ミラーリング) と呼ばれます。このようなホストがない場合は、イメージをファイルシステムにミラーリングしてから、そのホストまたはリムーバブルメディアを制限された環境に配置する必要があります。このプロセスは、disconnected mirroring (非接続ミラーリング) と呼ばれます。

ミラーリングされたレジストリーの場合は、プルされたイメージのソースを表示するには、CRI-O ログで Trying to access のログエントリーを確認する必要があります。ノードで crictl images コマンドを使用するなど、イメージのプルソースを表示する他の方法では、イメージがミラーリングされた場所からプルされている場合でも、ミラーリングされていないイメージ名を表示します。

注記

Red Hat は、OpenShift Container Platform を使用してサードパーティーのレジストリーをテストしません。

4.4. 前提条件

  • Red Hat Quay など、OpenShift Container Platform クラスターをホストする場所に Docker v2-2 をサポートするコンテナーイメージレジストリーがある。

    注記

    Red Hat Quay を使用する場合は、oc-mirror プラグインでバージョン 3.6 以降を使用する必要があります。Red Hat Quay のエンタイトルメントをお持ちの場合は、Red Hat Quay のデプロイに関するドキュメント 概念実証(実稼働以外)向けの Red Hat Quay のデプロイ または Red Hat Quay Operator の 使用による OpenShift への Red Hat Quay のデプロイ を参照してください。レジストリーの選択とインストールについてさらにサポートが必要な場合は、営業担当者または Red Hat サポートにお問い合わせください。

    コンテナーイメージレジストリーの既存のソリューションがまだない場合には、OpenShift Container Platform のサブスクライバーに Red Hat OpenShift 導入用のミラーレジストリー が提供されます。Red Hat Openshift 導入用のミラーレジストリー はサブスクリプションに含まれており、切断されたインストールで OpenShift Container Platform の必要なコンテナーイメージをミラーリングするために使用できる小規模なコンテナーレジストリーです。

4.5. ミラーホストの準備

oc-mirror プラグインを使用してイメージをミラーリングする前に、プラグインをインストールし、コンテナーイメージレジストリーの認証情報ファイルを作成して、Red Hat からお使いのミラーへのミラーリングを許可する必要があります。

4.5.1. oc-mirror OpenShift CLI プラグインのインストール

oc-mirror OpenShift CLI プラグインを使用してレジストリーイメージをミラーリングするには、プラグインをインストールする必要があります。完全な非接続環境でイメージセットをミラーリングする場合は、インターネットにアクセスできるホストと、ミラーレジストリーにアクセスできる非接続環境のホストに oc-mirror プラグインをインストールしてください。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • oc-mirror を使用するオペレーティングシステムで、umask パラメーターを 0022 に設定した。
  • 使用している RHEL バージョンに適したバイナリーをインストールした。

手順

  1. oc-mirror CLI プラグインをダウンロードします。

    1. OpenShift Cluster Managerダウンロード ページに移動します。
    2. OpenShift 切断インストールツール セクションで、OpenShift Client (oc) ミラープラグインダウンロード をクリックしてファイルを保存します。
  2. アーカイブを抽出します。

    $ tar xvzf oc-mirror.tar.gz
    Copy to Clipboard Toggle word wrap
  3. 必要に応じて、プラグインファイルを更新して実行可能にします。

    $ chmod +x oc-mirror
    Copy to Clipboard Toggle word wrap
    注記

    oc-mirror ファイルの名前を変更しないでください。

  4. ファイルを PATH に配置して、oc-mirror CLI プラグインをインストールします (例: /usr/local/bin):。

    $ sudo mv oc-mirror /usr/local/bin/.
    Copy to Clipboard Toggle word wrap

検証

  • oc mirror help を実行して、プラグインが正常にインストールされたことを確認します。

    $ oc mirror help
    Copy to Clipboard Toggle word wrap

4.5.2. イメージのミラーリングを可能にする認証情報の設定

Red Hat からミラーへのイメージのミラーリングを可能にするコンテナーイメージレジストリーの認証情報ファイルを作成します。

警告

クラスターのインストール時に、このイメージレジストリー認証情報ファイルをプルシークレットとして使用しないでください。クラスターのインストール時にこのファイルを指定すると、クラスター内のすべてのマシンにミラーレジストリーへの書き込みアクセスが付与されます。

警告

このプロセスでは、ミラーレジストリーのコンテナーイメージレジストリーへの書き込みアクセスがあり、認証情報をレジストリープルシークレットに追加する必要があります。

前提条件

  • 非接続環境で使用するミラーレジストリーを設定した。
  • イメージをミラーリングするミラーレジストリー上のイメージリポジトリーの場所を特定している。
  • イメージのイメージリポジトリーへのアップロードを許可するミラーレジストリーアカウントをプロビジョニングしている。

手順

インストールホストで以下の手順を実行します。

  1. registry.redhat.io プルシークレットを Red Hat OpenShift Cluster Manager からダウンロードします。
  2. JSON 形式でプルシークレットのコピーを作成します。

    $ cat ./pull-secret | jq . > <path>/<pull_secret_file_in_json> 
    1
    Copy to Clipboard Toggle word wrap
    1
    プルシークレットを保存するフォルダーへのパスおよび作成する JSON ファイルの名前を指定します。

    ファイルの内容は以下の例のようになります。

    {
      "auths": {
        "cloud.openshift.com": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "quay.io": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "registry.connect.redhat.com": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        },
        "registry.redhat.io": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        }
      }
    }
    Copy to Clipboard Toggle word wrap
  3. ファイルを、~/.docker/config.json または $XDG_RUNTIME_DIR/containers/auth.json として保存します。

    1. .docker または $XDG_RUNTIME_DIR/containers ディレクトリーが存在しない場合は、次のコマンドを入力して作成します。

      $ mkdir -p <directory_name>
      Copy to Clipboard Toggle word wrap

      この場合の <directory_name> は、~/.docker または $XDG_RUNTIME_DIR/containers のいずれかです。

    2. 次のコマンドを入力して、プルシークレットを適切なディレクトリーにコピーします。

      $ cp <path>/<pull_secret_file_in_json> <directory_name>/<auth_file>
      Copy to Clipboard Toggle word wrap

      この場合の <directory_name>~/.docker または $XDG_RUNTIME_DIR/containers<auth_file>config.json または auth.json のいずれかです。

  4. ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードまたはトークンを生成します。

    $ echo -n '<user_name>:<password>' | base64 -w0 
    1
    
    BGVtbYk3ZHAtqXs=
    Copy to Clipboard Toggle word wrap
    1
    <user_name> および <password> には、レジストリーに設定したユーザー名およびパスワードを指定します。
  5. JSON ファイルを編集し、レジストリーについて記述するセクションをこれに追加します。

      "auths": {
        "<mirror_registry>": { 
    1
    
          "auth": "<credentials>", 
    2
    
          "email": "you@example.com"
        }
      },
    Copy to Clipboard Toggle word wrap
    1
    <mirror_registry> については、レジストリードメイン名と、ミラーレジストリーがコンテンツを提供するために使用するポートをオプションで指定します。例: registry.example.com または registry.example.com:8443
    2
    <credentials> については、ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードを指定します。

    ファイルは以下の例のようになります。

    {
      "auths": {
        "registry.example.com": {
          "auth": "BGVtbYk3ZHAtqXs=",
          "email": "you@example.com"
        },
        "cloud.openshift.com": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "quay.io": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "registry.connect.redhat.com": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        },
        "registry.redhat.io": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        }
      }
    }
    Copy to Clipboard Toggle word wrap

4.6. イメージセット設定の作成

oc-mirror プラグインを使用してイメージセットをミラーリングする前に、イメージセット設定ファイルを作成する必要があります。このイメージセット設定ファイルは、ミラーリングする OpenShift Container Platform リリース、Operator、およびその他のイメージと、oc-mirror プラグインの他の設定を定義します。

イメージセット設定ファイルでストレージバックエンドを指定する必要があります。このストレージバックエンドは、Docker v2-2 をサポートするローカルディレクトリーまたはレジストリーにすることができます。oc-mirror プラグインは、イメージセットの作成中にこのストレージバックエンドにメタデータを保存します。

重要

oc-mirror プラグインによって生成されたメタデータを削除または変更しないでください。同じミラーレジストリーに対して oc-mirror プラグインを実行するたびに、同じストレージバックエンドを使用する必要があります。

前提条件

  • コンテナーイメージレジストリーの認証情報ファイルを作成している。手順は、イメージのミラーリングを可能にする認証情報の設定 を参照してください。

手順

  1. oc mirror init コマンドを使用して、イメージセット設定のテンプレートを作成し、それを imageset-config.yaml というファイルに保存します。

    $ oc mirror init --registry example.com/mirror/oc-mirror-metadata > imageset-config.yaml 
    1
    Copy to Clipboard Toggle word wrap
    1
    example.com/mirror/oc-mirror-metadata をストレージバックエンドのレジストリーの場所に置き換えます。
  2. ファイルを編集し、必要に応じて設定を調整します。

    kind: ImageSetConfiguration
    apiVersion: mirror.openshift.io/v1alpha2
    archiveSize: 4                                                      
    1
    
    storageConfig:                                                      
    2
    
      registry:
        imageURL: example.com/mirror/oc-mirror-metadata                 
    3
    
        skipTLS: false
    mirror:
      platform:
        channels:
        - name: stable-4.14                                             
    4
    
          type: ocp
        graph: true                                                     
    5
    
      operators:
      - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14  
    6
    
        packages:
        - name: serverless-operator                                     
    7
    
          channels:
          - name: stable                                                
    8
    
      additionalImages:
      - name: registry.redhat.io/ubi9/ubi:latest                        
    9
    
      helm: {}
    Copy to Clipboard Toggle word wrap
    1
    archiveSize を追加して、イメージセット内の各ファイルの最大サイズを GiB 単位で設定します。
    2
    イメージセットのメタデータを保存するバックエンドの場所を設定します。この場所は、レジストリーまたはローカルディレクトリーにすることができます。storageConfig 値を指定する必要があります。
    3
    ストレージバックエンドのレジストリー URL を設定します。
    4
    OpenShift Container Platform イメージを取得するためのチャネルを設定します。
    5
    graph: true を追加して、グラフデータイメージをビルドし、ミラーレジストリーにプッシュします。OpenShift Update Service (OSUS) を作成するには、graph-data イメージが必要です。graph: true フィールドは UpdateService カスタムリソースマニフェストも生成します。oc コマンドラインインターフェイス (CLI) は、UpdateService カスタムリソースマニフェストを使用して OSUS を作成できます。詳細は、OpenShift Update Service について を参照してください。
    6
    OpenShift Container Platform イメージを取得するための Operator カタログを設定します。
    7
    イメージセットに含める特定の Operator パッケージのみを指定します。カタログ内のすべてのパッケージを取得するには、このフィールドを削除してください。
    8
    イメージセットに含める Operator パッケージの特定のチャネルのみを指定します。そのチャネルでバンドルを使用しない場合も、常に Operator パッケージのデフォルトチャネルを含める必要があります。oc mirror list operators --catalog=<catalog_name> --package=<package_name> コマンドを実行すると、デフォルトチャネルを見つけることができます。
    9
    イメージセットに含める追加のイメージを指定します。
    注記

    graph: true フィールドは、他のミラーリングされたイメージとともに ubi-micro イメージもミラーリングします。

    OpenShift Container Platform Extended Update Support (EUS) バージョンをアップグレードする場合、現行バージョンとターゲットバージョンの間に中間バージョンが必要になる場合があります。たとえば、最新バージョンが 4.14 で、ターゲットバージョンが 4.16 の場合、oc-mirror プラグイン v1 の使用時に ImageSetConfiguration4.15.8 などのバージョンを含める必要がある場合があります。

    oc-mirror プラグイン v1 は必ずしもこれを自動的に検出するとは限りません。Cincinnati graph の Web ページで 必要な中間バージョンを確認し、手動で設定に追加してください。

    パラメーターの完全なリストについては、イメージセットの設定パラメーター を参照してください。また、さまざまなミラーリングのユースケースについては、イメージセットの設定例 を参照してください。

  3. 更新したファイルを保存します。

    このイメージセット設定ファイルは、コンテンツをミラーリングするときに oc mirror コマンドで必要になります。

4.7. イメージセットをミラーレジストリーにミラーリングする

oc-mirror CLI プラグインを使用して、部分的な非接続環境 または 完全な非接続環境 でイメージをミラーレジストリーにミラーリングできます。

これらの手順は、ミラーレジストリーがすでに設定されていることを前提としています。

4.7.1. 部分的な非接続環境でのイメージセットのミラーリング

部分的な非接続環境では、イメージセットをターゲットミラーレジストリーに直接ミラーリングできます。

4.7.1.1. ミラーからミラーへのミラーリング

oc-mirror プラグインを使用して、イメージセットの作成中にアクセス可能なターゲットミラーレジストリーにイメージセットを直接ミラーリングできます。

イメージセット設定ファイルでストレージバックエンドを指定する必要があります。このストレージバックエンドは、ローカルディレクトリーまたは Dockerv2 レジストリーにすることができます。oc-mirror プラグインは、イメージセットの作成中にこのストレージバックエンドにメタデータを保存します。

重要

oc-mirror プラグインによって生成されたメタデータを削除または変更しないでください。同じミラーレジストリーに対して oc-mirror プラグインを実行するたびに、同じストレージバックエンドを使用する必要があります。

前提条件

  • 必要なコンテナーイメージを取得するためのインターネットへのアクセスがある。
  • OpenShift CLI (oc) がインストールされている。
  • oc-mirror CLI プラグインをインストールしている。
  • イメージセット設定ファイルを作成している。

手順

  • oc mirror コマンドを実行して、指定されたイメージセット設定から指定されたレジストリーにイメージをミラーリングします。

    $ oc mirror --config=./imageset-config.yaml \
    1
    
      docker://registry.example:5000             
    2
    Copy to Clipboard Toggle word wrap
    1
    作成されたイメージセット設定ファイルを渡します。この手順では、imageset-config.yaml という名前であることを前提としています。
    2
    イメージセットファイルをミラーリングするレジストリーを指定します。レジストリーは docker:// で始まる必要があります。ミラーレジストリーに最上位の namespace を指定する場合は、これ以降の実行でもこれと同じ namespace を使用する必要があります。

検証

  1. 生成された oc-mirror-workspace/ ディレクトリーに移動します。
  2. results ディレクトリーに移動します (例: results-1639608409/
  3. ImageContentSourcePolicy および CatalogSource リソースに YAML ファイルが存在することを確認します。
注記

ImageContentSourcePolicy YAML ファイルの repositoryDigestMirrors セクションは、インストール中に install-config.yaml ファイルとして使用されます。

+

次のステップ

  • oc-mirror が生成したリソースを使用するようにクラスターを設定します。

トラブルシューティング

4.7.2. 完全な非接続環境でのイメージセットのミラーリング

完全な非接続環境でイメージセットをミラーリングするには、最初に イメージセットをディスクにミラーリング してから、ディスク上のイメージセットファイルをミラーにミラーリング する必要があります。

4.7.2.1. ミラーからディスクへのミラーリング

oc-mirror プラグインを使用して、イメージセットを生成し、コンテンツをディスクに保存できます。生成されたイメージセットは、非接続環境に転送され、ターゲットレジストリーにミラーリングされます。

重要

イメージセット設定ファイルで指定されている設定によっては、oc-mirror を使用してイメージをミラーリングすると、数百ギガバイトのデータがディスクにダウンロードされる場合があります。

多くの場合、ミラーレジストリーにデータを入力するときの最初のイメージセットのダウンロードが、最も大きなものとなります。最後にコマンドを実行した後に変更されたイメージのみをダウンロードするため、oc-mirror プラグインを再度実行すると、生成されるイメージセットは小さいことが多いです。

イメージセット設定ファイルでストレージバックエンドを指定する必要があります。このストレージバックエンドは、ローカルディレクトリーまたは docker v2 レジストリーにすることができます。oc-mirror プラグインは、イメージセットの作成中にこのストレージバックエンドにメタデータを保存します。

重要

oc-mirror プラグインによって生成されたメタデータを削除または変更しないでください。同じミラーレジストリーに対して oc-mirror プラグインを実行するたびに、同じストレージバックエンドを使用する必要があります。

前提条件

  • 必要なコンテナーイメージを取得するためのインターネットへのアクセスがある。
  • OpenShift CLI (oc) がインストールされている。
  • oc-mirror CLI プラグインをインストールしている。
  • イメージセット設定ファイルを作成している。

手順

  • oc mirror コマンドを実行して、指定されたイメージセット設定からディスクにイメージをミラーリングします。

    $ oc mirror --config=./imageset-config.yaml \
    1
    
      file://<path_to_output_directory>          
    2
    Copy to Clipboard Toggle word wrap
    1
    作成されたイメージセット設定ファイルを渡します。この手順では、imageset-config.yaml という名前であることを前提としています。
    2
    イメージセットファイルを出力するターゲットディレクトリーを指定します。ターゲットディレクトリーのパスは、file:// で始まる必要があります。

検証

  1. 出力ディレクトリーに移動します。

    $ cd <path_to_output_directory>
    Copy to Clipboard Toggle word wrap
  2. イメージセットの .tar ファイルが作成されたことを確認します。

    $ ls
    Copy to Clipboard Toggle word wrap

    出力例

    mirror_seq1_000000.tar
    Copy to Clipboard Toggle word wrap

次のステップ

  • イメージセットの.tar ファイルを非接続環境に転送します。

トラブルシューティング

4.7.2.2. ディスクからミラーへのミラーリング

oc-mirror プラグインを使用して、生成されたイメージセットの内容をターゲットミラーレジストリーにミラーリングできます。

前提条件

  • 非接続環境に OpenShift CLI (oc) をインストールしている。
  • 非接続環境に oc-mirror CLI プラグインをインストールしている。
  • oc mirror コマンドを使用してイメージセットファイルを生成している。
  • イメージセットファイルを非接続環境に転送した。

手順

  • oc mirror コマンドを実行して、ディスク上のイメージセットファイルを処理し、その内容をターゲットミラーレジストリーにミラーリングします。

    $ oc mirror --from=./mirror_seq1_000000.tar \
    1
    
      docker://registry.example:5000             
    2
    Copy to Clipboard Toggle word wrap
    1
    この例では、mirror_seq1_000000.tar という名前のイメージセット.tar ファイルをミラーに渡します。イメージセット設定ファイルで archiveSize 値が指定されている場合、イメージセットは複数の.tar ファイルに分割される可能性があります。この状況では、イメージセットの.tar ファイルを含むディレクトリーを渡すことができます。
    2
    イメージセットファイルをミラーリングするレジストリーを指定します。レジストリーは docker:// で始まる必要があります。ミラーレジストリーに最上位の namespace を指定する場合は、これ以降の実行でもこれと同じ namespace を使用する必要があります。

    このコマンドは、ミラーレジストリーをイメージセットで更新し、ImageContentSourcePolicy および CatalogSource リソースを生成します。

検証

  1. 生成された oc-mirror-workspace/ ディレクトリーに移動します。
  2. results ディレクトリーに移動します (例: results-1639608409/
  3. ImageContentSourcePolicy および CatalogSource リソースに YAML ファイルが存在することを確認します。

次のステップ

  • oc-mirror が生成したリソースを使用するようにクラスターを設定します。

トラブルシューティング

4.8. oc-mirror が生成したリソースを使用するためのクラスター設定

イメージセットをミラーレジストリーにミラーリングした後に、生成された ImageContentSourcePolicyCatalogSource、およびリリースイメージの署名リソースをクラスターに適用する必要があります。

ImageContentSourcePolicy リソースは、ミラーレジストリーをソースレジストリーに関連付け、イメージプル要求をオンラインレジストリーからミラーレジストリーにリダイレクトします。CatalogSource リソースは、Operator Lifecycle Manager (OLM) によって使用され、ミラーレジストリーで使用可能な Operator に関する情報を取得します。リリースイメージの署名は、ミラーリングされたリリースイメージの検証に使用されます。

前提条件

  • 非接続環境で、イメージセットをレジストリーミラーにミラーリングしました。
  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。

手順

  1. cluster-admin ロールを持つユーザーとして OpenShift CLI にログインします。
  2. 以下のコマンドを実行して、results ディレクトリーからクラスターに YAML ファイルを適用します。

    $ oc apply -f ./oc-mirror-workspace/results-1639608409/
    Copy to Clipboard Toggle word wrap
  3. リリースイメージをミラーリングした場合は、次のコマンドを実行して、リリースイメージの署名をクラスターに適用します。

    $ oc apply -f ./oc-mirror-workspace/results-1639608409/release-signatures/
    Copy to Clipboard Toggle word wrap
    注記

    クラスターではなく Operator をミラーリングしている場合、$ oc apply -f ./oc-mirror-workspace/results-1639608409/release-signatures/ を実行する必要はありません。適用するリリースイメージ署名がないため、このコマンドを実行するとエラーが返されます。

検証

  1. 以下のコマンドを実行して、ImageContentSourcePolicy リソースが正常にインストールされたことを確認します。

    $ oc get imagecontentsourcepolicy
    Copy to Clipboard Toggle word wrap
  2. 以下のコマンドを実行して、CatalogSource リソースが正常にインストールされたことを確認します。

    $ oc get catalogsource -n openshift-marketplace
    Copy to Clipboard Toggle word wrap

4.9. ミラーレジストリーのコンテンツを最新の状態に保つ

ターゲットミラーレジストリーに初期イメージセットが設定された後は、定期的に更新して、最新の内容になるようにしてください。可能であれば、必要に応じて cron ジョブを設定して、ミラーレジストリーが定期的に更新されるようにすることもできます。

イメージセットの設定を更新して、必要に応じて OpenShift Container Platform および Operator リリースを追加または削除してください。削除されるすべてのイメージは、ミラーレジストリーからプルーニングされます。

4.9.1. ミラーレジストリーコンテンツの更新について

oc-mirror プラグインを再度実行すると、前回の実行以降に新しく更新されたイメージのみを含むイメージセットが生成されます。前に作成されたイメージセットとの違いのみを取り込むため、生成されたイメージセットは、多くの場合、最初のイメージセットよりも小さく、迅速に処理されます。

重要

生成されたイメージセットはシーケンシャルであり、ターゲットミラーレジストリーに順番にプッシュする必要があります。シーケンス番号は、生成されたイメージセットアーカイブファイルのファイル名から取得できます。

4.9.1.1. 新規イメージおよび更新されたイメージの追加

イメージセット設定の設定に応じて、oc-mirror を今後実行すると、追加の新しいイメージと更新されたイメージがミラーリングされます。イメージセット設定の設定を確認して、必要に応じて新しいバージョンを取得していることを確認します。たとえば、特定のバージョンに制限する場合は、Operator の最小バージョンと最大バージョンをミラーリングするように設定できます。または、最小バージョンをミラーリングの開始点として設定することもできますが、バージョン範囲は開いたままにして、oc-mirror の今後の実行時に新しい Operator バージョンを受け取り続けることができます。最小または最大バージョンを省略すると、チャネル内の Operator の完全なバージョン履歴が得られます。明示的に名前付けされたチャネルを省略すると、指定された Operator のすべてのチャネルのすべてのリリースが提供されます。名前付き Operator を省略すると、これまでにリリースされたすべての Operator とそのすべてのバージョンのカタログ全体が提供されます。

これらすべての制約と条件は、oc-mirror が呼び出されるたびに Red Hat によって公開されたコンテンツに対して評価されます。このようにして、新しいリリースとまったく新しい Operator を自動的にピックアップします。制約は、必要な Operator のセットをリストするだけで指定できます。これにより、新しくリリースされた他の Operator がミラーセットに自動的に追加されることはありません。特定のリリースチャネルを指定することもできます。これにより、ミラーリングは追加された新しいチャネルではなく、このチャネルのみに制限されます。これは、マイナーリリースに異なるリリースチャネルを使用する Red Hat Quay などの Operator 製品にとって重要です。最後に、特定の Operator の最大バージョンを指定できます。これにより、ツールは指定されたバージョン範囲のみをミラーリングするため、ミラーリングされた最大バージョンを超えた新しいリリースが自動的に取得されることはありません。これらのすべての場合において、イメージセット設定ファイルを更新して Operator のミラーリングの範囲を広げ、他の Operator、新しいチャネル、および Operator の新しいバージョンをターゲットレジストリーで使用できるようにする必要があります。

チャネル仕様やバージョン範囲などの制約を、特定の Operator が選択したリリースストラテジーに合わせることを推奨します。たとえば、Operator が stable チャネルを使用している場合、ミラーリングをそのチャネルと可能ならば最小バージョンに制限し、ダウンロード量と定期的な安定した更新の取得との間の適切なバランスを見つける必要があります。Operator がリリースバージョンのチャネルスキーム (stable-3.7 など) を選択した場合、そのチャネルのすべてのリリースをミラーリングする必要があります。これにより、Operator のパッチバージョン (3.7.1 など) を引き続き受け取ることができます。また、イメージセットの設定を定期的に調整して、新製品リリース (stable-3.8 など) 用のチャネルを追加することもできます。

4.9.1.2. イメージのプルーニング

イメージは、生成およびミラーリングされた最新のイメージセットに含まれなくなった場合、ターゲットミラーレジストリーから自動的にプルーニングされます。これにより、不要なコンテンツを簡単に管理およびクリーンアップし、ストレージリソースを解放することができます。

不要になった OpenShift Container Platform リリースまたは Operator バージョンがある場合、イメージセットの設定を変更してそれらを除外できます。これらはミラーリング時にミラーレジストリーからプルーニングされます。これは、イメージセット設定ファイルで Operator ごとに最小または最大バージョン範囲の設定を調整するか、カタログからミラーリングする Operator のリストから Operator を削除することによって実行できます。Operator カタログ全体または OpenShift Container Platform リリース全体を設定ファイルから削除することもできます。

重要

ミラーリングする新しいイメージまたは更新されたイメージがない場合、除外されたイメージはターゲットミラーレジストリーからプルーニングされません。さらに、Operator パブリッシャーがチャネルから Operator バージョンを削除すると、削除されたバージョンはターゲットミラーレジストリーからプルーニングされます。

ターゲットミラーレジストリーからのイメージの自動プルーニングを無効にするには、--skip-pruning フラグを oc mirror コマンドに渡します。

4.9.2. ミラーレジストリーコンテンツの更新

初期イメージセットをミラーレジストリーに公開した後、oc-mirror プラグインを使用して、切断されたクラスターを最新の状態に保つことができます。

イメージセットの設定に応じて、oc-mirror は、初期ミラーリングの完了後にリリースされた OpenShift Container Platform および選択した Operator の新しいリリースを自動的に検出します。たとえば、毎晩の cron ジョブなどで、定期的に oc-mirror を実行し、製品とセキュリティーの更新をタイムリーに受信することを推奨します。

前提条件

  • oc-mirror プラグインを使用して、最初のイメージセットをミラーレジストリーにミラーリングしている。
  • oc-mirror プラグインの最初の実行に使用されたストレージバックエンドにアクセスできる。

    注記

    同じミラーレジストリーに対して oc-mirror の最初の実行と同じストレージバックエンドを使用する必要があります。oc-mirror プラグインによって生成されたメタデータイメージを削除または変更しないでください。

手順

  1. 必要に応じて、イメージセット設定ファイルを更新して、新しい OpenShift Container Platform および Operator バージョンを取得します。ミラーリングの使用例については、イメージセットの設定例 を参照してください。
  2. 初期イメージセットをミラーレジストリーにミラーリングしたときと同じ手順に従います。手順については、部分的な非接続環境でのイメージセットのミラーリング または 完全な非接続環境でのイメージセットのミラーリング を参照してください。

    重要
    • 差分イメージセットのみが作成およびミラーリングされるように、同じストレージバックエンドを提供する必要があります。
    • イメージセットの最初の作成時にミラーレジストリーにトップレベルの namespace を指定した場合は、同じミラーレジストリーに対して oc-mirror プラグインを実行するたびに、この同じ namespace を使用する必要があります。
  3. oc-mirror が生成したリソースを使用するようにクラスターを設定します。

4.10. ドライランの実行

実際にイメージをミラーリングせずに、oc-mirror を使用してドライランを実行できます。これにより、ミラーリングされるイメージのリストと、ミラーレジストリーからプルーニングされるイメージを確認できます。また、イメージセット設定のエラーを早期に検出したり、生成されたイメージのリストを他のツールで使用してミラーリング操作を実行したりすることもできます。

前提条件

  • 必要なコンテナーイメージを取得するためのインターネットへのアクセスがある。
  • OpenShift CLI (oc) がインストールされている。
  • oc-mirror CLI プラグインをインストールしている。
  • イメージセット設定ファイルを作成している。

手順

  1. --dry-run フラグを指定して oc mirror コマンドを実行し、ドライランを実行します。

    $ oc mirror --config=./imageset-config.yaml \
    1
    
      docker://registry.example:5000            \
    2
    
      --dry-run                                  
    3
    Copy to Clipboard Toggle word wrap
    1
    作成されたイメージセット設定ファイルを渡します。この手順では、imageset-config.yaml という名前であることを前提としています。
    2
    ミラーレジストリーを指定します。--dry-run フラグを使用している限り、このレジストリーには何もミラーリングされません。
    3
    --dry-run フラグを使用して、実際のイメージセットファイルではなく、ドライランアーティファクトを生成します。

    出力例

    Checking push permissions for registry.example:5000
    Creating directory: oc-mirror-workspace/src/publish
    Creating directory: oc-mirror-workspace/src/v2
    Creating directory: oc-mirror-workspace/src/charts
    Creating directory: oc-mirror-workspace/src/release-signatures
    No metadata detected, creating new workspace
    wrote mirroring manifests to oc-mirror-workspace/operators.1658342351/manifests-redhat-operator-index
    
    ...
    
    info: Planning completed in 31.48s
    info: Dry run complete
    Writing image mapping to oc-mirror-workspace/mapping.txt
    Copy to Clipboard Toggle word wrap

  2. 生成されたワークスペースディレクトリーに移動します。

    $ cd oc-mirror-workspace/
    Copy to Clipboard Toggle word wrap
  3. 生成された mapping.txt ファイルを確認します。

    このファイルには、ミラーリングされるすべてのイメージのリストが含まれています。

  4. 生成された pruning-plan.json ファイルを確認します。

    このファイルには、イメージセットの公開時にミラーレジストリーからプルーニングされるすべてのイメージのリストが含まれています。

    注記

    pruning-plan.json ファイルは、oc-mirror コマンドがミラーレジストリーを指し、プルーニングするイメージがある場合にのみ生成されます。

4.11. ローカルの OCI Operator カタログを含む

OpenShift Container Platform リリース、Operator カタログ、および追加イメージをレジストリーから部分的に切断されたクラスターにミラーリングするときに、ディスク上のローカルのファイルベースのカタログから Operator カタログイメージを含めることができます。ローカルカタログは Open Container Initiative (OCI) 形式である必要があります。

ローカルカタログとそのコンテンツは、イメージセット設定ファイル内のフィルタリング情報に基づいて、ターゲットミラーレジストリーにミラーリングされます。

重要

ローカル OCI カタログをミラーリングする場合、ローカル OCI 形式のカタログとともにミラーリングする OpenShift Container Platform リリースまたは追加のイメージをレジストリーからプルする必要があります。

OCI カタログを oc-mirror イメージセットファイルと一緒にディスク上でミラーリングすることはできません。

OCI 機能を使用するユースケースの 1 つの例は、ディスク上の場所に OCI カタログを構築している CI/CD システムがあり、その OCI カタログを OpenShift Container Platform リリースとともにミラーレジストリーにミラーリングしたい場合です。

注記

OpenShift Container Platform 4.12 の oc-mirror プラグインの Technology Preview OCI ローカルカタログ機能を使用した場合、完全に切断されたクラスターへのミラーリングの最初のステップとして、ローカルにカタログをコピーして OCI 形式に変換するために oc-mirror プラグインの OCI ローカルカタログ機能を使用できないようになりました。

前提条件

  • 必要なコンテナーイメージを取得するためのインターネットへのアクセスがある。
  • OpenShift CLI (oc) がインストールされている。
  • oc-mirror CLI プラグインをインストールしている。

手順

  1. イメージセット設定ファイルを作成し、必要に応じて設定を調整します。

    次のイメージセット設定例では、OpenShift Container Platform リリースおよび registry.redhat.io の UBI イメージとともに、ディスク上の OCI カタログをミラーリングします。

    kind: ImageSetConfiguration
    apiVersion: mirror.openshift.io/v1alpha2
    storageConfig:
      local:
        path: /home/user/metadata                                                
    1
    
    mirror:
      platform:
        channels:
        - name: stable-4.14                                                      
    2
    
          type: ocp
        graph: false
      operators:
      - catalog: oci:///home/user/oc-mirror/my-oci-catalog                       
    3
    
        targetCatalog: my-namespace/redhat-operator-index                        
    4
    
        packages:
        - name: aws-load-balancer-operator
      - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14           
    5
    
        packages:
        - name: rhacs-operator
      additionalImages:
      - name: registry.redhat.io/ubi9/ubi:latest                                 
    6
    Copy to Clipboard Toggle word wrap
    1
    イメージセットのメタデータを保存するバックエンドの場所を設定します。この場所は、レジストリーまたはローカルディレクトリーにすることができます。storageConfig値を指定する必要があります。
    2
    オプションで、registry.redhat.io からミラーリングする OpenShift Container Platform リリースを含めます。
    3
    ディスク上の OCI カタログの場所への絶対パスを指定します。OCI 機能を使用する場合、パスは oci:// で始まる必要があります。
    4
    必要に応じて、カタログをミラーリングする代替の namespace と名前を指定します。
    5
    必要に応じて、レジストリーから取得する追加の Operator カタログを指定します。
    6
    必要に応じて、レジストリーからプルする追加のイメージを指定します。
  2. oc mirror コマンドを実行して、OCI カタログをターゲットミラーレジストリーにミラーリングします。

    $ oc mirror --config=./imageset-config.yaml \ 
    1
    
      docker://registry.example:5000              
    2
    Copy to Clipboard Toggle word wrap
    1
    イメージセット設定ファイルを渡します。この手順では、imageset-config.yaml という名前であることを前提としています。
    2
    コンテンツをミラーリングするレジストリーを指定します。レジストリーは docker:// で始まる必要があります。ミラーレジストリーに最上位の namespace を指定する場合は、これ以降の実行でもこれと同じ namespace を使用する必要があります。

    オプションで、他のフラグを指定して OCI 機能の動作を調整できます。

    --oci-insecure-signature-policy
    署名をターゲットミラーレジストリーにプッシュしないでください。
    --oci-registries-config

    TOML 形式の registries.conf ファイルへのパスを指定します。これを使用して、イメージセット設定ファイルを変更することなく、テスト用の運用前の場所など、別のレジストリーからミラーリングできます。このフラグはローカル OCI カタログにのみ影響し、他のミラーリングされたコンテンツには影響しません。

    registries.conf ファイルの例

    [[registry]]
     location = "registry.redhat.io:5000"
     insecure = false
     blocked = false
     mirror-by-digest-only = true
     prefix = ""
     [[registry.mirror]]
        location = "preprod-registry.example.com"
        insecure = false
    Copy to Clipboard Toggle word wrap

次のステップ

  • oc-mirror が生成したリソースを使用するようにクラスターを設定します。

4.12. Image set configuration parameters

oc-mirror プラグインには、ミラーリングするイメージを定義するイメージセット設定ファイルが必要です。次の表に、ImageSetConfiguration リソースで使用可能なパラメーターを示します。

Expand
表4.1 ImageSetConfiguration パラメーター
パラメーター説明

apiVersion

ImageSetConfiguration コンテンツの API バージョン。

String。例: mirror.openshift.io/v1alpha2

archiveSize

イメージセット内の各アーカイブファイルの最大サイズ (GiB 単位)。

整数。例: 4

mirror

イメージセットの設定。

オブジェクト

mirror.additionalImages

イメージセットの追加のイメージ設定。

オブジェクトの配列。以下に例を示します。

additionalImages:
  - name: registry.redhat.io/ubi8/ubi:latest
Copy to Clipboard Toggle word wrap

mirror.additionalImages.name

ミラーリングするイメージのタグまたはダイジェスト。

文字列。例: registry.redhat.io/ubi8/ubi:latest

mirror.blockedImages

ミラーリングをブロックするタグまたはダイジェスト (SHA) を持つイメージのリスト。

文字列の配列例: docker.io/library/alpine

mirror.helm

イメージセットの Helm 設定。oc-mirror プラグインは、レンダリング時にユーザー入力を必要としない Helm チャートのみをサポートすることに注意してください。

オブジェクト

mirror.helm.local

ミラーリングするローカル Helm チャート。

オブジェクトの配列。以下に例を示します。

local:
  - name: podinfo
    path: /test/podinfo-5.0.0.tar.gz
Copy to Clipboard Toggle word wrap

mirror.helm.local.name

ミラーリングするローカル Helm チャートの名前。

文字列。例: podinfo

mirror.helm.local.path

ミラーリングするローカル Helm チャートのパス。

文字列。例: /test/podinfo-5.0.0.tar.gz

mirror.helm.repositories

ミラーリング元のリモート Helm リポジトリー。

オブジェクトの配列。以下に例を示します。

repositories:
  - name: podinfo
    url: https://example.github.io/podinfo
    charts:
      - name: podinfo
        version: 5.0.0
Copy to Clipboard Toggle word wrap

mirror.helm.repositories.name

ミラーリング元の Helm リポジトリーの名前。

文字列。例: podinfo

mirror.helm.repositories.url

ミラーリング元の helm リポジトリーの URL。

文字列。例: https://example.github.io/podinfo

mirror.helm.repositories.charts

ミラーリングするリモート Helm チャート。

オブジェクトの配列。

mirror.helm.repositories.charts.name

ミラーリングする Helm チャートの名前。

文字列。例: podinfo

mirror.helm.repositories.charts.version

ミラーリングする名前付き Helm チャートのバージョン。

文字列。例: 5.0.0

mirror.operators

イメージセットの Operators 設定。

オブジェクトの配列。以下に例を示します。

operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
    packages:
      - name: elasticsearch-operator
        minVersion: '2.4.0'
Copy to Clipboard Toggle word wrap

mirror.operators.catalog

イメージセットに含める Operator カタログ。

文字列。たとえば、registry.redhat.io/redhat/redhat-operator-index:v4.14 です。

mirror.operators.full

true の場合、完全なカタログ、Operator パッケージ、または Operator チャネルをダウンロードします。

ブール値。デフォルト値は false です。

mirror.operators.packages

Operator パッケージ設定

オブジェクトの配列。以下に例を示します。

operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
    packages:
      - name: elasticsearch-operator
        minVersion: '5.2.3-31'
Copy to Clipboard Toggle word wrap

mirror.operators.packages.name

イメージセットに含める Operator パッケージ名

文字列。例: elasticsearch-operator

mirror.operators.packages.channels

Operator パッケージのチャネル設定。

オブジェクト

mirror.operators.packages.channels.name

イメージセットに含める、パッケージ内で一意の Operator チャネル名。

String。たとえば、fast または stable-v4.14 です。

mirror.operators.packages.channels.maxVersion

Operator が存在するすべてのチャネルでミラーリングする最上位バージョンの Operator。詳細は、以下の注記を参照してください。

String。例: 5.2.3-31

mirror.operators.packages.channels.minBundle

含める最小バンドルの名前と、チャネルヘッドへの更新グラフ内のすべてのバンドル。名前付きバンドルにセマンティックバージョンメタデータがない場合にのみ、このフィールドを設定します。

String。例: bundleName

mirror.operators.packages.channels.minVersion

存在するすべてのチャネル間でミラーリングする Operator の最低バージョン。詳細は、以下の注記を参照してください。

String。例: 5.2.3-31

mirror.operators.packages.maxVersion

Operator が存在するすべてのチャネルでミラーリングする最上位バージョンの Operator。詳細は、以下の注記を参照してください。

String。例: 5.2.3-31

mirror.operators.packages.minVersion

存在するすべてのチャネル間でミラーリングする Operator の最低バージョン。詳細は、以下の注記を参照してください。

String。例: 5.2.3-31

mirror.operators.skipDependencies

true の場合、バンドルの依存関係は含まれません。

ブール値。デフォルト値は false です。

mirror.operators.targetCatalog

参照されるカタログをミラーリングするための代替名とオプションの namespace 階層。

String。例: my-namespace/my-operator-catalog

mirror.operators.targetName

参照されたカタログをミラーリングするための代替名。

targetName パラメーターは非推奨になりました。代わりに targetCatalog パラメーターを使用してください。

String。例: my-operator-catalog

mirror.operators.targetTag

targetName または targetCatalog に追加する代替タグ。

String。例: v1

mirror.platform

イメージセットのプラットフォーム設定。

オブジェクト

mirror.platform.architectures

ミラーリングするプラットフォームリリースペイロードのアーキテクチャー。

文字列の配列以下に例を示します。

architectures:
  - amd64
  - arm64
  - multi
  - ppc64le
  - s390x
Copy to Clipboard Toggle word wrap

デフォルト値は amd64 です。値 multi を指定すると、使用可能なすべてのアーキテクチャーでミラーリングがサポートされ、個別のアーキテクチャーを指定する必要がなくなります。

mirror.platform.channels

イメージセットのプラットフォームチャネル設定。

オブジェクトの配列。以下に例を示します。

channels:
  - name: stable-4.10
  - name: stable-4.14
Copy to Clipboard Toggle word wrap

mirror.platform.channels.full

true の場合、minVersion をチャネルの最初のリリースに設定し、maxVersion をチャネルの最後のリリースに設定します。

ブール値。デフォルト値は false です。

mirror.platform.channels.name

リリースチャネルの名前。

String。たとえば、stable-4.14 です。

mirror.platform.channels.minVersion

ミラーリングされる参照プラットフォームの最小バージョン。

String。例: 4.12.6

mirror.platform.channels.maxVersion

ミラーリングされる参照プラットフォームの最上位バージョン。

String。たとえば、4.14.1 です。

mirror.platform.channels.shortestPath

最短パスミラーリングまたはフルレンジミラーリングを切り替えます。

ブール値。デフォルト値は false です。

mirror.platform.channels.type

ミラーリングするプラットフォームのタイプ。

String。例: ocp または okd。デフォルトは ocp です。

mirror.platform.graph

OSUS グラフがイメージセットに追加され、その後ミラーに公開されるかどうかを示します。

ブール値。デフォルト値は false です。

storageConfig

イメージセットのバックエンド設定。

オブジェクト

storageConfig.local

イメージセットのローカルバックエンド設定。

オブジェクト

storageConfig.local.path

イメージセットのメタデータを含むディレクトリーのパス。

String。例: ./path/to/dir/

storageConfig.registry

イメージセットのレジストリーバックエンド設定。

オブジェクト

storageConfig.registry.imageURL

バックエンドレジストリー URI。オプションで、URI に namespace 参照を含めることができます。

String。例: quay.io/myuser/imageset:metadata

storageConfig.registry.skipTLS

オプションで、参照されるバックエンドレジストリーの TLS 検証をスキップします。

ブール値。デフォルト値は false です。

注記

minVersion および maxVersion プロパティーを使用して特定の Operator バージョン範囲をフィルターすると、複数のチャネルヘッドエラーが発生する可能性があります。エラーメッセージには、multiple channel heads があることが表示されます。これは、フィルターが適用されると、Operator の更新グラフが切り捨てられるためです。

Operator Lifecycle Manager では、すべての Operator チャネルに、1 つのエンドポイント (最新バージョンの Operator) を持つ更新グラフを形成するバージョンが含まれている必要があります。グラフが 2 つ以上の別個のグラフ、または複数のエンドポイントを持つグラフに移動できるフィルター範囲を適用する場合。

このエラーを回避するには、最新バージョンの Operator を除外しないでください。それでもエラーが発生する場合は、Operator に応じて maxVersion プロパティーを増やすか、minVersion プロパティーを減らす必要があります。すべての Operator グラフは異なる可能性があるため、エラーがなくなるまで、手順に従ってこれらの値を調整する必要がある場合があります。

4.13. Image set configuration examples

次の ImageSetConfiguration ファイルの例は、さまざまなミラーリングのユースケースの設定を示しています。

4.13.1. ユースケース: 最短の OpenShift Container Platform 更新パスを含める

以下の ImageSetConfiguration ファイルは、ローカルストレージバックエンドを使用し、最小バージョン 4.11.37 から最大バージョン 4.12.15 への最短更新パスに沿ってすべての OpenShift Container Platform バージョンを含めます。

ImageSetConfigurationファイルの例

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  local:
    path: /home/user/metadata
mirror:
  platform:
    channels:
      - name: stable-4.12
        minVersion: 4.11.37
        maxVersion: 4.12.15
        shortestPath: true
Copy to Clipboard Toggle word wrap

以下の ImageSetConfiguration ファイルは、レジストリーストレージバックエンドを使用し、最小バージョン 4.13.4 からチャネルの最新バージョンまでのすべての OpenShift Container Platform バージョンを含みます。このイメージセット設定で oc-mirror を呼び出すたびに、stable-4.13 チャネルの最新リリースが評価されるため、定期的に oc-mirror を実行すると、OpenShift Container Platform イメージの最新リリースを自動的に受け取ることができます。

platform.architectures の値を multi に設定すると、マルチアーキテクチャーリリースでミラーリングがサポートされるようになります。

ImageSetConfigurationファイルの例

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  registry:
    imageURL: example.com/mirror/oc-mirror-metadata
    skipTLS: false
mirror:
  platform:
    architectures:
      - "multi"
    channels:
      - name: stable-4.13
        minVersion: 4.13.4
        maxVersion: 4.13.6
Copy to Clipboard Toggle word wrap

4.13.3. ユースケース: 最小から最新までの Operator バージョンを含める

次のImageSetConfigurationファイルは、ローカルストレージバックエンドを使用し、これには、stable チャネルの Kubernetes Operator 用の Red Hat Advanced Cluster Security (4.0.1 以降のバージョン) のみが含まれています。

注記

最小または最大のバージョン範囲を指定した場合、その範囲内のすべての Operator バージョンを受信できない可能性があります。

デフォルトで、oc-mirror は、Operator Lifecycle Manager (OLM) 仕様でスキップされたバージョン、または新しいバージョンに置き換えられたバージョンを除外します。スキップされた Operator のバージョンは、CVE の影響を受けるか、バグが含まれている可能性があります。代わりに新しいバージョンを使用してください。スキップおよび置き換えられたバージョンの詳細は、OLM を使用した更新グラフの作成 を参照してください。

指定した範囲内のすべての Operator バージョンを受信するには、mirror.operators.full フィールドを true に設定します。

ImageSetConfiguration ファイルの例

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  local:
    path: /home/user/metadata
mirror:
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
      packages:
        - name: rhacs-operator
          channels:
          - name: stable
            minVersion: 4.0.1
Copy to Clipboard Toggle word wrap

注記

最新バージョンではなく最大バージョンを指定するには、mirror.operators.packages.channels.maxVersion フィールドを設定します。

4.13.4. ユースケース: Nutanix CSI Operator を含める

次の ImageSetConfiguration ファイルは、ローカルストレージバックエンドを使用します。このファイルには、Nutanix CSI Operator、OpenShift Update Service (OSUS) グラフイメージ、および追加の Red Hat Universal Base Image (UBI) が含まれます。

ImageSetConfiguration ファイルの例

kind: ImageSetConfiguration
apiVersion: mirror.openshift.io/v1alpha2
storageConfig:
  registry:
    imageURL: mylocalregistry/ocp-mirror/openshift4
    skipTLS: false
mirror:
  platform:
    channels:
    - name: stable-4.11
      type: ocp
    graph: true
  operators:
  - catalog: registry.redhat.io/redhat/certified-operator-index:v4.14
    packages:
    - name: nutanixcsioperator
      channels:
      - name: stable
  additionalImages:
  - name: registry.redhat.io/ubi9/ubi:latest
Copy to Clipboard Toggle word wrap

4.13.5. ユースケース: デフォルトの Operator チャネルを含める

次の ImageSetConfiguration ファイルには、OpenShift Elasticsearch Operator の stable-5.7 および stable チャネルが含まれています。安定版 5.7 チャネルのパッケージのみが必要な場合でも、stable チャネルは Operator のデフォルトチャネルであるため、ImageSetConfiguration ファイルにも含める必要があります。そのチャネルでバンドルを使用しない場合も、常に Operator パッケージのデフォルトチャネルを含める必要があります。

ヒント

oc mirror list operators --catalog=<catalog_name> --package=<package_name> コマンドを実行すると、デフォルトチャネルを見つけることができます。

ImageSetConfiguration ファイルの例

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  registry:
    imageURL: example.com/mirror/oc-mirror-metadata
    skipTLS: false
mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
    packages:
    - name: elasticsearch-operator
      channels:
      - name: stable-5.7
      - name: stable
Copy to Clipboard Toggle word wrap

4.13.6. ユースケース: カタログ全体を含める (すべてのバージョン)

次の ImageSetConfiguration ファイルは、mirror.operators.full フィールドを true に設定して、Operator カタログ全体のすべてのバージョンを含めます。

ImageSetConfiguration ファイルの例

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  registry:
    imageURL: example.com/mirror/oc-mirror-metadata
    skipTLS: false
mirror:
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
      full: true
Copy to Clipboard Toggle word wrap

4.13.7. ユースケース: カタログ全体を含める (チャネルヘッドのみ)

次の ImageSetConfiguration ファイルには、Operator カタログ全体のチャネルヘッドが含まれています。

デフォルトでは、カタログ内の各 Operator において、oc-mirror にはデフォルトチャネルから Operator の最新バージョン (チャネルヘッド) が含まれています。チャネルヘッドだけでなく、すべての Operator バージョンをミラーリングする場合は、mirror.operators.full フィールドを true に設定する必要があります。

この例では、targetCatalog フィールドを使用して、カタログをミラーリングする代替 namespace と名前も指定します。

ImageSetConfiguration ファイルの例

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  registry:
    imageURL: example.com/mirror/oc-mirror-metadata
    skipTLS: false
mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
    targetCatalog: my-namespace/my-operator-catalog
Copy to Clipboard Toggle word wrap

4.13.8. ユースケース: 任意のイメージと Helm チャートを含む

次の ImageSetConfiguration ファイルは、レジストリーストレージバックエンドを使用し、これには Helm チャートと追加の Red Hat Universal Base Image (UBI) が含まれています。

ImageSetConfiguration ファイルの例

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
archiveSize: 4
storageConfig:
  registry:
    imageURL: example.com/mirror/oc-mirror-metadata
    skipTLS: false
mirror:
 platform:
   architectures:
     - "s390x"
   channels:
     - name: stable-4.14
 operators:
   - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
 helm:
   repositories:
     - name: redhat-helm-charts
       url: https://raw.githubusercontent.com/redhat-developer/redhat-helm-charts/master
       charts:
         - name: ibm-mongodb-enterprise-helm
           version: 0.2.0
 additionalImages:
   - name: registry.redhat.io/ubi9/ubi:latest
Copy to Clipboard Toggle word wrap

4.13.9. 使用例: EUS リリースのアップグレードパスを含める

次の ImageSetConfiguration ファイルには eus-<version> チャネルが含まれており、maxVersion の値は minVersion の値より 2 マイナーバージョン以上大きい値になっています。

たとえばこの ImageSetConfiguration ファイルでは、minVersion4.12.28 に設定されており、eus-4.14 チャネルの maxVersion4.14.16 です。

ImageSetConfiguration ファイルの例

kind: ImageSetConfiguration
apiVersion: mirror.openshift.io/v2alpha1
mirror:
  platform:
    graph: true # Required for the OSUS Operator
    architectures:
    - amd64
    channels:
    - name: stable-4.12
      minVersion: '4.12.28'
      maxVersion: '4.12.28'
      shortestPath: true
      type: ocp
    - name: eus-4.14
      minVersion: '4.12.28'
      maxVersion: '4.14.16'
      shortestPath: true
      type: ocp
Copy to Clipboard Toggle word wrap

4.14. oc-mirror のコマンドリファレンス

以下の表は、oc mirror サブコマンドとフラグを説明しています。

Expand
表4.2 oc mirror サブコマンド
サブコマンド説明

completion

指定されたシェルのオートコンプリートスクリプトを生成します。

describe

イメージセットの内容を出力します。

help

サブコマンドに関するヘルプを表示します。

init

初期イメージセット設定テンプレートを出力します。

list

利用可能なプラットフォームと Operator のコンテンツとそのバージョンを一覧表示します。

version

oc-mirror バージョンを出力します。

Expand
表4.3 oc mirror フラグ
フラグ説明

-c--config <string>

イメージセット設定ファイルへのパスを指定します。

--continue-on-error

イメージのプルに関連しないエラーが発生した場合は、続行して、可能な限りミラーリングを試みます。

--dest-skip-tls

ターゲットレジストリーの TLS 検証を無効にします。

--dest-use-http

ターゲットレジストリーにはプレーン HTTP を使用します。

--dry-run

イメージをミラーリングせずにアクションを出力します。mapping.txt ファイルおよび pruning-plan.json ファイルを生成します。

--from <string>

oc-mirror の実行によって生成されたイメージセットアーカイブへのパスを指定して、ターゲットレジストリーにロードします。

-h--help

ヘルプを表示します。

--ignore-history

イメージをダウンロードしてレイヤーをパックするときに、過去のミラーリングを無視します。増分ミラーリングを無効にし、より多くのデータをダウンロードする可能性があります。

--manifests-only

ImageContentSourcePolicy オブジェクトのマニフェストを生成して、ミラーレジストリーを使用するようにクラスターを設定しますが、実際にはイメージをミラーリングしません。このフラグを使用するには、--from フラグでイメージセットアーカイブを渡す必要があります。

--max-nested-paths <int>

ネストされたパスを制限する宛先レジストリーのネストされたパスの最大数を指定します。デフォルトは 0 です。

--max-per-registry <int>

レジストリーごとに許可される同時要求の数を指定します。デフォルト値は 6 です。

--oci-insecure-signature-policy

(--include-local-oci-catalogs を使用して) ローカル OCI カタログをミラーリングする場合は、署名をプッシュしないでください。

--oci-registries-config

(--include-local-oci-catalogs を使用して) ローカル OCI カタログをミラーリングするときに、コピー元の代替レジストリーの場所を指定するためのレジストリー設定ファイルを提供します。

--skip-cleanup

アーティファクトディレクトリーの削除を省略します。

--skip-image-pin

Operator カタログのイメージタグをダイジェストピンに置き換えないでください。

--skip-metadata-check

イメージセットの公開時にメタデータをスキップします。

注記

これは、イメージセットが --ignore-history フラグを使用して作成された場合にのみ推奨されます。

--skip-missing

イメージが見つからない場合は、エラーを報告して実行を中止する代わりにスキップします。イメージセット設定で明示的に指定されたカスタムイメージには適用されません。

--skip-pruning

ターゲットミラーレジストリーからのイメージの自動プルーニングを無効にします。

--skip-verification

ダイジェストの検証を省略します。

--source-skip-tls

ソースレジストリーの TLS 検証を無効にします。

--source-use-http

ソースレジストリーにはプレーン HTTP を使用します。

-v--verbose <int>

ログレベルの詳細度の数値を指定します。有効な値は 0 - 9 です。デフォルトは 0 です。

Legal Notice

Copyright © 2025 Red Hat

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat