开始之前
最佳实践: 若已设置环境变量,可直接按此任务中的命令执行。 有关说明,请参阅
设置安装环境变量。
请确保在本任务中执行命令之前已设置环境变量。
在将镜像推送到私有容器注册表之前:
- 请确保您为计划镜像的图像预留了足够的空间。 有关图像尺寸的近似信息,请参阅硬件要求。
- 若您计划安装依赖于 (
ibm-watsonx-ai-ifm) Inference foundation models 组件的服务:
- 确保已在客户端
Skopeo 工作站上安装:yum install skopeo
- 请确保您已准备好 Red Hat® 用户名和密码。 (您用于向...进行
https://access.redhat.com身份验证的凭据)
- 将
REDHAT_ACCESS_USERNAME 环境变量设置为您的 Red
Hat 用户名:export REDHAT_ACCESS_USERNAME=<username>
- 设置
REDHAT_ACCESS_PASSWORD 环境变量,该变量关联您 Red
Hat 用户名的密码:export REDHAT_ACCESS_PASSWORD=<password>
关于本任务
使用 命令 cpd-cli
manage 将 中的镜像 IBM
Entitled Registry 镜像到私有容器注册表。
以下步骤假设下列陈述为真:
- 您将一次性镜像所有组件。
镜像的组件由安装环境变量脚本中的变量 ${COMPONENTS} 决定。
若需镜像特定组件而非多个组件,可使用对应的组件 COMPONENTS ID进行导出。
- 您已确定需要镜像的任何模型或可选图像
镜像的模型和可选图像由安装环境变量脚本中的变量 ${IMAGE_GROUPS} 决定。
若无需镜像任何模型或可选图像,请运行不包含 ${IMAGE_GROUPS} 该变量的命令。
过程
- 登录注册表 IBM
Entitled Registry :
cpd-cli manage login-entitled-registry \
${IBM_ENTITLEMENT_KEY}
- 登录到私有容器注册表。
以下命令假设您正在使用通过凭据保护的私有容器注册表:
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}
- 请确认您能够访问需要镜像的图像文件 IBM
Entitled Registry:
- 检查 IBM
Entitled Registry。
提示: 若需验证是否可访问特定组件的图片,可在执行命令
list-images 前运行以下命令:
export COMPONENTS=<component-ID>
根据您的环境运行相应的命令:
您已在客户端工作站上安装了 CASE 软件包
cpd-cli manage list-images \
--components=${COMPONENTS} \
--release=${VERSION} \
--inspect_source_registry=true
从 GitHub 下载 CASE 软件包( github.com/IBM )
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 。
- 检查输出是否有错误:
grep "level=fatal" list_images.csv
该命令返回因授权错误或网络错误而失败的图像。
- EDB Postgres Standard 仅限用户使用。 若您已购买 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
- Watson Studio 仅限用户使用。 若您正在镜像这些图像, 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)模型,请运行以下命令将其移除:
- 使用默认
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
- 将镜像镜像到私有容器注册表。
提示: 请确定是否需要修改此命令的行为:
- 默认情况下,此命令仅镜像集群架构所需的镜像。 若需为所有支持的架构镜像图像,请移除 选项
--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
- 确认图像已镜像到私有容器注册表:
- 检查私有容器注册表中的内容:
cpd-cli manage list-images \
--components=${COMPONENTS} \
--release=${VERSION} \
--target_registry=${PRIVATE_REGISTRY_LOCATION} \
--case_download=false
输出将保存至目录 work/offline/${VERSION} 中的文件 list_images.csv 。
- 检查输出是否有错误:
grep "level=fatal" list_images.csv
该命令返回缺失或无法检查的图像。
- 若计划安装依赖于 (
ibm-watsonx-ai-ifm) Inference foundation models 组件的服务,请将所需 vLLM 镜像镜像到私有容器注册表。
您所映射的图像取决于您计划安装的模型。
- Mistral AI 模型
若计划安装
Mistral AI 以下任一型号,必须从以下位置镜像所需的 vLLM
IBM
Entitled Registry 映像:
- 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
- 所有其他型号
对于所有其他型号,您必须从以下地址镜像 RHOAI
registry.redhat.io 的 CUDA 镜像: vLLM
- 登录到
registry.redhat.io:skopeo login registry.redhat.io \
--username ${REDHAT_ACCESS_USERNAME} \
--password ${REDHAT_ACCESS_PASSWORD}
- 将图像复制到你的私有容器注册表:
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 )仅提供多架构镜像。 对于具有多架构镜像的组件,所有镜像都会被镜像到私有容器注册表中。