将插件 cpd-cli 的动态图像移动到私有容器注册表

重要提示:4.8IBM Cloud Pak® for Data 版本将于2025年7月31日达到支持终止(EOS)。 有关更多信息,请参阅 4.X 版本 IBM Cloud Pak for Data 的服务终止公告

升级至 IBM Software Hub 版本 5.1 ,在 4.8 版本达到支持 IBM Cloud Pak for Data 终止前完成升级。 有关更多信息,请参阅IBM Cloud Pak for Data 版本 4.8 升级到 IBM 的说明: Software Hub 版本 5.1。

若干 cpd-cli 插件使用了图像。 如果您的集群从私有容器注册表拉取镜像,或者您的集群位于受限网络中,您可以将镜像推送到私有容器注册表,以便用户能够在集群上运行相关 cpd-cli 命令。

谁需要完成这项任务?
具有向私有容器注册表推送图像权限的用户必须完成此任务。
你需要在什么时候完成这项任务?
如果您的集群位于受限网络中,或者您的安全策略要求所有镜像都必须从私有容器注册表中拉取,请完成此任务。

如果您的工作站能够同时连接到公共互联网和集群,则可以跳过此任务。

哪些 cpd-cli 插件需要图片?

下表列出了每个 cpd-cli 插件所需的图像:
插件 用途 所需图片
config 使用此插件创建本地用户配置和配置文件,以便您能够 cpd-cli 对实例执行命令 Cloud Pak for Data 此插件无需任何图片。
cpdbr 使用此插件来备份和还原 Cloud Pak for Data 卷。
此插件需要以下图像:
cpdbr 映像
支持的硬件
  • x86_64
  • ppc64le
  • s390x
获取图像
当您镜像 Cloud Pak for Data (cpd_platform) 图像时,该图像会自动镜像。
cpdbr-oadp 使用此插件备份和还原 Cloud Pak for Data 部署,包括卷。
此插件使用了多张图片。 您所需的图像取决于以下因素:
  • 您正在使用的存储类型
  • 您正在使用的备份和还原方法。
ubi-minimal 映像

此图像在所有备份和还原场景中均属必需。

支持的硬件
  • x86_64
  • ppc64le
  • s390x
获取图像
您必须手动将 ubi-minimal 镜像镜像到您私有的容器注册表。
cpdbr-velero-plugin 映像

此图像在所有备份和还原场景中均属必需。

支持的硬件
  • x86_64
  • ppc64le
  • s390x
获取图像
当您镜像 Cloud Pak for Data (cpd_platform) 图像时,此图像会自动镜像。
cpdbr-oadp 映像

此图像仅在您使用 IBM® Storage Fusion Data Protection, NetApp Astra Control Center, 或 Portworx 企业版备份 Cloud Pak for Data 部署时需要。

支持的硬件
  • x86_64
  • ppc64le
  • s390x
获取图像
当您镜像 Cloud Pak for Data (cpd_platform) 图像时,此图像会自动镜像。
cpdbr-api 映像

此图像仅在您使用 REST API OpenShift® APIs for Data Protection 调用备份 Cloud Pak for Data 部署时需要。

支持的硬件
  • x86_64
  • ppc64le
  • s390x
获取图像
当您镜像 Cloud Pak for Data (cpd_platform) 图像时,此图像会自动镜像。
cpdctl

使用此插件可自动化处理跨多个 Cloud Pak for Data 集群的不同类型工作区和资产上的操作。

此插件无需任何图片。
cpdtool

使用此插件导出和导入数据,包括元数据。

此插件需要以下图像:
cpdtool 映像
支持的硬件
  • x86_64
  • ppc64le
  • s390x
获取图像
当您镜像 Cloud Pak for Data (cpd_platform) 图像时,此图像会自动镜像。
health Query the health of your Red Hat OpenShift cluster and the Cloud Pak for Data platform.
此插件需要以下图像:
centos
此图像为命令 storage-validation 所必需。
支持的硬件
  • x86_64
获取图像
您必须手动将 centos 镜像镜像到您私有的容器注册表。
k8s-storage-perf 映像

此图像为命令 storage-performance 所必需。

支持的硬件
  • x86_64
获取图像
您必须手动将 storage-performance 镜像镜像到您私有的容器注册表。
k8s-storage-test

此图像为命令 storage-validation 所必需。

支持的硬件
  • x86_64
获取图像
您必须手动将 k8s-storage-test 镜像镜像到您私有的容器注册表。
storage-gcc
此图像为命令 storage-validation 所必需。
支持的硬件
  • x86_64
获取图像
您必须手动将 storage-gcc 镜像镜像到您私有的容器注册表。
storage-util
此图像为命令 storage-validation 所必需。
支持的硬件
  • x86_64
获取图像
您必须手动将 storage-util 镜像镜像到您私有的容器注册表。
xsysbench

此图像为命令 storage-performance 所必需。

支持的硬件
  • x86_64
获取图像
您必须手动将 xsysbench 镜像镜像到您私有的容器注册表。
manage

使用此插件进行安装和升级 Cloud Pak for Data

此插件需要以下图像:
olm-utils-v2 映像

此图像是安装和升级所必需 Cloud Pak for Data的。

支持的硬件
  • x86_64
  • ppc64le
  • s390x
获取图像
当您镜像 Cloud Pak for Data (cpd_platform) 图像时,此图像会自动镜像。
zen-rsi-adm-controller 映像

此图像仅在您计划使用资源规范注入(RSI)功能时才需要。

重要提示: RSI功能仅推荐给高级 Red Hat® OpenShift Container Platform 用户使用。
支持的硬件
  • x86_64
  • ppc64le
  • s390x
获取图像
当您镜像 Cloud Pak for Data (cpd_platform) 图像时,此图像会自动镜像。
platform-diag

使用此插件收集有关部署 Cloud Pak for Data 的诊断信息。

此插件无需任何图片。

platform-mgmt

使用此插件管理与部署 Cloud Pak for Data 相关的服务实例和用户。

此插件无需任何图片。

开始之前

在将图像移至私有容器注册表之前,请完成以下任务:

  1. 设置客户端工作站以安装 Cloud Pak for Data
  2. 设置安装环境变量

ubi-minimal 镜像推送到私有容器注册表

您需要完成的步骤取决于工作站是否能够同时连接互联网和私有容器注册表:


该工作站可连接互联网及私有容器注册表
  1. 确保 或 在 DockerPodman 工作站上运行。
  2. 登录到私有容器注册表:
    Podman
    podman login ${PRIVATE_REGISTRY_LOCATION} \
    -u ${PRIVATE_REGISTRY_PUSH_USER} \
    -p ${PRIVATE_REGISTRY_PUSH_PASSWORD}
    Docker
    docker login ${PRIVATE_REGISTRY_LOCATION} \
    -u ${PRIVATE_REGISTRY_PUSH_USER} \
    -p ${PRIVATE_REGISTRY_PUSH_PASSWORD}
  3. 登录到授权 Red Hat 注册表。
    1. REDHAT_USER 环境变量设置为能够从拉取镜像 registry.redhat.io的用户名:
      export REDHAT_USER=<enter-your-username>
    2. REDHAT_PASSWORD 环境变量设置为指定用户的密码:
      export REDHAT_PASSWORD=<enter-your-password>
    3. 登录到 registry.redhat.io
      Podman
      podman login registry.redhat.io \
      -u ${REDHAT_USER} \
      -p ${REDHAT_PASSWORD}
      Docker
      docker login registry.redhat.io \
      -u ${REDHAT_USER} \
      -p ${REDHAT_PASSWORD}
  4. 运行以下命令将镜像镜像 ubi-minimal 到私有容器注册表。

    所有集群硬件架构均采用相同的映像:


    版本 4.8.0 - 4.8.3
    oc image mirror registry.redhat.io/ubi8/ubi-minimal:latest ${PRIVATE_REGISTRY_LOCATION}/ubi8/ubi-minimal:latest --insecure

    4.8.4 及更高版本
    oc image mirror registry.redhat.io/ubi9/ubi-minimal:latest ${PRIVATE_REGISTRY_LOCATION}//ubi9/ubi-minimal:latest --insecure



该工作站无法同时连接到私有容器注册表
  1. 从可连接互联网的工作站:
    1. 确保 或 在 DockerPodman 工作站上运行。
    2. 确保图像 olm-utils-v2 在客户端工作站上可用:
      cpd-cli manage restart-container
    3. 登录到授权 Red Hat 注册表。
      1. REDHAT_USER 环境变量设置为能够从拉取镜像 registry.redhat.io的用户名:
        export REDHAT_USER=<enter-your-username>
      2. REDHAT_PASSWORD 环境变量设置为指定用户的密码:
        export REDHAT_PASSWORD=<enter-your-password>
      3. 登录到 registry.redhat.io
        Podman
        podman login registry.redhat.io \
        -u ${REDHAT_USER} \
        -p ${REDHAT_PASSWORD}
        Docker
        docker login registry.redhat.io \
        -u ${REDHAT_USER} \
        -p ${REDHAT_PASSWORD}
    4. 运行以下命令将映像 ubi-minimal 保存到客户端工作站:

      所有集群硬件架构均采用相同的映像:


      版本 4.8.0 - 4.8.3
      cpd-cli manage save-image \
      --from=registry.redhat.io/ubi8/ubi-minimal:latest

      4.8.4 及更高版本
      cpd-cli manage save-image \
      --from=registry.redhat.io/ubi9/ubi-minimal:latest

  2. 将压缩文件传输到能够连接集群的客户端工作站。

    请确保将 或 ubi8_registry.redhat.io_ubi8_ubi-minimal_latest.tar.gzubi9_registry.redhat.io_ubi9_ubi-minimal_latest.tar.gzTAR 文件放置在 目录 work/offline 中。

  3. 从可连接到集群的工作站:
    1. 确保 或 在 DockerPodman 工作站上运行。
    2. 登录到私有容器注册表。

      以下命令假设您正在使用通过凭据保护的私有容器注册表:

      cpd-cli manage login-private-registry
      ${PRIVATE_REGISTRY_LOCATION} \
      ${PRIVATE_REGISTRY_PUSH_USER} \
      ${PRIVATE_REGISTRY_PUSH_PASSWORD}

      如果您的私有注册表未受保护,请省略用户名和密码。

    3. 运行以下命令将 ubi-minimal 镜像复制到私有容器注册表:
      版本 4.8.0 - 4.8.3
      cpd-cli manage copy-image \
      --from=registry.redhat.io/ubi8/ubi-minimal:latest \
      --to=${PRIVATE_REGISTRY_LOCATION}/ubi8/ubi-minimal:latest

      4.8.4 及更高版本
      cpd-cli manage copy-image \
      --from=registry.redhat.io/ubi9/ubi-minimal:latest \
      --to=${PRIVATE_REGISTRY_LOCATION}/ubi9/ubi-minimal:latest


storage-performance 命令所需的镜像推送到私有容器注册表

若计划使用该 cpd-cli health storage-performance 命令,必须将以下镜像镜像到私有容器注册表:
  • k8s-storage-perf
  • xsysbench

您需要完成的步骤取决于工作站是否能够同时连接互联网和私有容器注册表:


该工作站可连接互联网及私有容器注册表
  1. 确保 或 在 DockerPodman 工作站上运行。
  2. 确保图像 olm-utils-v2 在客户端工作站上可用:
    cpd-cli manage restart-container
  3. 登录到私有容器注册表。

    以下命令假设您正在使用通过凭据保护的私有容器注册表:

    cpd-cli manage login-private-registry
    ${PRIVATE_REGISTRY_LOCATION} \
    ${PRIVATE_REGISTRY_PUSH_USER} \
    ${PRIVATE_REGISTRY_PUSH_PASSWORD}

    如果您的私有注册表未受保护,请省略用户名和密码。

  4. 登录到名为 IBM Entitled Registry 的注册表:
    cpd-cli manage login-entitled-registry \
    ${IBM_ENTITLEMENT_KEY}
  5. 运行以下命令将所需镜像镜像到私有容器注册表:
    1. 镜像图像 k8s-storage-perf
      cpd-cli manage copy-image \
      --from=icr.io/cpopen/cpd/k8s-storage-perf:v1.0.0 \
      --to=${PRIVATE_REGISTRY_LOCATION}/cpopen/cpd/k8s-storage-perf:v1.0.0
    2. 镜像图像 xsysbench
      cpd-cli manage copy-image \
      --from=quay.io/ibm-cp4d-public/xsysbench:1.1-amd64 \
      --to=${PRIVATE_REGISTRY_LOCATION}/ibm-cp4d-public/xsysbench:1.1-amd64


该工作站无法同时连接到私有容器注册表
  1. 从可连接互联网的工作站:
    1. 确保 或 在 DockerPodman 工作站上运行。
    2. 确保图像 olm-utils-v2 在客户端工作站上可用:
      cpd-cli manage restart-container
    3. 运行以下命令将所需图像保存到客户端工作站:
      1. 保存图片 k8s-storage-perf
        cpd-cli manage save-image \
        --from=icr.io/cpopen/cpd/k8s-storage-perf:v1.0.0
      2. 保存图片 xsysbench
        cpd-cli manage copy-image \
        --from=quay.io/ibm-cp4d-public/xsysbench:1.1-amd64 \
        --to=${PRIVATE_REGISTRY_LOCATION}/ibm-cp4d-public/xsysbench:1.1-amd64
  2. 将压缩文件传输到能够连接集群的客户端工作站。

    请确保将 TAR 文件放置在目录 work/offline 中:

    • icr.io_cpopen_cpd_k8s-storage-perf_v1.0.0.tar.gz
    • quay.io_ibm-cp4d-public_xsysbench_1.1-amd64.tar.gz
  3. 从可连接到集群的工作站:
    1. 确保 或 在 DockerPodman 工作站上运行。
    2. 登录到私有容器注册表。

      以下命令假设您正在使用通过凭据保护的私有容器注册表:

      cpd-cli manage login-private-registry
      ${PRIVATE_REGISTRY_LOCATION} \
      ${PRIVATE_REGISTRY_PUSH_USER} \
      ${PRIVATE_REGISTRY_PUSH_PASSWORD}

      如果您的私有注册表未受保护,请省略用户名和密码。

    3. 运行以下命令将所需镜像复制到私有容器注册表:
      1. 复制图像 k8s-storage-perf
        cpd-cli manage copy-image \
        --from=icr.io/cpopen/cpd/k8s-storage-perf:v1.0.0 \
        --to=${PRIVATE_REGISTRY_LOCATION}/cpopen/cpd/k8s-storage-perf:v1.0.0
      2. 复制图像 xsysbench
        cpd-cli manage copy-image \
        --from=quay.io/ibm-cp4d-public/xsysbench:1.1-amd64 \
        --to=${PRIVATE_REGISTRY_LOCATION}/ibm-cp4d-public/xsysbench:1.1-amd64

storage-validation 命令所需的镜像推送到私有容器注册表

若计划使用该 cpd-cli health storage-validation 命令,必须将以下镜像镜像到私有容器注册表:

  • centos
  • k8s-storage-test
  • storage-gcc
  • storage-util

您需要完成的步骤取决于工作站是否能够同时连接互联网和私有容器注册表:


该工作站可连接互联网及私有容器注册表
  1. 确保 或 在 DockerPodman 工作站上运行。
  2. 确保图像 olm-utils-v2 在客户端工作站上可用:
    cpd-cli manage restart-container
  3. 登录到私有容器注册表。

    以下命令假设您正在使用通过凭据保护的私有容器注册表:

    cpd-cli manage login-private-registry
    ${PRIVATE_REGISTRY_LOCATION} \
    ${PRIVATE_REGISTRY_PUSH_USER} \
    ${PRIVATE_REGISTRY_PUSH_PASSWORD}

    如果您的私有注册表未受保护,请省略用户名和密码。

  4. 登录到名为 IBM Entitled Registry 的注册表:
    cpd-cli manage login-entitled-registry \
    ${IBM_ENTITLEMENT_KEY}
  5. 运行以下命令将所需镜像镜像到私有容器注册表:
    1. 镜像图像 centos
      cpd-cli manage copy-image \
      --from=quay.io/centos/amd64:latest \
      --to=${PRIVATE_REGISTRY_LOCATION}/centos/amd64:latest
    2. 镜像图像 k8s-storage-test
      cpd-cli manage copy-image \
      --from=icr.io/cpopen/cpd/k8s-storage-test:v1.0.0 \
      --to=${PRIVATE_REGISTRY_LOCATION}/cpopen/cpd/k8s-storage-test:v1.0.0
    3. 镜像图像 storage-gcc
      cpd-cli manage copy-image \
      --from=quay.io/ibm-cp4d-public/storage-gcc:1.0-amd64 \
      --to=${PRIVATE_REGISTRY_LOCATION}/ibm-cp4d-public/storage-gcc:1.0-amd64
    4. 镜像图像 storage-util
      cpd-cli manage copy-image \
      --from=quay.io/ibm-cp4d-public/storage-util:1.0-amd64 \
      --to=${PRIVATE_REGISTRY_LOCATION}/ibm-cp4d-public/storage-util:1.0-amd64


该工作站无法同时连接到私有容器注册表
  1. 从可连接互联网的工作站:
    1. 确保 或 在 DockerPodman 工作站上运行。
    2. 确保图像 olm-utils-v2 在客户端工作站上可用:
      cpd-cli manage restart-container
    3. 运行以下命令将所需图像保存到客户端工作站:
      1. 保存图片 centos
        cpd-cli manage save-image \
        --from=quay.io/centos/amd64:latest
      2. 保存图片 k8s-storage-test
        cpd-cli manage save-image \
        --from=icr.io/cpopen/cpd/k8s-storage-test:v1.0.0
      3. 保存图片 storage-gcc
        cpd-cli manage save-image \
        --from=quay.io/ibm-cp4d-public/storage-gcc:1.0-amd64
      4. 保存图片 storage-util
        cpd-cli manage save-image \
        --from=quay.io/ibm-cp4d-public/storage-util:1.0-amd64
  2. 将压缩文件传输到能够连接集群的客户端工作站。

    请确保将 TAR 文件放置在目录 work/offline 中:

    • icr.io_cpopen_cpd_k8s-storage-test_v1.0.0.tar.gz
    • quay.io_centos_amd64_latest.tar.gz
    • quay.io_ibm-cp4d-public_storage-gcc_1.0-amd64.tar.gz
    • quay.io_ibm-cp4d-public_storage-util_1.0-amd64.tar.gz
  3. 从可连接到集群的工作站:
    1. 确保 或 在 DockerPodman 工作站上运行。
    2. 登录到私有容器注册表。

      以下命令假设您正在使用通过凭据保护的私有容器注册表:

      cpd-cli manage login-private-registry
      ${PRIVATE_REGISTRY_LOCATION} \
      ${PRIVATE_REGISTRY_PUSH_USER} \
      ${PRIVATE_REGISTRY_PUSH_PASSWORD}

      如果您的私有注册表未受保护,请省略用户名和密码。

    3. 运行以下命令将所需镜像复制到私有容器注册表:
      1. 复制图像 centos
        cpd-cli manage copy-image \
        --from=quay.io/centos/amd64:latest \
        --to=${PRIVATE_REGISTRY_LOCATION}/centos/amd64:latest
      2. 复制图像 k8s-storage-test
        cpd-cli manage copy-image \
        --from=icr.io/cpopen/cpd/k8s-storage-test:v1.0.0 \
        --to=${PRIVATE_REGISTRY_LOCATION}/cpopen/cpd/k8s-storage-test:v1.0.0
      3. 复制图像 storage-gcc
        cpd-cli manage copy-image \
        --from=quay.io/ibm-cp4d-public/storage-gcc:1.0-amd64 \
        --to=${PRIVATE_REGISTRY_LOCATION}/ibm-cp4d-public/storage-gcc:1.0-amd64
      4. 复制图像 storage-util
        cpd-cli manage copy-image \
        --from=quay.io/ibm-cp4d-public/storage-util:1.0-amd64 \
        --to=${PRIVATE_REGISTRY_LOCATION}/ibm-cp4d-public/storage-util:1.0-amd64

下一步操作

在镜像被镜像或推送到私有容器注册表后,用户必须确保插件 cpd-cli 使用来自私有容器注册表的镜像。

插件 如何使用私有容器注册表中的镜像
config 不适用。 此插件无需任何图片。
cpdbr 需要对 cpd-cli backup-restore 集群执行命令的用户,在运行命令 cpd-cli backup-restore init 时必须指定该 --image-prefix=${PRIVATE_REGISTRY_LOCATION} 选项。
cpdbr-oadp 需要 cpd-cli oadp 对集群执行命令的用户,在运行某些 cpd-cli oadp 命令时必须指定该 --image-prefix=${PRIVATE_REGISTRY_LOCATION} 选项。
cpdctl 不适用。 此插件无需任何图片。
cpdtool 需要对 cpd-cli export-import 集群执行命令的用户,在运行命令 cpd-cli export-import init 时必须指定该 --image-prefix=${PRIVATE_REGISTRY_LOCATION} 选项。
health 后续步骤取决于您想要执行的命令:
k8s-storage-perf
  1. 在执行命令之前 cpd-cli health storage-performance ,请运行命令 cpd-cli manage load-image 将映像 k8s-storage-perf 加载到客户端工作站。
  2. 创建一个名为 YAML 的文件 storage-images.yaml ,内容如下:
    cat << EOF > ./storage-images.yaml
    imageurl: ${PRIVATE_REGISTRY_LOCATION}/ibm-cp4d-public/xsysbench:1.1
    docker_registry: "${PRIVATE_REGISTRY_LOCATION}"
    EOF
    重要提示: 执行命令时 cpd-cli health storage-performance ,必须指定 --param=<fully-qualified-path-of-the-storage-images.yaml-file>
k8s-storage-test
  1. 在执行命令之前 cpd-cli health storage-validation ,请运行命令 cpd-cli manage load-image 将映像 k8s-storage-test 加载到客户端工作站。
  2. 创建一个名为 YAML 的文件 storage-images.yaml ,内容如下:
    cat << EOF > ./storage-images.yaml
    imageurl: ${PRIVATE_REGISTRY_LOCATION}/ibm-cp4d-public/xsysbench:1.1
    docker_registry: "${PRIVATE_REGISTRY_LOCATION}"
    EOF
    重要提示: 执行命令时 cpd-cli health storage-validation ,必须指定 --param=<fully-qualified-path-of-the-storage-images.yaml-file>
manage 后续步骤取决于您想要执行的命令:
olm-utils-v2
需要对 cpd-cli manage 集群执行命令的用户必须在其环境变量脚本中添加环境变量 OLM_UTILS_IMAGE
x86-64 集群
export OLM_UTILS_IMAGE=${PRIVATE_REGISTRY_LOCATION}/cpopen/cpd/olm-utils-v2:${VERSION}
ppc64le 簇
export OLM_UTILS_IMAGE=${PRIVATE_REGISTRY_LOCATION}/cpopen/cpd/olm-utils-v2:${VERSION}.ppc64le
s390x 簇
export OLM_UTILS_IMAGE=${PRIVATE_REGISTRY_LOCATION}/cpopen/cpd/olm-utils-v2:${VERSION}.s390x
zen-rsi-adm-controller
安装 RSI 网络钩子时,必须指定 选项 --rsi_image
x86-64 集群
--rsi_image=${PRIVATE_REGISTRY_LOCATION}/cpopen/cpd/zen-rsi-adm-controller:${VERSION}-x86_64
ppc64le 簇
--rsi_image=${PRIVATE_REGISTRY_LOCATION}/cpopen/cpd/zen-rsi-adm-controller:${VERSION}-ppc64le
s390x 簇
--rsi_image=${PRIVATE_REGISTRY_LOCATION}/cpopen/cpd/zen-rsi-adm-controller:${VERSION}-s390x
platform-diag 不适用。 此插件无需任何图片。
platform-mgmt 不适用。 此插件无需任何图片。