プライベート・コンテナー・レジストリーへのイメージの直接ミラーリング

クライアント・ワークステーションがインターネットおよびプライベート・コンテナー・レジストリーに接続できる場合は、イメージをプライベート・コンテナー・レジストリーに直接ミラーリングできます。

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

インストール・フェーズ
  • ここではありません。 クライアント・ワークステーションのセットアップ
  • ここではありません。 クラスターのセットアップ
  • ここではありません。 必要な情報の収集
  • ここではありません。 制限付きネットワークでのインストールの実行準備
  • 「ここでの作業」アイコン。 プライベート・コンテナー・レジストリーからのインストールの実行準備
  • ここではありません。 IBM® Software Hubのためのクラスターの準備
  • ここではありません。 IBM Software Hub のインスタンスのインストールの準備
  • ここではありません。 IBM Software Hub のインスタンスのインストール
  • ここではありません。 control plane のセットアップ
  • ここではありません。 ソリューションおよびサービスのインストール
このタスクを実行する必要があるのは誰か?

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

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

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

  • 1 回限りのセットアップ 計画を慎重に行うことで、クラスターにインストールする予定のすべてのコンポーネントを特定して、このタスクを 1 回実行するだけで済むようにすることができます。
  • 必要に応じて繰り返します ただし、追加のサービスをインストールすることにし、イメージがプライベート・コンテナー・レジストリーにない場合は、このタスクを複数回実行しなければならないことがあります。

始める前に

ベスト・プラクティス: 環境変数をセットアップした場合、このタスクに記載されているとおりにコマンドを実行できます。 手順については、『インストール環境変数のセットアップ』『 』を参照してください。

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

イメージをプライベート・コンテナー・レジストリーにミラーリングする前に、以下のようにします。
  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 からプライベート・コンテナー・レジストリーにイメージをミラーリングします。

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

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

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

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

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

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

手順

  1. IBM Entitled Registry レジストリーにログインします。
    cpd-cli manage login-entitled-registry \
    ${IBM_ENTITLEMENT_KEY}
  2. プライベート・コンテナー・レジストリーにログインします。

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

    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}
  3. 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

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

  4. 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
  5. 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

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

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

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

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

    ヒント: 以下のコマンドを実行して、ログ・ファイル内のエラーを出力します。
    grep "error" mirror_*.log
  7. イメージがプライベート・コンテナー・レジストリーにミラーリングされたことを確認します。
    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

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

  8. 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-username ${PRIVATE_REGISTRY_PUSH_USER} \
    --dest-password ${PRIVATE_REGISTRY_PUSH_PASSWORD} \
    --dest-tls-verify=false \
    docker://cp.icr.io/cp/cpd/vllm@sha256:cc95bc7619549a5fb9342f8c41c613df5cd65b4e1f90b408db062559a2fdcff9 \
    docker://${PRIVATE_REGISTRY_LOCATION}/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. イメージをプライベート・コンテナー・レジストリーにコピーします。
      skopeo copy --all \
      --dest-username ${PRIVATE_REGISTRY_PUSH_USER} \
      --dest-password ${PRIVATE_REGISTRY_PUSH_PASSWORD} \
      docker://registry.redhat.io/rhoai/odh-vllm-cuda-rhel9@sha256:fb84fbf103bf450ef5b060fc5f21a9cf16b166dba207a3c50aa91bccd919d604 \
      docker://${PRIVATE_REGISTRY_LOCATION}/rhoai/odh-vllm-cuda-rhel9@sha256:fb84fbf103bf450ef5b060fc5f21a9cf16b166dba207a3c50aa91bccd919d604

結果

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

次のタスク

イメージをプライベート・コンテナー・レジストリーにミラーリングしたので、IBM Software Hub・ソフトウェア・イメージのイメージ・ダイジェスト・ミラー・セットの構成を完了する準備ができました。