1.4. 在断开连接的环境中安装多集群全局 hub


如果集群位于受限网络中,您可以在断开连接的环境中部署 multicluster global hub operator。

需要的访问权限:集群管理员

1.4.1. 先决条件

在断开连接的环境中安装多集群全局 hub 前,您必须满足以下要求:

1.4.2. 配置镜像 registry

在断开连接的环境中安装多集群全局 hub 涉及使用本地镜像 registry。此时假设您已在 OpenShift Container Platform 集群安装过程中设置了镜像 registry。

完成以下步骤,为多集群全局 hub 置备镜像 registry:

红帽在 Red Hat operator 目录中提供多集群全局 hub 和 AMQ Streams operator,由 registry.redhat.io/redhat/redhat-operator-index 索引镜像提供。当您准备此目录索引镜像的镜像时,您可以选择将镜像整个目录作为红帽提供的镜像,或者镜像只包含您要使用的 Operator 软件包的子集。

如果您要创建完整镜像目录,则不需要特别考虑安装多集群全局 hub 和 AMQ Streams 所需的所有软件包。但是,如果您要创建部分或过滤了镜像目录,您需要为其识别要包含的特定软件包,则必须在列表中包含 multicluster-global-hub-operator-rhamq-streams 软件包名称。

完成以下步骤以创建 multicluster-global-hub-operator-rhamq-streams 软件包的本地镜像 registry:

  1. 创建 ImageSetConfiguration YAML 文件来配置并添加 Operator 镜像。您的 YAML 文件可能类似以下内容,使用当前版本替换 4.x

    kind: ImageSetConfiguration
    apiVersion: mirror.openshift.io/v1alpha2
    storageConfig:
      registry:
          imageURL: myregistry.example.com:5000/mirror/oc-mirror-metadata
    mirror:
      platform:
        channels:
        - name: stable-4.x
          type: ocp
      operators:
      - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.12
        packages:
        - name: multicluster-global-hub-operator-rh
        - name: amq-streams
      additionalImages: []
      helm: {}
    Copy to Clipboard Toggle word wrap
  2. 使用以下命令将镜像直接设置为目标镜像 registry:

    oc mirror --config=./imageset-config.yaml docker://myregistry.example.com:5000
    Copy to Clipboard Toggle word wrap
  3. 镜像在完全断开连接的环境中设置的镜像。如需了解更多详细信息 ,请参阅为断开连接的安装镜像镜像

要使您的镜像 registry 和目录在断开连接的集群中可用。完成以下步骤:

  1. 禁用 Operator Hub 的默认目录源。运行以下命令以更新 OperatorHub 资源:

    oc patch OperatorHub cluster --type json \
    -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'
    Copy to Clipboard Toggle word wrap
  2. 通过完成镜像 Operator 目录的步骤来 镜像 Operator 目录
  3. 将镜像目录的 CatalogSource 资源添加到 openshift-marketplace 命名空间中。您的 CatalogSource YAML 文件可能类似以下示例:

    apiVersion: operators.coreos.com/v1alpha1
    kind: CatalogSource
    metadata:
      name: my-mirror-catalog-source
      namespace: openshift-marketplace
    spec:
      image: myregistry.example.com:5000/mirror/my-operator-index:v4.12
      sourceType: grpc
      secrets:
      - <global-hub-secret>
    Copy to Clipboard Toggle word wrap
    • 注: 记录 metadata.name 字段的值。
  4. 保存更新的文件。
  5. 通过查询可用的 PackageManifest 资源,验证所需的软件包是否可以从断开连接的集群中可用。运行以下命令:

    oc -n openshift-marketplace get packagemanifests
    Copy to Clipboard Toggle word wrap

    显示的列表应包含显示 multicluster-global-hub-operator-rhamq-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 的方式而有所不同,但与以下示例类似:

apiVersion: operator.openshift.io/v1alpha1
kind: ImageContentSourcePolicy
metadata:
  labels:
    operators.openshift.org/catalog: "true"
  name: global-hub-operator-icsp
spec:
  repositoryDigestMirrors:
  - mirrors:
    - myregistry.example.com:5000/multicluster-globalhub
    source: registry.redhat.io/multicluster-globalhub
  - mirrors:
    - myregistry.example.com:5000/openshift4
    source: registry.redhat.io/openshift4
  - mirrors:
    - myregistry.example.com:5000/redhat
    source: registry.redhat.io/redhat
Copy to Clipboard Toggle word wrap

您可以使用 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:

  1. 从 pull secret 导出用户名:

    export USER=<the-registry-user>
    Copy to Clipboard Toggle word wrap
  2. 从 pull secret 导出密码:

    export PASSWORD=<the-registry-password>
    Copy to Clipboard Toggle word wrap
  3. 复制 pull secret:

    oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' > pull_secret.yaml
    Copy to Clipboard Toggle word wrap
  4. 使用 pull secret 登录:

    oc registry login --registry=${REGISTRY} --auth-basic="$USER:$PASSWORD" --to=pull_secret.yaml
    Copy to Clipboard Toggle word wrap
  5. 指定 multicluster global hub 镜像 pull secret:

    oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=pull_secret.yaml
    Copy to Clipboard Toggle word wrap
  6. 删除旧的 pull secret:

    rm pull_secret.yaml
    Copy to Clipboard Toggle word wrap

您可以通过完成以下步骤,将镜像 pull secret 配置为单独的命名空间:

  1. 运行以下命令,在租户命名空间中创建 secret:

    oc create secret generic <secret_name> -n <tenant_namespace> \
    --from-file=.dockerconfigjson=<path/to/registry/credentials> \
    --type=kubernetes.io/dockerconfigjson
    Copy to Clipboard Toggle word wrap
  2. 将 secret 链接到 Operator 或操作对象的服务帐户:

    oc secrets link <operator_sa> -n <tenant_namespace> <secret_name> --for=pull
    Copy to Clipboard Toggle word wrap

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
Copy to Clipboard Toggle word wrap

1.4.4. 其他资源

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat