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 目录中提供多集群全局 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 文件可能类似以下示例: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 资源,以将镜像引用重定向到您的镜像 registry。ImageContentSourcePolicy 仅支持带有 镜像摘要 的镜像镜像。
如果使用 oc adm catalog mirror 命令对目录进行镜像,所需的镜像内容源策略配置位于由该命令创建的 manifests-* 目录的 imageContentSourcePolicy.yaml 文件中。
如果您使用 oc-mirror 插件来镜像目录,则 imageContentSourcePolicy.yaml 文件位于 oc-mirror-workspace/resultsextensions 目录中,由 oc-mirror 插件创建。
在这两种情况下,您可以使用 oc apply 或 oc replace 命令将策略应用到断开连接的命令中,如
oc replace -f ./<path>/imageContentSourcePolicy.yaml
所需的镜像内容源策略语句会根据您创建镜像 registry 的方式而有所不同,但与以下示例类似:
您可以使用 ManagedClusterImageRegistry 为不同的受管 hub 配置不同的镜像 registry。请参阅 导入具有 ManagedClusterImageRegistry 的集群,以使用 ManagedClusterImageRegistry API 替换代理镜像。
通过完成上一步,会将标签和注解添加到所选 ManagedCluster 中。这意味着集群中的代理镜像被镜像(mirror)替换。
-
label:
multicluster-global-hub.io/image-registry=<namespace.managedclusterimageregistry-name> -
annotation:
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 目录。