配置集群以拉取 Cloud Pak for Data 映像

要确保您的集群可以拉取 Cloud Pak for Data 软件映像,必须更新集群配置。

此任务所需的许可权
您必须是集群管理员。
当您需要完成此任务时
您必须在首次安装 Cloud Pak for Data时完成此任务。

准备工作

最佳实践: 如果您为安装设置环境变量,那么可以完全按照编写的方式运行此任务中的命令。 有关指示信息,请参阅 最佳实践: 设置安装变量

请确保先运行环境变量脚本,然后再运行此任务中的命令。

过程

必须完成的任务取决于集群是直接从 IBM® 授权注册表 还是从专用容器注册表拉取映像。

任务 IBM 授权注册表 专用容器注册表
1. 配置全局映像提取密钥 必需 必需
2. 配置映像内容源策略 不适用 必需

1. 配置全局映像提取密钥

最佳实践: 如果您为安装设置环境变量,那么可以完全按照编写的方式运行此任务中的命令。 有关指示信息,请参阅 最佳实践: 设置安装变量

请确保先运行环境变量脚本,然后再运行此任务中的命令。

全局映像提取密钥确保您的集群具有提取映像所需的凭证。

您添加到全局映像拉取私钥的凭证取决于您希望从何处拉取映像:

IBM 授权注册表
如果要从 IBM 授权注册表中拉取映像,那么全局映像拉取私钥必须包含 IBM 权利 API 密钥
专用容器注册表
如果要从专用容器注册表中提取映像,那么全局映像拉取私钥必须包含可以从注册表中获取 映像的帐户的凭证。

如果已对全局映像提取密钥配置必需凭证,那么可以跳过此任务。

重要信息: 更改全局映像拉取私钥时,集群中的每个节点都将重新启动 自动 ,以便机器配置操作程序可以应用这些更改。 每次只能对一个节点执行此重新启动过程。 集群将等待一个节点重新启动完毕,然后再在下一个节点上启动该过程。 在某些情况下,所有节点都需要 30 多分钟才能重新启动。 在此过程中,您可能会注意到资源暂时不可用。

如果您的部署在 IBM Cloud上,那么必须 手动 重新装入集群中的工作程序节点,以使更改生效。

要配置全局映像提取密钥,请执行以下操作:

  1. 确认以下 安装环境变量 是根据 OpenShift® 要从中拉取的容器注册表设置的:
    IBM 授权注册表
    echo $IBM_ENTITLEMENT_SERVER
    echo $IBM_ENTITLEMENT_USER
    echo $IBM_ENTITLEMENT_KEY

    专用容器注册表
    echo $PRIVATE_REGISTRY_LOCATION
    echo $PRIVATE_REGISTRY_PULL_USER
    echo $PRIVATE_REGISTRY_PULL_PASSWORD

  2. 创建指向您工作站上的临时目录的环境变量。 例如:
    export WORK_ROOT=$HOME/temp/work
  3. 将拉取私钥下载到临时目录:
    oc get secret/pull-secret \
      -n openshift-config \
      --template='{{index .data ".dockerconfigjson" | base64decode}}' > ${WORK_ROOT}/global_pull_secret.cfg
  4. 将新的拉取私钥添加到 global_pull_secret.cfg 文件的本地副本:
    IBM 授权注册表
    oc registry login \
      --registry="${IBM_ENTITLEMENT_SERVER}" \
      --auth-basic="${IBM_ENTITLEMENT_USER}:${IBM_ENTITLEMENT_KEY}" \
      --to=${WORK_ROOT}/global_pull_secret.cfg

    专用容器注册表
    oc registry login \
      --registry="${PRIVATE_REGISTRY_LOCATION}" \
      --auth-basic="${PRIVATE_REGISTRY_PULL_USER}:${PRIVATE_REGISTRY_PULL_PASSWORD}" \
      --to=${WORK_ROOT}/global_pull_secret.cfg

  5. 更新集群上的全局拉取私钥:
    oc set data secret/pull-secret \
    -n openshift-config \
    --from-file=.dockerconfigjson=${WORK_ROOT}/global_pull_secret.cfg
  6. 获取节点的状态:
    oc get nodes
    等待至所有节点处于 Ready 状态,然后继续执行下一步。 例如,如果您看到 Ready,SchedulingDisabled,请等待该过程完成:
    NAME                           STATUS                     ROLES    AGE     VERSION
    master0                        Ready                      master   5h57m   v1.20.0
    master1                        Ready                      master   5h57m   v1.20.0
    master2                        Ready                      master   5h57m   v1.20.0
    worker0                        Ready,SchedulingDisabled   worker   5h48m   v1.20.0
    worker1                        Ready                      worker   5h48m   v1.20.0
    worker2                        Ready                      worker   5h48m   v1.20.0
    提示: 您可以使用 watch oc get nodes 命令来监视节点的状态。 2 命令每 2 秒提供一次更新。 当所有节点返回 Ready 时,可以通过按 Ctrl+C退出命令。

    或者,如果发现 oc get nodes 命令过早返回 Ready ,那么可以使用 oc get mcp 命令来获取节点的实时状态。

后续内容 针对您的环境完成相应的任务:
IBM 授权注册表
现在,您已更新全局拉取私钥以包含 IBM 权利 API 密钥,您已准备好完成 创建目录源
专用容器注册表
现在,您已更新了全局拉取私钥以包含可从注册表拉取映像的帐户的凭证,您已准备好完成 2. 配置图像内容源策略.

2. 配置映像内容源策略

如果您已将映像镜像到专用容器注册表,那么必须告诉集群在何处查找软件映像。 (有关 Red Hat® OpenShift Container Platform 如何从镜像存储库中查找映像的更多信息,请参阅 Red Hat OpenShift Container Platform 文档中的 配置映像注册表存储库镜像 。)

重要信息: 此过程将暂时禁用集群中每个节点上的调度,因此您可能会注意到资源暂时不可用。 但是,此过程一次在一个节点上进行。 集群将暂时禁用针对节点的调度,应用配置更改,重新启用调度,然后在下一个节点上启动该过程。

要配置映像内容源策略,请执行以下操作:

  1. 确认是否设置了以下 安装环境变量 :
    echo $PRIVATE_REGISTRY_LOCATION
  2. 创建映像内容源策略。 保单内容取决于您是否已拥有 IBM Cloud Pak® 基础服务的保单。
    选项 映像内容源策略
    IBM Cloud Pak 基础服务已安装在集群上 如果 IBM Cloud Pak 基础服务版本 3.18.0 已经安装,则很可能您已经为 icr.io/cpopen/cpfs 设置了图片内容源策略。 因此,您不需要为这些映像创建镜像策略。
    cat <<EOF |oc apply -f -
    apiVersion: operator.openshift.io/v1alpha1
    kind: ImageContentSourcePolicy
    metadata:
      name: cloud-pak-for-data-mirror
    spec:
      repositoryDigestMirrors:
      - mirrors:
        - ${PRIVATE_REGISTRY_LOCATION}/cp
        source: cp.icr.io/cp
      - mirrors:
        - ${PRIVATE_REGISTRY_LOCATION}/cp/cpd
        source: cp.icr.io/cp/cpd
      - mirrors:
        - ${PRIVATE_REGISTRY_LOCATION}/cpopen
        source: icr.io/cpopen
      - mirrors:
        - ${PRIVATE_REGISTRY_LOCATION}/db2u
        source: icr.io/db2u
      - mirrors:
        - ${PRIVATE_REGISTRY_LOCATION}/guardium-insights
        source: icr.io/guardium-insights
    EOF
    IBM Cloud Pak 基础服务未安装在集群上 如果 IBM Cloud Pak 基础服务未安装,则您不太可能拥有 icr.io/cpopen/cpfs 的图像内容源策略,因此您应该为这些图像创建镜像策略。
    cat <<EOF |oc apply -f -
    apiVersion: operator.openshift.io/v1alpha1
    kind: ImageContentSourcePolicy
    metadata:
      name: cloud-pak-for-data-mirror
    spec:
      repositoryDigestMirrors:
      - mirrors:
        - ${PRIVATE_REGISTRY_LOCATION}/cpopen/cpfs
        source: icr.io/cpopen/cpfs
      - mirrors:
        - ${PRIVATE_REGISTRY_LOCATION}/cp
        source: cp.icr.io/cp
      - mirrors:
        - ${PRIVATE_REGISTRY_LOCATION}/cp/cpd
        source: cp.icr.io/cp/cpd
      - mirrors:
        - ${PRIVATE_REGISTRY_LOCATION}/cpopen
        source: icr.io/cpopen
      - mirrors:
        - ${PRIVATE_REGISTRY_LOCATION}/db2u
        source: icr.io/db2u
      - mirrors:
        - ${PRIVATE_REGISTRY_LOCATION}/guardium-insights
        source: icr.io/guardium-insights
    EOF
  3. 确认已创建映像内容源策略:
    oc get imageContentSourcePolicy
  4. 确认输出包含 cloud-pak-for-data-mirror
  5. 获取节点的状态:
    oc get nodes
    等待至所有节点处于 Ready 状态,然后继续执行下一步。 例如,如果您看到 Ready,SchedulingDisabled,请等待该过程完成:
    NAME                           STATUS                     ROLES    AGE     VERSION
    master0                        Ready                      master   5h57m   v1.20.0
    master1                        Ready                      master   5h57m   v1.20.0
    master2                        Ready                      master   5h57m   v1.20.0
    worker0                        Ready,SchedulingDisabled   worker   5h48m   v1.20.0
    worker1                        Ready                      worker   5h48m   v1.20.0
    worker2                        Ready                      worker   5h48m   v1.20.0
    提示: 您可以使用 watch oc get nodes 命令来监视节点的状态。 2 命令每 2 秒提供一次更新。 当所有节点返回 Ready 时,可以通过按 Ctrl+C退出命令。

    或者,如果发现 oc get nodes 命令过早返回 Ready ,那么可以使用 oc get mcp 命令来获取节点的实时状态。

接下来的内容 现在,您已配置了图像内容源策略,您已准备好完成 创建目录源