配置集群以拉取 Cloud Pak for Data 映像
要确保您的集群可以拉取 Cloud Pak for Data 软件映像,必须更新集群配置。
- 此任务所需的许可权
- 您必须是集群管理员。
- 当您需要完成此任务时
- 您必须在首次安装 Cloud Pak for Data时完成此任务。
准备工作
过程
必须完成的任务取决于集群是直接从 IBM® 授权注册表 还是从专用容器注册表拉取映像。
| 任务 | IBM 授权注册表 | 专用容器注册表 |
|---|---|---|
| 1. 配置全局映像提取密钥 | 必需 | 必需 |
| 2. 配置映像内容源策略 | 不适用 | 必需 |
1. 配置全局映像提取密钥
全局映像提取密钥确保您的集群具有提取映像所需的凭证。
您添加到全局映像拉取私钥的凭证取决于您希望从何处拉取映像:
- IBM 授权注册表
- 如果要从 IBM 授权注册表中拉取映像,那么全局映像拉取私钥必须包含 IBM 权利 API 密钥。
- 专用容器注册表
- 如果要从专用容器注册表中提取映像,那么全局映像拉取私钥必须包含可以从注册表中获取 拉 映像的帐户的凭证。
如果已对全局映像提取密钥配置必需凭证,那么可以跳过此任务。
重要信息: 更改全局映像拉取私钥时,集群中的每个节点都将重新启动 自动 ,以便机器配置操作程序可以应用这些更改。 每次只能对一个节点执行此重新启动过程。 集群将等待一个节点重新启动完毕,然后再在下一个节点上启动该过程。 在某些情况下,所有节点都需要 30 多分钟才能重新启动。 在此过程中,您可能会注意到资源暂时不可用。
如果您的部署在 IBM Cloud上,那么必须 手动 重新装入集群中的工作程序节点,以使更改生效。
要配置全局映像提取密钥,请执行以下操作:
- 确认以下 安装环境变量 是根据 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
- 创建指向您工作站上的临时目录的环境变量。 例如:
export WORK_ROOT=$HOME/temp/work - 将拉取私钥下载到临时目录:
oc get secret/pull-secret \ -n openshift-config \ --template='{{index .data ".dockerconfigjson" | base64decode}}' > ${WORK_ROOT}/global_pull_secret.cfg - 将新的拉取私钥添加到 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
- 更新集群上的全局拉取私钥:
oc set data secret/pull-secret \ -n openshift-config \ --from-file=.dockerconfigjson=${WORK_ROOT}/global_pull_secret.cfg - 获取节点的状态:
等待至所有节点处于oc get nodesReady状态,然后继续执行下一步。 例如,如果您看到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 文档中的 配置映像注册表存储库镜像 。)
重要信息: 此过程将暂时禁用集群中每个节点上的调度,因此您可能会注意到资源暂时不可用。 但是,此过程一次在一个节点上进行。 集群将暂时禁用针对节点的调度,应用配置更改,重新启用调度,然后在下一个节点上启动该过程。
要配置映像内容源策略,请执行以下操作:
- 确认是否设置了以下 安装环境变量 :
echo $PRIVATE_REGISTRY_LOCATION - 创建映像内容源策略。 保单内容取决于您是否已拥有 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 EOFIBM 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 - 确认已创建映像内容源策略:
oc get imageContentSourcePolicy - 确认输出包含
cloud-pak-for-data-mirror。 - 获取节点的状态:
等待至所有节点处于oc get nodesReady状态,然后继续执行下一步。 例如,如果您看到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命令来获取节点的实时状态。
接下来的内容 现在,您已配置了图像内容源策略,您已准备好完成 创建目录源。