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


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

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

重要

oc-mirror プラグインを使用した非接続環境のイメージのミラーリングは、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat の実稼働環境におけるサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

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

  1. イメージセット設定ファイルを作成します。
  2. イメージセットをミラーレジストリーにミラーリングします。
  3. oc-mirror プラグインが生成したリソースを使用するようにクラスターを設定します。
  4. これらの手順を繰り返して、必要に応じてミラーレジストリーを更新します。

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

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

  • OpenShift Container Platform のリリース、Operator、ヘルムチャート、およびその他のイメージをミラーリングするための一元化された方法を提供します。
  • OpenShift Container Platform および Operator の更新パスを維持します。
  • 宣言型イメージセット設定ファイルを使用して、クラスターに必要な OpenShift Container Platform リリース、Operator、およびイメージのみを含めます。
  • 将来のイメージセットのサイズを縮小するインクリメンタルミラーリングを実行します。

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

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

重要

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

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

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 を使用してサードパーティーのレジストリーをテストしません。

関連情報

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

3.4.3. 前提条件

  • 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 のデプロイ または Quay Operator の使用による OpenShift への Red Hat Quay のデプロイ を参照してください。レジストリーの選択とインストールについてさらにサポートが必要な場合は、営業担当者または Red Hat サポートにお問い合わせください。

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

3.4.4. ミラーホストの準備

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

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

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

前提条件

  • OpenShift CLI (oc) がインストールされている。

手順

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

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

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

    $ chmod +x oc-mirror
    注記

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

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

    $ sudo mv oc-mirror /usr/local/bin/.

検証

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

    $ oc mirror help

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

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

警告

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

警告

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

前提条件

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

手順

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

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

    $ cat ./pull-secret | jq . > <path>/<pull_secret_file_in_json> 1
    1
    プルシークレットを保存するフォルダーへのパスおよび作成する JSON ファイルの名前を指定します。
  3. ファイルを ~/.docker/config.json または $XDG_RUNTIME_DIR/containers/auth.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"
        }
      }
    }
  4. ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードまたはトークンを生成します。

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

      "auths": {
        "<mirror_registry>": { 1
          "auth": "<credentials>", 2
          "email": "you@example.com"
        }
      },
    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"
        }
      }
    }

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

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

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

重要

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

手順

  1. 必要な設定の詳細を指定する ImageSetConfiguration リソースを作成します。

    ImageSetConfiguration ファイルの例

    apiVersion: mirror.openshift.io/v1alpha1
    kind: ImageSetConfiguration
    archiveSize: 4 1
    mirror:
     ocp:
       channels:
         - name: stable-4.9 2
     operators:
       - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.9 3
    storageConfig: 4
     registry:
       imageURL: example.com/example/oc-mirror 5

    1
    イメージセット内の各ファイルの最大サイズ (GiB 単位)。
    2
    OpenShift Container Platform イメージを取得するためのチャネル。
    3
    OpenShift Container Platform イメージを取得するための Operator カタログ。
    4
    イメージセットのメタデータを保存するバックエンドの場所。この場所は、レジストリーまたはローカルディレクトリーにすることができます。storageConfig 値を指定する必要があります。
    5
    ストレージバックエンドのレジストリー URL。

    この例では、registry.redhat.io/redhat/redhat-operator-index:v4.9 Operator カタログの stable-4.9 チャネルからイメージをプルし、イメージセットのメタデータを example.com/example/oc-mirror レジストリーに保存します。

  2. ファイルを imageset-config.yaml として保存します。このファイルは、コンテンツをミラーリングするときに oc mirror コマンドで必要になります。

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

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

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

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

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

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

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

重要

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

多くの場合、ミラーレジストリーにデータを入力するときの最初のイメージセットのダウンロードが、最も大きなものとなります。最後にコマンドを実行した後に変更されたイメージのみをダウンロードするため、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
    1
    作成されたイメージセット設定ファイルを渡します。この手順では、imageset-config.yaml という名前であることを前提としています。
    2
    イメージセットファイルをミラーリングするレジストリーを指定します。レジストリーは docker:// で始まる必要があります。ミラーレジストリーに最上位の namespace を指定する場合は、これ以降の実行でもこれと同じ namespace を使用する必要があります。

検証

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

次のステップ

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

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

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

3.4.6.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
    1
    作成されたイメージセット設定ファイルを渡します。この手順では、imageset-config.yaml という名前であることを前提としています。
    2
    イメージセットファイルを出力するターゲットディレクトリーを指定します。ターゲットディレクトリーのパスは、file:// で始まる必要があります。

検証

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

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

    $ ls

    出力例

    mirror_seq1_000000.tar

次のステップ

  • イメージセットの.tar ファイルを非接続環境に転送します。
3.4.6.2.2. ディスクからミラーへのミラーリング

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

前提条件

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

手順

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

    $ oc mirror --from=./mirror_seq1_000000.tar \ 1
      docker://registry.example:5000              2
    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 が生成したリソースを使用するようにクラスターを設定します。

3.4.7. 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/
  3. 以下のコマンドを実行して、リリースイメージの署名をクラスターに適用します。

    $ oc apply -f ./oc-mirror-workspace/results-1639608409/release-signatures/

検証

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

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

    $ oc get catalogsource --all-namespaces

3.4.8. ミラーレジストリーを更新する

フルイメージセットをミラーレジストリーに公開した後、oc-mirror プラグインを使用して、更新されたイメージでミラーレジストリーを更新できます。

oc-mirror プラグインを再度実行すると、前回の実行以降に新しく更新されたイメージのみを含むイメージセットが生成されます。

注記

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

前に作成されたイメージセットとの違いのみを取り込むため、生成されたイメージセットは、多くの場合、最初のイメージセットよりも小さく、迅速に処理されます。

重要

生成されたイメージセットはシーケンシャルであり、ターゲットミラーレジストリーに順番に同期する必要があります。

前提条件

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

手順

  1. 最初のイメージセットの作成に使用したときと同じ手順に従い、ミラーレジストリーにミラーリングします。手順については、部分的な非接続環境でのイメージセットのミラーリング または 完全な非接続環境でのイメージセットのミラーリング を参照してください。

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

3.4.9. Image set configuration parameters

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

表3.1 ImageSetConfiguration パラメーター
パラメーター説明

apiVersion

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

文字列。例: mirror.openshift.io/v1alpha1

archiveSize

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

integer例: 4

mirror

イメージセットの設定。

オブジェクト

mirror.additionalImages

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

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

additionalImages:
  - name: registry.redhat.io/ubi8/ubi:latest

mirror.additionalImages.name

ミラーリングするイメージのタグ。

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

mirror.helm

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

オブジェクト

mirror.helm.local

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

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

local:
  - name: podinfo
    path: /test/podinfo-5.0.0.tar.gz

mirror.helm.local.name

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

文字列。例: podinfo

mirror.helm.local.path

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

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

mirror.helm.repos

ミラーリング元のリモートヘルムリポジトリー。

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

repos:
  - name: podinfo
    url: https://example.github.io/podinfo
    charts:
      - name: podinfo
        version: 5.0.0

mirror.helm.repos.name

ミラーリング元のヘルムリポジトリーの名前。

文字列。例: podinfo

mirror.helm.repos.url

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

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

mirror.helm.repos.charts

ミラーリングするリモートヘルムチャート。

オブジェクトの配列。

mirror.helm.repos.charts.name

ミラーリングするヘルムチャートの名前。

文字列。例: podinfo

mirror.helm.repos.charts.version

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

文字列。例: 5.0.0

mirror.ocp

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

オブジェクト

mirror.ocp.channels

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

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

channels:
  - name: stable-4.7
  - name: stable-4.6
    versions:
      - '4.6.36'

mirror.ocp.channels.name

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

文字列。例: stable-4.9 または okd

mirror.ocp.channels.versions

指定されたチャネル内のリリースバージョンのリスト。

文字列。例: 4.9.6

mirror.operators

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

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

operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.9
    headsOnly: false
    packages:
      - name: elasticsearch-operator
        startingVersion: '2.4.0'

mirror.operators.catalog

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

文字列。例: registry.redhat.io/redhat/redhat-operator-index:v4.9

mirror.operators.headsOnly

チャネル HEAD のダウンロードとフルチャネルのダウンロードを切り替えます。mirror.operators.packages と組み合わせて使用することはできません。

ブール値

mirror.operators.packages

Operator パッケージ設定

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

operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.8
    headsOnly: false
    packages:
      - name: elasticsearch-operator
        startingVersion: '5.2.3-31'

mirror.operators.packages.name

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

文字列。例: elasticsearch-operator

mirror.operators.packages.startingVersion

ミラーリングする Operator パッケージの開始バージョン。Operator のすべてのバージョンは、startingVersion の値と、参照されているバージョンを含む各チャネルの HEAD バージョンの間でミラーリングされます。

文字列。例: 5.2.3-31

mirror.operators.packages.channels

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

オブジェクト

mirror.operators.packages.channels.name

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

文字列。例:fast または stable-v4.9

mirror.operators.packages.channels.startingVersion

ミラーリングする Operator チャネルの開始バージョン。Operator のすべてのバージョンは、startingVersion の値と指定されたチャネルの HEAD バージョンの間でミラーリングされます。

文字列。例: 5.2.3-31

storageConfig

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

オブジェクト

storageConfig.local

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

オブジェクト

storageConfig.local.path

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

文字列。例: ./path/to/dir/

storageConfig.registry

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

オブジェクト

storageConfig.registry.imageURL

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

文字列。例: quay.io/myuser/imageset:metadata

storageConfig.registry.skipTLS

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

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

3.4.10. Image set configuration examples

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

ユースケース: 任意のイメージとヘルムチャートを含む

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

ImageSetConfiguration ファイルの例

apiVersion: mirror.openshift.io/v1alpha1
kind: ImageSetConfiguration
archiveSize: 4
storageConfig:
 registry:
   imageURL: example.com/example/oc-mirror
   skipTLS: false
mirror:
 ocp:
   channels:
     - name: stable-4.10
 operators:
   - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.10
 helm:
   repos:
     - 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/ubi8/ubi:latest

ユースケース: 特定の Operator バージョンを含む

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

ImageSetConfigurationファイルの例

apiVersion: mirror.openshift.io/v1alpha1
kind: ImageSetConfiguration
storageConfig:
  local:
    path: /home/user/metadata
mirror:
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.10
      headsOnly: false
      packages:
        - name: rhacs-operator
          channels:
          - name: latest
          startingVersion: 3.67.0

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

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

表3.2 oc mirror サブコマンド
サブコマンド説明

completion

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

describe

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

help

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

リスト

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

version

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

表3.3 oc mirror フラグ
フラグ説明

-c, --config <string>

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

--continue-on-error

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

--dest-skip-tls

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

--dest-use-http

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

--dry-run

イメージをミラーリングせずにアクションを出力します。

--from <string>

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

-h--help

ヘルプを表示します。

--log-level < 文字列 >

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

--manifests-only

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

--skip-cleanup

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

--skip-image-pin

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

--skip-missing

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

--skip-verification

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

--source-skip-tls

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

--source-use-http

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

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.