1.4. 在断开连接的环境中安装多集群全局 hub
如果您的集群位于受限网络中,您可以在断开连接的环境中部署 multicluster global hub Operator。
需要的访问权限:集群管理员
1.4.1. 先决条件 复制链接链接已复制到粘贴板!
您必须在断开连接的环境中安装多集群全局 hub 前满足以下要求:
- 镜像 registry 和堡垒主机必须同时访问互联网和您的镜像 registry。
- 在集群上安装 Operator Lifecycle Manager。请参阅 Operator Lifecycle Manager (OLM)。
- 安装 Red Hat Advanced Cluster Management for Kubernetes。
安装以下命令行界面:
- OpenShift Container Platform 命令行。请参阅 OpenShift Container Platform CLI 入门。
-
opm命令行。请参阅安装 opm CLI。 -
oc-mirror插件。请参阅使用 oc-plugin 为断开连接的安装镜像镜像。
1.4.2. 配置镜像 registry 复制链接链接已复制到粘贴板!
在断开连接的环境中安装多集群全局 hub 涉及使用本地镜像 registry。此时,假设您已在 OpenShift Container Platform 集群安装过程中设置了镜像 registry。
完成以下步骤,为多集群全局 hub 置备镜像 registry:
1.4.2.1. 使用 oc-mirror 插件在镜像目录中创建 operator 软件包 复制链接链接已复制到粘贴板!
红帽在 Red Hat operator 目录中提供 multicluster global hub 和 AMQ Streams operator,它由 registry.redhat.io/redhat/redhat-operator-index 索引镜像提供。当您准备此目录索引镜像的镜像时,您可以选择将镜像整个目录作为红帽提供的镜像,或者镜像只包含您要使用的 Operator 软件包的子集。
如果您要创建完整镜像目录,则不需要特殊考虑安装多集群全局 hub 和 AMQ Streams 的所有软件包。但是,如果您要创建部分或过滤了镜像目录,您要为其识别要包含的特定软件包,则必须在列表中包含 multicluster-global-hub-operator-rh 和 amq-streams 软件包名称。
完成以下步骤,创建 multicluster-global-hub-operator-rh 和 amq-streams 软件包的本地镜像 registry:
创建
ImageSetConfigurationYAML 文件来配置和添加 Operator 镜像。您的 YAML 文件可能类似以下内容,使用当前版本替换4.x:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令将镜像直接设置为目标镜像 registry:
oc mirror --config=./imageset-config.yaml docker://myregistry.example.com:5000
oc mirror --config=./imageset-config.yaml docker://myregistry.example.com:5000Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 镜像在完全断开连接的环境中设置的镜像。如需了解更多详细信息 ,请参阅为断开连接的安装镜像镜像。
1.4.2.2. 将 registry 和目录添加到断开连接的集群中 复制链接链接已复制到粘贴板!
要使您的镜像 registry 和目录在断开连接的集群中可用。完成以下步骤:
禁用 Operator Hub 的默认目录源。运行以下命令以更新
OperatorHub资源:oc patch OperatorHub cluster --type json \ -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'oc patch OperatorHub cluster --type json \ -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 通过完成镜像 Operator 目录的步骤来 镜像 Operator 目录。
将镜像目录的
CatalogSource资源添加到openshift-marketplace命名空间中。CatalogSourceYAML 文件可能类似以下示例,并将4.x设置为支持的版本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
注: 记录
metadata.name字段的值。
-
注: 记录
- 保存更新的文件。
通过查询可用的
PackageManifest资源,验证所需软件包是否可从断开连接的集群中可用。运行以下命令:oc -n openshift-marketplace get packagemanifests
oc -n openshift-marketplace get packagemanifestsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 显示的列表应该包括显示
multicluster-global-hub-operator-rh和amq-streams软件包由您的镜像目录的目录源提供的条目:
1.4.3. 配置镜像 registry 复制链接链接已复制到粘贴板!
要让集群从本地镜像 registry 获取 multicluster global hub Operator 的容器镜像,而不是从互联网托管的 registry 中配置 ImageContentSourcePolicy 资源,以便在断开连接的环境中配置 ImageContentSourcePolicy 资源,将镜像引用重定向到您的镜像 registry。ImageContentSourcePolicy 仅支持带有 镜像摘要 的镜像镜像。
如果使用 oc adm catalog mirror 命令镜像目录,所需镜像内容源策略配置位于由该命令创建的 manifests- 目录中的 imageContentSourcePolicy.yaml 文件中。
如果您使用 插件替代您的目录,则 oc-mirror imageContentSourcePolicy.yaml 文件位于 oc-mirror-workspace/results- 目录中。
在这两种情况下,您可以使用 oc apply 或 oc replace 命令将策略应用到断开连接的命令中,如
oc replace -f ./<path>/imageContentSourcePolicy.yaml
所需的镜像内容源策略语句会根据您创建镜像 registry 的方式而有所不同,但与以下示例类似:
您可以使用 ManagedClusterImageRegistry 为不同的受管 hub 配置不同的镜像 registry。请参阅 导入具有 ManagedClusterImageRegistry API 的集群,以使用 ManagedClusterImageRegistry API 替换代理镜像。
通过完成上一步,标签和注解会添加到所选的 ManagedCluster 中。这意味着集群中的代理镜像被镜像镜像替代。
-
label:
multicluster-global-hub.io/image-registry=<namespace.managedclusterimageregistry-name> -
注解:
multicluster-global-hub.io/image-registries: <image-registry-info>
1.4.3.1. 配置镜像 pull secret 复制链接链接已复制到粘贴板!
如果订阅的 Operator 引用的 Operator 或 Operand 镜像需要访问私有 registry,您可以 提供对集群中的所有命名空间或单独的目标租户命名空间的访问。
您可以在现有 OpenShift Container Platform 集群中配置镜像 pull secret。
注: 在预先存在的集群中应用镜像 pull secret 会导致所有节点的滚动重启。
完成以下步骤以配置 pull secret:
从 pull secret 导出用户名:
export USER=<the-registry-user>
export USER=<the-registry-user>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从 pull secret 中导出密码:
export PASSWORD=<the-registry-password>
export PASSWORD=<the-registry-password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 复制 pull secret:
oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' > pull_secret.yamloc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' > pull_secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 pull secret 登录:
oc registry login --registry=${REGISTRY} --auth-basic="$USER:$PASSWORD" --to=pull_secret.yamloc registry login --registry=${REGISTRY} --auth-basic="$USER:$PASSWORD" --to=pull_secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 指定 multicluster global hub 镜像 pull secret:
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=pull_secret.yaml
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=pull_secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 删除旧的 pull secret:
rm pull_secret.yaml
rm pull_secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
您可以通过完成以下步骤,将镜像 pull secret 配置为单独的命名空间:
运行以下命令,在租户命名空间中创建 secret:
oc create secret generic <secret_name> -n <tenant_namespace> \ --from-file=.dockerconfigjson=<path/to/registry/credentials> \ --type=kubernetes.io/dockerconfigjson
oc create secret generic <secret_name> -n <tenant_namespace> \ --from-file=.dockerconfigjson=<path/to/registry/credentials> \ --type=kubernetes.io/dockerconfigjsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 secret 链接到 Operator 或操作对象的服务帐户:
oc secrets link <operator_sa> -n <tenant_namespace> <secret_name> --for=pull
oc secrets link <operator_sa> -n <tenant_namespace> <secret_name> --for=pullCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4.3.2. 安装 Global Hub Operator 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Container Platform Web 控制台从 OperatorHub 安装并订阅 Operator。详情请参阅将 Operator 添加到集群。添加 Operator 后,您可以通过运行以下命令来检查 multicluster global hub Operator 的状态:
oc get pods -n multicluster-global-hub NAME READY STATUS RESTARTS AGE multicluster-global-hub-operator-687584cb7c-fnftj 1/1 Running 0 2m12s
oc get pods -n multicluster-global-hub
NAME READY STATUS RESTARTS AGE
multicluster-global-hub-operator-687584cb7c-fnftj 1/1 Running 0 2m12s
1.4.4. 其他资源 复制链接链接已复制到粘贴板!
- 有关创建镜像 registry 的更多信息,请参阅 创建镜像 registry。
- 有关镜像镜像的更多信息,请参阅 断开连接的安装镜像。
- 如需有关镜像 Operator 目录的更多信息,请参阅 镜像 Operator 目录。