中間コンテナー・レジストリーを使用したイメージのミラーリング (バージョン 5.2 からバージョン 5.3 へのアップグレード)

クライアント・ワークステーションがインターネットおよびプライベート・コンテナー・レジストリーに接続できない場合は、イメージを中間コンテナー・レジストリーにミラーリングしてから、プライベート・コンテナー・レジストリーにミラーリングする必要があります。

クライアント・ワークステーションがインターネットおよびプライベート・コンテナー・レジストリーに接続する場合は、プライベート・コンテナー・レジストリーへのイメージの直接ミラーリングを参照してください。can

アップグレード・フェーズ
  • ここではありません。 クライアント・ワークステーションの更新
  • ここではありません。 必要な情報の収集
  • ここではありません。 制限付きネットワークでのアップグレードの実行の準備
  • 「ここでの作業」アイコン。 プライベート・コンテナー・レジストリーからのアップグレードの実行の準備
  • ここではありません。 前提ソフトウェアのアップグレード
  • ここではありません。 共有クラスター・コンポーネントのアップグレード
  • ここではありません。 インスタンスのアップグレードの準備
  • ここではありません。 インスタンスのアップグレード
このタスクを実行する必要があるのは誰か?

レジストリー管理者 プライベート・コンテナー・レジストリーにイメージをプッシュする権限を持つレジストリー管理者またはユーザーが、このタスクを実行する必要があります。

このタスクをいつ完了する必要がありますか?

イメージをプライベート・コンテナー・レジストリーからプルする場合は、IBM® Software Hubをアップグレードする前にこのタスクを実行する必要があります。

クラスター上に IBM Software Hub の複数のインスタンスがある場合は、以下のいずれかを行うことができます。

  • 一回限りのセットアップ 以下のようにして、ソフトウェア・イメージをミラーリングする回数を最小限に抑えます。
    1. クラスター上の IBM Software Hub のすべてのインスタンスを識別します。
    2. 各インスタンスにインストールされているすべてのコンポーネントを識別します。
    3. イメージをミラーリングするときに、すべてのインスタンスのすべてのコンポーネントを指定する。
  • 必要に応じて繰り返します 一度に 1 つのインスタンスのイメージをミラーリングします。

始める前に

ベスト・プラクティス: このタスクのコマンドは、インストール環境変数を使用して、記述されたとおりに正確に実行できます。 環境変数スクリプトの更新で新しい環境変数を追加したことを確認します。

さらに、このタスクのコマンドを実行する前に、環境変数を必ず入手してください。

イメージをプライベート・コンテナー・レジストリーにミラーリングする前に、以下のようにします。
  1. ミラーリングする予定のイメージ用に十分なスペースがあることを確認します。 概算イメージ・サイズについては、『ハードウェア要件』を参照してください。
  2. Inference foundation models (ibm-watsonx-ai-ifm) コンポーネントへの依存関係を持つサービスをインストールする場合は、以下のようにします。
    1. Skopeo がクライアント・ワークステーションにインストールされていることを確認します。
      yum install skopeo
    2. Red Hat®のユーザー名とパスワードがあることを確認します。 (https://access.redhat.com への認証に使用する資格情報)
    3. REDHAT_ACCESS_USERNAME 環境変数を Red Hat ユーザー名に設定します。
      export REDHAT_ACCESS_USERNAME=<username>
    4. REDHAT_ACCESS_PASSWORD 環境変数に、Red Hat ユーザー名に関連付けられたパスワードを設定します。
      export REDHAT_ACCESS_PASSWORD=<password>

このタスクについて

cpd-cli manage コマンドを使用して、以下を行います。
  • IBM Entitled Registryから、クライアント・ワークステーション上の中間コンテナー・レジストリーにイメージをミラーリングします。
  • 中間コンテナー・レジストリーからプライベート・コンテナー・レジストリーにイメージをミラーリングします。

cpd-cli manage mirror-images コマンドは、クライアント・ワークステーション上に中間コンテナー・レジストリーを自動的にセットアップします。 中継コンテナー・レジストリーのアドレスは 127.0.0.1:12443 です。

ファイアウォールの内側にある中継コンテナー・レジストリーを移動できる必要があります。

以下のステップでは、以下のステートメントが真であることを前提としています。
  • 単一ステップですべてのコンポーネントをミラーリングします。

    ミラーリングされるコンポーネントは、インストール環境変数スクリプトの ${COMPONENTS} 変数によって決定されます。

    複数のコンポーネントではなく、特定のコンポーネントをミラーリングする場合は、適切なコンポーネント IDを使用して COMPONENTSをエクスポートできます。

  • ミラーリングする必要がある モデルまたはオプション・イメージ を識別した

    ミラーリングされるモデルとオプションのイメージは、インストール環境変数スクリプトの ${IMAGE_GROUPS} 変数によって決定されます。

    モデルまたはオプション・イメージをミラーリングする必要がない場合は、${IMAGE_GROUPS} 変数を含まないコマンドを実行します。

手順

  1. インターネットに接続できるクライアント・ワークステーションから:
    1. IBM Entitled Registry レジストリーにログインします。
      cpd-cli manage login-entitled-registry \
      ${IBM_ENTITLEMENT_KEY}
    2. IBM Entitled Registryからミラーリングするイメージへのアクセス権限があることを確認します。
      1. IBM Entitled Registryを検査します。
        ヒント: 特定のコンポーネントのイメージへのアクセス権限があることを検証する場合は、list-images コマンドを実行する前に、以下のコマンドを実行できます。
        export COMPONENTS=<component-ID>
        ご使用の環境に該当するコマンドを実行します。
        クライアント・ワークステーションに CASE パッケージが既にある
        cpd-cli manage list-images \
        --components=${COMPONENTS} \
        --release=${VERSION} \
        --inspect_source_registry=true

        GitHub (github.com/IBM) からの CASE パッケージのダウンロード
        cpd-cli manage list-images \
        --components=${COMPONENTS} \
        --release=${VERSION} \
        --inspect_source_registry=true

        IBM Cloud Pak Open Container Initiative リポジトリーからの CASE パッケージのダウンロード
        cpd-cli manage list-images \
        --components=${COMPONENTS} \
        --release=${VERSION} \
        --inspect_source_registry=true \
        --from_oci=true

        出力は、work/offline/${VERSION} ディレクトリーの list_images.csv ファイルに保存されます。

      2. 出力にエラーがないか確認します。
        grep "level=fatal" list_images.csv

        このコマンドは、許可エラーまたはネットワーク・エラーが原因で失敗したイメージを返します。

    3. EDB Postgres Standard users only. EDB Postgres Standardを購入した場合は、以下のコマンドを実行して、EDB Postgres Enterpriseイメージを、プライベート・コンテナー・レジストリーにミラーリングされるイメージのリストから削除します。
      デフォルトの cpd-cli-workspace/olm-utils-workspace/work ディレクトリーを使用するワークステーション
      sed -i -e '/edb-postgres-advanced/d' ./cpd-cli-workspace/olm-utils-workspace/work/offline/${VERSION}/.ibm-pak/data/cases/ibm-cpd-edb/*/ibm-cpd-edb-*-images.csv
      CPD_CLI_MANAGE_WORKSPACE 環境変数を使用するワークステーション
      sed -i -e '/edb-postgres-advanced/d' ${CPD_CLI_MANAGE_WORKSPACE}/work/offline/${VERSION}/.ibm-pak/data/cases/ibm-cpd-edb/*/ibm-cpd-edb-*-images.csv
    4. Watson Studio users only. Watson Studioのイメージをミラーリングする場合は、必要がない場合は以下のイメージを削除できます。

      GPU イメージ

      GPU イメージはデフォルトでミラーリングされます。 GPU イメージが不要な場合は、以下のコマンドを実行して削除します。

      デフォルトの cpd-cli-workspace/olm-utils-workspace/work ディレクトリーを使用するワークステーション
      sed -i -e '/gpu/d' ./cpd-cli-workspace/olm-utils-workspace/work/offline/${VERSION}/.ibm-pak/data/cases/ibm-wsl-runtimes/*/ibm-wsl-runtimes-*-images.csv
      CPD_CLI_MANAGE_WORKSPACE 環境変数を使用するワークステーション
      sed -i -e '/gpu/d' ${CPD_CLI_MANAGE_WORKSPACE}/work/offline/${VERSION}/.ibm-pak/data/cases/ibm-wsl-runtimes/*/ibm-wsl-runtimes-*-images.csv

      事前トレーニングされた NLP モデル

      事前トレーニングされた NLP イメージは、デフォルトでミラーリングされます。 事前トレーニングされた自然言語処理 (NLP) モデルが不要な場合は、以下のコマンドを実行して削除します。

      デフォルトの cpd-cli-workspace/olm-utils-workspace/work ディレクトリーを使用するワークステーション
      sed -i -e '/nlp/d' ./cpd-cli-workspace/olm-utils-workspace/work/offline/${VERSION}/.ibm-pak/data/cases/ibm-wsl-runtimes/*/ibm-wsl-runtimes-*-images.csv
      CPD_CLI_MANAGE_WORKSPACE 環境変数を使用するワークステーション
      sed -i -e '/nlp/d' ${CPD_CLI_MANAGE_WORKSPACE}/work/offline/${VERSION}/.ibm-pak/data/cases/ibm-wsl-runtimes/*/ibm-wsl-runtimes-*-images.csv

    5. イメージを中間コンテナー・レジストリーにミラーリングします。

      このコマンドは、クライアント・ワークステーション上に中間コンテナー・レジストリーを自動的にセットアップします。 中継コンテナー・レジストリーのアドレスは 127.0.0.1:12443 です。

      ヒント: このコマンドの動作を変更する必要があるかどうかを判別します。
      • デフォルトでは、このコマンドは、クラスター・アーキテクチャーに必要なイメージのみをミラーリングします。 サポートされるすべてのアーキテクチャー用のイメージをミラーリングする場合は、--arch=${IMAGE_ARCH} オプションを削除します。
      • このコマンドは、${COMPONENTS} 環境変数で指定されたすべてのコンポーネントのイメージをミラーリングします。 特定のコンポーネントのイメージをミラーリングする場合は、コマンドを実行する前に export COMPONENTS=<component-ID> を実行できます。

      モデルまたはオプション・イメージをミラーリングする必要がある
      cpd-cli manage mirror-images \
      --components=${COMPONENTS} \
      --groups=${IMAGE_GROUPS} \
      --release=${VERSION} \
      --target_registry=127.0.0.1:12443 \
      --arch=${IMAGE_ARCH} \
      --case_download=false

      モデルやオプション・イメージをミラーリングする必要はありません。
      cpd-cli manage mirror-images \
      --components=${COMPONENTS} \
      --release=${VERSION} \
      --target_registry=127.0.0.1:12443 \
      --arch=${IMAGE_ARCH} \
      --case_download=false

      コンポーネントごとに、このコマンドは work ディレクトリーにログ・ファイルを生成します。

      ヒント: 以下のコマンドを実行して、ログ・ファイル内のエラーを出力します。
      grep "error" mirror_*.log
    6. イメージが中間コンテナー・レジストリーにミラーリングされたことを確認します。
      1. 中間コンテナー・レジストリーの内容を検査します。
        cpd-cli manage list-images \
        --components=${COMPONENTS} \
        --release=${VERSION} \
        --target_registry=127.0.0.1:12443 \
        --case_download=false

        出力は、work/offline/${VERSION} ディレクトリーの list_images.csv ファイルに保存されます。

      2. 出力にエラーがないか確認します。
        grep "level=fatal" list_images.csv

        このコマンドは、欠落しているか検査できないイメージを返します。

    7. Inference foundation models (ibm-watsonx-ai-ifm) コンポーネントへの依存関係を持つサービスをインストールする予定の場合は、必要なvLLMイメージを中間コンテナー・レジストリーにミラーリングします。

      ミラーリングするイメージは、インストールする予定のモデルによって異なります。

      Mistral AI モデル
      以下のいずれかの Mistral AI・モデルをインストールする予定の場合は、IBM Entitled Registryから必要な vLLM・イメージをミラーリングする必要があります。
      • codestral-22b
      • codestral-2501
      • ministral-8b-instruct
      • mistral-large
      • mistral-large-instruct-2411
      • mistral-small-instruct
      • pixtral-large-instruct-2411
      skopeo copy --all \
      --src-username cp \
      --src-password ${IBM_ENTITLEMENT_KEY} \
      --src-tls-verify=false \
      --dest-tls-verify=false \
      docker://cp.icr.io/cp/cpd/vllm@sha256:cc95bc7619549a5fb9342f8c41c613df5cd65b4e1f90b408db062559a2fdcff9 \
      docker://127.0.0.1:12443/cp/cpd/vllm@sha256:cc95bc7619549a5fb9342f8c41c613df5cd65b4e1f90b408db062559a2fdcff9
      その他のすべてのモデル
      その他のすべてのモデルの場合、registry.redhat.ioから RHOAI vLLM CUDA イメージをミラーリングする必要があります。
      1. registry.redhat.ioにログインします。
        skopeo login registry.redhat.io \
        --username ${REDHAT_ACCESS_USERNAME} \
        --password ${REDHAT_ACCESS_PASSWORD}
      2. イメージをクライアント・ワークステーションの tmp/rhoai-new ディレクトリーにコピーします。
        skopeo copy --all 
        docker://registry.redhat.io/rhoai/odh-vllm-cuda-rhel9@sha256:fb84fbf103bf450ef5b060fc5f21a9cf16b166dba207a3c50aa91bccd919d604 \
        dir://tmp/rhoai-new
  2. 中間コンテナー・レジストリーをファイアウォールの内側に移動します。

    中間コンテナー・レジストリーを移動するためのオプション
    オプション 詳細
    ファイアウォールの内側に移動できるラップトップなどの ポータブル・コンピュート・デバイスを使用します。
    同じ装置を使用して、以下のことを行うことができます。
    • IBM Entitled Registryから中間コンテナー・レジストリーにイメージをミラーリングします。
    • 中間コンテナー・レジストリーからプライベート・コンテナー・レジストリーへのイメージのミラーリング
    ポータブル・ストレージ・デバイス (USB ドライブなど) を使用します。これは、ファイアウォールの背後に移動することができます。
    2 つのクライアント・ワークステーションをセットアップする必要があります。
    • インターネットに接続できるワークステーション。 このワークステーションから、IBM Entitled Registryからポータブル・ストレージ・デバイス上の中継コンテナー・レジストリーにイメージをミラーリングできます。
    • プライベート・コンテナー・レジストリーに接続できるワークステーション。 ポータブル・ストレージ・デバイスをこのワークステーションに移動した後、中間コンテナー・レジストリーからプライベート・コンテナー・レジストリーにイメージをミラーリングできます。
    重要: プライベート・コンテナー・レジストリーに接続できるワークステーションには、以下が必要です。
    • cpd-cli のコピー
    • work ディレクトリーのコピー。これには、CASE パッケージと中間コンテナー・レジストリーが含まれます。

      簡単にするために、cpd-cli-workspace または CPD_CLI_MANAGE_WORKSPACE ディレクトリー全体をコピーすることができます。

    ファイル転送プロトコル ( scpsftp など) を使用して、イメージをファイアウォールの内側に移動します。
    2 つのクライアント・ワークステーションをセットアップする必要があります。
    • インターネットに接続できるワークステーション。 このワークステーションから、IBM Entitled Registry から中継コンテナー・レジストリーにイメージをミラーリングできます。
    • プライベート・コンテナー・レジストリーに接続できるワークステーション。 中間コンテナー・レジストリーをこのワークステーションに転送した後、中間コンテナー・レジストリーからプライベート・コンテナー・レジストリーにイメージをミラーリングできます。
    重要: プライベート・コンテナー・レジストリーに接続できるワークステーションには、以下が必要です。
    • cpd-cli のコピー
    • work ディレクトリーのコピー。これには、CASE パッケージと中間コンテナー・レジストリーが含まれます。

      簡単にするために、cpd-cli-workspace または CPD_CLI_MANAGE_WORKSPACE ディレクトリー全体をコピーすることができます。


  3. RHOAI vLLM CUDA イメージを tmp/rhoai-new ディレクトリーにミラーリングした場合は、そのディレクトリーをファイアウォールの後ろに移動します。
  4. プライベート・コンテナー・レジストリーに接続するクライアント・ワークステーションから:
    1. プライベート・コンテナー・レジストリーにログインします。

      以下のコマンドは、資格情報で保護されたプライベート・コンテナー・レジストリーを使用していることを前提としています。

      cpd-cli manage login-private-registry \
      ${PRIVATE_REGISTRY_LOCATION} \
      ${PRIVATE_REGISTRY_PUSH_USER} \
      ${PRIVATE_REGISTRY_PUSH_PASSWORD}
      プライベート・レジストリーが保護されていない場合は、以下の引数を省略します。
      • ${PRIVATE_REGISTRY_PUSH_USER}
      • ${PRIVATE_REGISTRY_PUSH_PASSWORD}
    2. 中間コンテナー・レジストリーからプライベート・コンテナー・レジストリーにイメージをミラーリングします。
      ヒント: このコマンドの動作を変更する必要があるかどうかを判別します。
      • デフォルトでは、このコマンドは、クラスター・アーキテクチャーに必要なイメージのみをミラーリングします。 サポートされるすべてのアーキテクチャー用のイメージをミラーリングする場合は、--arch=${IMAGE_ARCH} オプションを削除します。
      • このコマンドは、${COMPONENTS} 環境変数で指定されたすべてのコンポーネントのイメージをミラーリングします。 特定のコンポーネントのイメージをミラーリングする場合は、コマンドを実行する前に export COMPONENTS=<component-ID> を実行できます。

      モデルまたはオプション・イメージをミラーリングする必要がある
      cpd-cli manage mirror-images \
      --components=${COMPONENTS} \
      --groups=${IMAGE_GROUPS} \
      --release=${VERSION} \
      --source_registry=127.0.0.1:12443 \
      --target_registry=${PRIVATE_REGISTRY_LOCATION} \
      --arch=${IMAGE_ARCH} \
      --case_download=false

      モデルやオプション・イメージをミラーリングする必要はありません。
      cpd-cli manage mirror-images \
      --components=${COMPONENTS} \
      --release=${VERSION} \
      --source_registry=127.0.0.1:12443 \
      --target_registry=${PRIVATE_REGISTRY_LOCATION} \
      --arch=${IMAGE_ARCH} \
      --case_download=false

      コンポーネントごとに、このコマンドは work ディレクトリーにログ・ファイルを生成します。

    3. イメージがプライベート・コンテナー・レジストリーにミラーリングされたことを確認します。
      1. プライベート・コンテナー・レジストリーの内容を検査します。
        cpd-cli manage list-images \
        --components=${COMPONENTS} \
        --release=${VERSION} \
        --target_registry=${PRIVATE_REGISTRY_LOCATION} \
        --case_download=false

        出力は、work/offline/${VERSION} ディレクトリーの list_images.csv ファイルに保存されます。

      2. 出力にエラーがないか確認します。
        grep "level=fatal" list_images.csv

        このコマンドは、欠落しているか検査できないイメージを返します。

    4. Inference foundation models (ibm-watsonx-ai-ifm) コンポーネントへの依存関係を持つサービスをインストールする予定の場合は、必要なvLLMイメージを中継コンテナー・レジストリーからプライベート・コンテナー・レジストリーにミラーリングします。

      ミラーリングするイメージは、インストールする予定のモデルによって異なります。

      Mistral AI モデル
      以下のいずれかの Mistral AI・モデルをインストールする予定の場合は、必要な vLLM・イメージをプライベート・コンテナー・レジストリーにミラーリングする必要があります。
      • codestral-22b
      • codestral-2501
      • ministral-8b-instruct
      • mistral-large
      • mistral-large-instruct-2411
      • mistral-small-instruct
      • pixtral-large-instruct-2411
      skopeo copy --all \
      --src-tls-verify=false \
      --dest-username ${PRIVATE_REGISTRY_PUSH_USER} \
      --dest-password ${PRIVATE_REGISTRY_PUSH_PASSWORD} \
      --dest-tls-verify=false \
      docker://127.0.0.1:12443/cp/cpd/vllm@sha256:cc95bc7619549a5fb9342f8c41c613df5cd65b4e1f90b408db062559a2fdcff9 \
      docker://${PRIVATE_REGISTRY_LOCATION}/cp/cpd/vllm@sha256:cc95bc7619549a5fb9342f8c41c613df5cd65b4e1f90b408db062559a2fdcff9
      その他のすべてのモデル
      その他のすべてのモデルの場合、RHOAI vLLM CUDA イメージをプライベート・コンテナー・レジストリーにミラーリングする必要があります。
      skopeo copy --all \
      --src-tls-verify=false \
      --dest-username ${PRIVATE_REGISTRY_PUSH_USER} \
      --dest-password ${PRIVATE_REGISTRY_PUSH_PASSWORD} \
      --dest-tls-verify=false \
      dir://tmp/rhoai-new \
      docker://${PRIVATE_REGISTRY_LOCATION}/rhoai/odh-vllm-cuda-rhel9@sha256:fb84fbf103bf450ef5b060fc5f21a9cf16b166dba207a3c50aa91bccd919d604

結果

ご使用のアーキテクチャーのイメージがプライベート・コンテナー・レジストリーにミラーリングされます。
注: cpfs コンポーネントなどの一部のコンポーネントは、マルチアーキテクチャー・イメージのみを提供します。 マルチアーキテクチャー・イメージを持つコンポーネントの場合、すべてのイメージがプライベート・コンテナー・レジストリーにミラーリングされます。

次のタスク

イメージをプライベート・コンテナー・レジストリーにミラーリングしたので、プライベート・コンテナー・レジストリーからのolm-utils-v4イメージのプル (バージョン 5.2 からバージョン 5.3 へのアップグレード) を実行する準備ができました。