多集群全局 hub


Red Hat Advanced Cluster Management for Kubernetes 2.11

了解 Multicluster 全局 hub 如何允许您管理多个 hub 集群。

摘要

了解更多有关 multicluster global hub 的信息,它可让您使用单个 hub 管理多个 hub 集群。

第 1 章 多集群全局 hub

multicluster global hub 是一组组件,可让您导入一个或多个 hub 集群,并从单个 hub 集群管理它们。

将 hub 集群导入为受管 hub 集群后,您可以使用 multicluster global hub 在所有受管 hub 集群中完成以下任务:

  • 报告策略合规状态和趋势
  • 在概览页面中清单所有受管 hub 和受管集群
  • 在 irregular 策略行为时检测和警报

当单个 hub 集群无法在高扩展环境中管理大量集群时,多集群全局 hub 很有用。当发生这种情况时,您可以将集群分成较小的集群组,并为每个组配置 hub 集群。

查看由该 hub 集群管理的受管集群的多个 hub 集群上的数据通常不方便。multicluster global hub 提供了一种更容易地通过将多个 hub 集群指定为受管 hub 集群来查看来自多个 hub 的信息。multicluster global hub 集群管理其他 hub 集群,并从受管 hub 集群收集汇总信息。

注: 多集群全局 hub 无法使用 Observability。如果您在集群中安装 multicluster global hub 前启用了多集群可观察性功能,请手动禁用多集群可观察性功能。

要了解如何使用多集群全局 hub,请参阅以下部分:

1.1. 多集群全局 hub 架构

多集群全局 hub 由以下组件组成,它们用于访问和管理您的 hub 集群:

  • 称为 全局 hub 集群的服务器组件,其管理工具和控制台运行
  • 在 Red Hat Advanced Cluster Management 上安装的客户端组件,名为 managed hub,该组件可由全局 hub 集群管理。受管 hub 还管理其他集群。您不必为多集群全局 hub 集群使用专用集群。

在以下部分了解更多有关构架的信息:

请参阅以下高级别多集群术语和组件:

1.1.1. multicluster global hub operator

multicluster global hub operator 包含 multicluster global hub 的组件。Operator 为全局多集群管理部署所有所需的组件。组件包括 multicluster-global-hub-managermulticluster-global-hub-grafana、在 multicluster global hub 集群中提供 KafkaPostgreSQL 版本,以及受管 hub 集群中的 multicluster-global-hub-agent

Operator 还利用 manifestwork 自定义资源在受管集群中部署 Red Hat Advanced Cluster Management for Kubernetes Operator。在受管集群中部署了 Red Hat Advanced Cluster Management Operator 后,受管集群将变为标准 Red Hat Advanced Cluster Management 集群。这个 hub 集群现在是一个受管 hub 集群。

1.1.2. 多集群全局 hub 管理器

multicluster global hub Manager 用于将数据保存到 postgreSQL 数据库中。数据来自 Kafka 传输。管理器还会将数据发布到 Kafka 传输,以便它可以与受管 hub 集群上的数据同步。

1.1.3. 多集群全局 hub 代理

multicluster global hub 代理在受管 hub 集群上运行。它同步多集群全局 hub 集群和受管 hub 集群之间的数据。例如,代理将受管集群的信息从受管集群同步到 multicluster global hub 集群,并将策略或应用程序从 multicluster global hub 集群同步到受管 hub 集群。

1.1.4. 多集群全局 hub 视觉化

Grafana 在 multicluster global hub 集群上运行,作为多集群全局 hub 视觉化的主要服务。Global Hub Manager 收集的 PostgreSQL 数据是其默认 DataSource。通过使用名为 multicluster-global-hub-grafana 的路由公开服务,您可以通过访问控制台来访问多集群全局 hub Grafana 仪表板。

1.2. 多集群全局 hub 要求

了解多集群全局 hub 要求,并查看多集群全局 hub 支持的组件和环境。

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

OpenShift Container Platform Dedicated 环境需要访问权限:您必须具有 cluster-admin 权限。默认情况下,dedicated-admin 角色没有在 OpenShift Container Platform Dedicated 环境中创建命名空间所需的权限。

请参见以下部分:

1.2.1. 网络要求

请参阅以下网络要求:

  • 受管 hub 集群也是 Red Hat Advanced Cluster Management 中的多集群全局 hub 受管集群。您必须在 Red Hat Advanced Cluster Management 中配置网络组件。有关 Red Hat Advanced Cluster Management 网络详情,请参阅 Networking
  • 要查看多集群全局 hub 网络信息,请参阅下表:

    Expand
    方向协议连接指定的端口源地址目标地址 

    来自浏览器的内向流量

    HTTPS

    访问 Grafana 仪表板

    443

    浏览器

    Grafana 路由 IP 地址

     

    到 Kafka 集群的外向流量

    HTTPS

    multicluster global hub Manager 需要从 Kafka 集群接收数据

    443

    multicluster-global-hub-manager-xxx pod

    Kafka 路由主机

     

    到 PostgreSQL 数据库的外向流量

    HTTPS

    multicluster global hub 需要向 PostgreSQL 数据库提供数据

    443

    multicluster-global-hub-manager-xxx pod

    PostgreSQL 数据库 IP 地址

     
  • 要查看受管 hub 网络信息,请查看下表:

    Expand
    方向协议连接指定的端口源地址目标地址 

    到 Kafka 集群的外向流量

    HTTPS

    multicluster global hub 代理需要将集群和策略信息同步到 Kafka 集群

    443

    multicluster-global-hub-agent pod

    Kafka 路由主机

     
  • 有关大小指南,请参阅 调整 Red Hat Advanced Cluster Management 集群大小

1.2.2. 支持的组件

请参阅以下支持的组件:

  • multicluster global hub 和 OpenShift Container Platform 控制台共享一个集成的控制台,因此它们支持相同的浏览器。有关支持的浏览器和版本的信息,请参阅 Red Hat OpenShift Container Platform 文档中的 访问 Web 控制台
  • 请参阅 multicluster global hub 集群的支持的平台表:

    Expand
    平台支持全局 hub 集群支持受管 hub 集群

    Red Hat Advanced Cluster Management 2.14 及更新的 2.14.x 版本

    Red Hat Advanced Cluster Management 2.13 以及更新的 2.13.x 发行版本

    Red Hat Advanced Cluster Management 2.12 以及更新的 2.12.x 发行版本

    Red Hat Advanced Cluster Management on Arm

    Red Hat Advanced Cluster Management on IBM Z

    IBM Power 系统上的 Red Hat Advanced Cluster Management

  • 多集群全局 hub 支持中间件,如 Kafka、PostgreSQL 和 Grafana。有关支持的中间件和内置版本列表,请查看下表:

    Expand
    Middleware内置版本

    amq-streams

    2.9.x

    Kafka

    3.9.0

    PostgreSQL

    16

    Grafana

    11.1.0

1.2.3. 其他资源

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

multicluster global hub 通过 Operator Lifecycle Manager 安装,用于管理安装、升级和删除组成 Operator 的组件。

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

1.3.1. 先决条件

  • 对于 OpenShift Container Platform Dedicated 环境,必须具有 cluster-admin 权限才能访问环境。默认情况下,dedicated-admin 角色没有在 OpenShift Container Platform Dedicated 环境中创建命名空间所需的权限。
  • 您必须安装并配置 Red Hat Advanced Cluster Management for Kubernetes。如需了解更多详细信息,请参阅 安装和升级
  • 您必须配置 Red Hat Advanced Cluster Management 网络。受管 hub 集群也是 Red Hat Advanced Cluster Management 中的多集群全局 hub 集群。如需了解更多详细信息,请参阅 Hub 集群网络配置
1.3.1.1. 使用控制台安装多集群全局 hub

要使用 OpenShift Container Platform 控制台在连接的环境中安装 multicluster global hub Operator,请完成以下步骤:

  1. 以具有 cluster-admin 角色的用户身份登录到 OpenShift Container Platform 控制台。
  2. 在导航菜单中选择 Operators & gt; OperatorHub 图标。
  3. 找到并选择 Multicluster global hub operator
  4. Install 开始安装。
  5. 安装完成后,检查 Installed Operators 页面中的状态。
  6. Multicluster global hub operator 进入 Operator 页面。
  7. Multicluster global hub 标签页查看 Multicluster Global Hub 实例。
  8. Create Multicluster Global Hub 创建 Multicluster Global Hub 实例。
  9. 输入所需信息并点 Create 创建 Multicluster Global Hub 实例。

备注:

  • multicluster global hub 仅适用于 x86 平台。
  • 安装 multicluster global hub 后,在 Red Hat Advanced Cluster Management 中禁用了策略和应用程序。

1.3.2. 其他资源

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 目录中提供 multicluster global 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.x
        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 文件可能类似以下示例,并将 4.x 设置为支持的版本:

    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.x
      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 资源,以便在断开连接的环境中配置 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 的方式而有所不同,但与以下示例类似:

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 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:

  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. 其他资源

1.5. 集成现有组件

多集群全局 hub 需要中间件组件、Kafka 和 PostgreSQL 以及 Grafana 作为 Observability 平台,以提供策略合规视图。multicluster global hub 提供 Kafka、PostgreSQL 和 Grafana 的版本。您还可以集成您自己的现有 Kafka、PostgreSQL 和 Grafana。

1.5.1. 集成现有 Kafka 版本

如果您有自己的 Kafka 实例,您可以使用它作为多集群全局 hub 的传输。Kafka 3.3 是经过测试的版本。完成以下步骤以集成 Kafka 实例:

  1. 如果您没有 Kafka 实例的持久性卷,则需要创建一个。
  2. multicluster-global-hub 命名空间中创建一个名为 multicluster-global-hub-transport 的 secret。

    1. 在以下必填字段中提取信息:

      • bootstrap.servers :指定 Kafka bootstrap 服务器。
      • ca.crt: 如果您使用 KafkaUser 自定义资源配置身份验证凭据,则需要此项。有关从 secret 提取 ca.crt 证书所需的步骤,请参阅 STRIMZI 文档中的 用户身份验证 主题。
      • client.crt: 必需,请参阅 STRIMZI 文档中的 用户身份验证 主题,以获取从 secret 提取 user.crt 证书的步骤。
      • client.key: 必需,请参阅 STRIMZI 文档中的 用户身份验证 主题,以获取从 secret 中提取 user.key 的步骤。
  3. 运行以下命令来创建 secret,根据需要将值替换为您提取的值:

    oc create secret generic multicluster-global-hub-transport -n multicluster-global-hub \
        --from-literal=bootstrap_server=<kafka-bootstrap-server-address> \
        --from-file=ca.crt=<CA-cert-for-kafka-server> \
        --from-file=client.crt=<Client-cert-for-kafka-server> \
        --from-file=client.key=<Client-key-for-kafka-server>
    Copy to Clipboard Toggle word wrap
  4. 如果在 Kafka 实例中配置了自动主题创建,请跳过这一步。如果没有配置,请手动创建 specstatus事件 主题。
  5. 确保访问 Kafka 的全局 hub 用户有权从主题读取数据,并将数据写入主题。

1.5.2. 集成现有 PostgreSQL 版本

如果您有自己的 PostgreSQL 关系数据库,您可以使用它作为多集群全局 hub 的存储。PostgreSQL 13 是经过测试的版本。

要求的最小存储大小为 20GB。这个数量可以存储 3 个受管集群,每个受管 hub 有 250 个受管集群和 50 个策略(18 个月)。您需要在 multicluster-global-hub 命名空间中创建一个名为 multicluster-global-hub-storage 的 secret。secret 必须包含以下字段:

  • database_uri :它用于创建数据库并插入数据。您的值必须类似以下格式: postgres://<user>:<password>@<host>:<port>/<database>?sslmode=<mode>
  • database_uri_with_readonlyuser :它用于查询由多集群全局 hub 使用的 Grafana 实例的数据。这是一个可选值。您的值必须类似以下格式: postgres://<user>:<password>@<host>:<port>/<database>?sslmode=<mode>
  • ca.crt 是基于 sslmode 的可选值。

    1. 验证集群所需的最小存储大小为 20GB。这个数量可以存储三个受管集群,每个受管 hub 有 250 个受管集群和 50 个策略(18 个月)。
    2. 运行以下命令来创建 secret:
oc create secret generic multicluster-global-hub-storage -n multicluster-global-hub \
    --from-literal=database_uri=<postgresql-uri> \
    --from-literal=database_uri_with_readonlyuser=<postgresql-uri-with-readonlyuser> \
    --from-file=ca.crt=<CA-for-postgres-server>
Copy to Clipboard Toggle word wrap

主机必须可从多集群全局 hub 集群访问。如果您的 PostgreSQL 数据库位于 Kubernetes 集群中,您可以考虑使用带有 nodePortLoadBalancer 的服务类型来公开数据库。如需更多信息,请参阅 访问置备的 postgres 数据库以进行故障排除

1.5.3. 集成现有 Grafana 版本

如果您依赖您自己的 Grafana 从多个源(如 Prometheus)从不同的集群获取指标,并使用现有 Grafana 实例使用多集群全局 hub。要将多集群全局 hub 数据纳入您自己的 Grafana 中,您需要配置数据源并导入仪表板。

  1. 运行以下命令,从 multicluster global hub Grafana 数据源 secret 收集 PostgreSQL 连接信息:

    oc get secret multicluster-global-hub-grafana-datasources -n multicluster-global-hub -ojsonpath='{.data.datasources\.yaml}' | base64 -d
    Copy to Clipboard Toggle word wrap

    输出类似以下示例:

    apiVersion: 1
    datasources:
    - access: proxy
      isDefault: true
      name: Global-Hub-DataSource
      type: postgres
      url: postgres-primary.multicluster-global-hub.svc:5432
      database: hoh
      user: guest
      jsonData:
        sslmode: verify-ca
        tlsAuth: true
        tlsAuthWithCACert: true
        tlsConfigurationMethod: file-content
        tlsSkipVerify: true
        queryTimeout: 300s
        timeInterval: 30s
      secureJsonData:
        password: xxxxx
        tlsCACert: xxxxx
    Copy to Clipboard Toggle word wrap
  2. 通过添加源(如 PostgreSQL),并使用之前提取的信息完成所需字段,在您自己的 Grafana 实例中配置数据源。

    请参见以下必填字段:

    • Name
    • Host
    • 数据库
    • 用户
    • 密码
    • TLS/SSL 模式
    • TLS/SSL 方法
    • CA 证书
  3. 如果您的 Grafana 不在多集群全局 hub 集群中,您需要使用 LoadBalancer 公开 PostgreSQL,以便 PostgreSQL 可以从外部访问。您可以将以下值添加到 PostgresCluster 操作对象中:

    service:
      type: LoadBalancer
    Copy to Clipboard Toggle word wrap

    添加该内容后,您可以从 postgres-ha 服务中获取 EXTERNAL-IP。请参见以下示例:

    oc get svc postgres-ha -n multicluster-global-hub
    NAME          TYPE           CLUSTER-IP      EXTERNAL-IP                        PORT(S)          AGE
    postgres-ha   LoadBalancer   172.30.227.58   xxxx.us-east-1.elb.amazonaws.com   5432:31442/TCP   128m
    Copy to Clipboard Toggle word wrap

    运行该命令后,您可以使用 xxxx.us-east-1.elb.amazonaws.com:5432 作为 PostgreSQL 连接主机。

  4. 导入现有的仪表板。

    1. 按照官方 Grafana 文档中的 导出和导入 仪表板中的步骤,从现有的 Grafana 实例导出仪表板。
    2. 按照官方 Grafana 文档中的 Export and import 仪表板中的步骤,将仪表板导入到 multicluster global hub Grafana 实例中。

1.5.4. 其他资源

如需有关如何从 secret 中提取 ca.crt 证书的更多信息,请参阅 STRIMZI 文档中的 用户身份验证

有关从 secret 中提取 user.crt 证书的步骤,请参阅 STRIMZI 文档中的 用户身份验证

1.6. 在默认模式中导入受管 hub 集群

要将现有 hub 集群导入为受管 hub 集群,请完成以下步骤:

  1. 通过在 multiclusterhub 自定义资源中将 disableHubSelfManagement 设置为 true 来禁用现有 Red Hat Advanced Cluster Management for Kubernetes hub 集群中的集群自助管理。此设置禁用将 hub 集群自动导入为受管集群。
  2. 通过完成集群导入 介绍中的步骤导入 受管 hub 集群。
  3. 导入受管 hub 集群后,检查 multicluster global hub 代理状态,以确保代理在受管 hub 集群中运行:

    oc get managedclusteraddon multicluster-global-hub-controller -n $<managed_hub_cluster_name>
    Copy to Clipboard Toggle word wrap

1.7. 访问 Grafana 数据

Grafana 数据通过路由公开。运行以下命令来显示登录 URL:

oc get route multicluster-global-hub-grafana -n <the-namespace-of-multicluster-global-hub-instance>
Copy to Clipboard Toggle word wrap

此 URL 的身份验证方法与 Red Hat OpenShift Container Platform 控制台进行身份验证的方式相同。

如需了解更多有关您可以使用 Grafana 仪表板查看的内容的信息,请参阅以下部分:

1.7.1. 使用 Grafana 仪表板查看策略状态

访问全局 hub Grafana 数据后,您可以监控通过管理的 hub 集群环境配置的策略。

在多集群全局 hub 仪表板中,您可以通过所选时间范围识别系统的策略的合规性状态。策略合规状态会每日更新,因此仪表板不会在后续日前显示当前日期的状态。

要浏览 multicluster global hub 仪表板,您可以通过根据策略或集群进行分组来观察和过滤 策略 数据。

如果要使用策略分组检查策略数据,请从 和名为 Global Hub - Policy Group Compliancy Overview 的仪表板开始。

此仪表板允许您根据 标准类别控制 过滤策略数据。在图中选择了一个特定的时间后,您会被定向到 Global Hub - Offending Policies 仪表板。Global Hub - Offending Policies 仪表板列出不合规或未知策略。选择目标策略后,您可以通过访问 Global Hub - 什么是 Changed / Policies 仪表板来查看相关的事件并查看已更改的事件。

同样,如果要通过 集群 分组检查策略数据,请从 Global Hub - Cluster Group Compliancy Overview 仪表板开始。导航流 与策略 分组流相同,但您可以选择与集群相关的过滤器,如受管集群 标签和 。在到达 Global Hub - 什么是 Changed / Clusters 仪表板后,而不是查看所有集群的策略事件,您可以查看与单个集群相关的策略事件。

1.7.2. 使用 Grafana 仪表板查看 Strimzi 信息

要了解 Kafka 部署和 Postgres 数据库的健康状态和性能,请收集其指标。在检查指标时,您可以在问题变得关键前识别问题,并对资源分配和容量规划做出明智的决策。如果没有收集并检查指标,您可能对 Kafka 部署的行为有有限的可见性,从而进行故障排除。

您可以在 multicluster global hub Grafana 中检查仪表板及其指标。在 Strimzi 文件夹中,您可以查看以下仪表板:

  • multicluster global hub - Strimzi Operator
  • multicluster global hub - Strimzi Kafka
  • multicluster global hub - Strimzi Zookeeper

要了解 Postgres 配置的健康状态和性能,请在 Grafana 仪表板中收集并检查 Postgres 指标。在 Postgres 文件夹中,您可以查看以下仪表板:

  • multicluster global hub - PostgresSQL 数据库

1.7.4. 使用 Grafana 仪表板查看集群信息

要过滤受管集群并查看其详情和事件,请使用 Grafana 仪表板。使用 Grafana 仪表板,您可以根据以下 hub标签和 名称过滤 受管集群。另外,您还可以根据以下方法查看受管集群的分布: hub状态 和版本

在 Cluster 文件夹中,您可以查看以下仪表板:

  • 多集群全局 hub - 集群概述

1.8. Grafana 警报(技术预览)

您可以配置三个 Grafana 警报,它们存储在 multicluster-global-hub-default-alerting 配置映射中。这些警报会通知您可疑的策略、可疑的集群合规状态更改以及失败的 cron 作业。

请参阅以下警报描述:

  • 可疑策略更改:此警报规则监视可疑策略的变化。如果以下事件在一小时内发生超过五次,它会创建通知。

    • 一个策略被启用或禁用。
    • 已更新策略。
  • 可疑的集群合规状态更改:此警报规则监视集群的合规状态和策略事件。这个警报有两个规则:

    • 集群合规状态会频繁变化:如果集群合规状态在 1 小时内从合规状态变为 non- compliance ,它将创建通知。
    • 集群中的策略事件太多:对于集群中的策略,如果五分钟内有 20 个事件,则创建通知。如果此警报总是触发,则 event.local_policies 表中的数据会太快。
  • Cron Job 失败:此警报会监视在为失败事件 配置 cron 作业 中描述的 cron 作业。这个警报有两个规则:

    • 本地合规作业失败:如果此警报规则创建通知,这意味着本地合规状态同步作业失败。可能会导致 history.local_compliance 表中的数据丢失。如有必要,手动运行作业。
    • 数据保留作业失败:如果此警报规则开始创建通知,这意味着数据保留作业失败。您可以手动运行它。

1.8.1. 删除默认的 Grafana 警报规则

如果默认 Grafana 警报规则不提供有用的信息,您可以通过在 multicluster-global-hub-custom-alerting 配置映射中包含 deleteRules 部分来删除 Grafana 警报规则。如需有关 multicluster-global-hub-custom-alerting 配置映射的更多信息,请参阅自定义 Grafana 警报资源

要删除所有默认警报,deleteRules 配置部分应类似以下示例:

    deleteRules:
      - orgId: 1
        uid: globalhub_suspicious_policy_change
      - orgId: 1
        uid: globalhub_cluster_compliance_status_change_frequently
      - orgId: 1
        uid: globalhub_high_number_of_policy_events
      - orgId: 1
        uid: globalhub_data_retention_job
      - orgId: 1
        uid: globalhub_local_compliance_job
Copy to Clipboard Toggle word wrap

1.8.2. 自定义 Grafana 警报

multicluster global hub 支持创建自定义 Grafana 警报。完成以下步骤以自定义 Grafana 警报:

1.8.2.1. 自定义 grafana.ini 文件

要自定义 grafana.ini 文件,请在安装 multicluster-global-hub-custom-grafana-config 命名空间中创建一个名为 multicluster-global-hub-custom-grafana-config 的 secret。secret 数据键是 grafana.ini,如下例所示。使用您自己的凭证替换所需的信息:

apiVersion: v1
kind: Secret
metadata:
  name: multicluster-global-hub-custom-grafana-config
  namespace: multicluster-global-hub
type: Opaque
stringData:
  grafana.ini: |
    [smtp]
    enabled = true
    host = smtp.google.com:465
    user = <example@google.com>
    password = <password>
    ;cert_file =
    ;key_file =
    skip_verify = true
    from_address = <example@google.com>
    from_name = Grafana
    ;ehlo_identity = dashboard.example.com 
1
Copy to Clipboard Toggle word wrap

<1> the EHLO 身份在 SMTP 对话框中,默认为 instance_name

注: 您无法配置已包含 multicluster-global-hub-default-grafana-config secret 的部分。

1.8.2.2. 自定义 Grafana 警报资源

multicluster global hub 支持自定义警报资源,如 Grafana 文档中的使用文件置备来创建和管理警报资源

要自定义警报资源,请在 multicluster-global-hub 命名空间中创建一个名为 multicluster-global-hub-custom-alerting 的配置映射。

配置映射数据键是 alerting.yaml,如下例所示:

apiVersion: v1
data:
  alerting.yaml: |
    contactPoints:
      - orgId: 1
        name: globalhub_policy
        receivers:
          - uid: globalhub_policy_alert_email
            type: email
            settings:
              addresses: <example@redhat.com>
              singleEmail: false
          - uid: globalhub_policy_alert_slack
            type: slack
            settings:
              url: <Slack-webhook-URL>
              title: |
                {{ template "globalhub.policy.title" . }}
              text: |
                {{ template "globalhub.policy.message" . }}
    policies:
      - orgId: 1
        receiver: globalhub_policy
        group_by: ['grafana_folder', 'alertname']
        matchers:
          - grafana_folder = Policy
        repeat_interval: 1d
    deleteRules:
      - orgId: 1
        uid: [Alert Rule Uid]
    muteTimes:
      - orgId: 1
        name: mti_1
        time_intervals:
          - times:
              - start_time: '06:00'
                end_time: '23:59'
                location: 'UTC'
            weekdays: ['monday:wednesday', 'saturday', 'sunday']
            months: ['1:3', 'may:august', 'december']
            years: ['2020:2022', '2030']
            days_of_month: ['1:5', '-3:-1']
kind: ConfigMap
metadata:
  name: multicluster-global-hub-custom-alerting
  namespace: multicluster-global-hub
Copy to Clipboard Toggle word wrap

1.9. 配置 cron 作业

您可以配置多集群全局 hub 的 cron 作业设置。

安装 multicluster global hub 操作对象后,多集群全局 hub 管理器将运行并显示您调度以下 cron 任务的作业调度程序:

  • 本地合规状态同步作业:此 cron 作业每天都基于上一天由管理器收集的策略状态 和事件运行。运行此作业,以汇总集群中策略的合规性状态和更改频率,并将它们作为 Grafana 仪表板的数据源存储在 history.local_compliance 表中。
  • 数据保留作业: 多集群全局 hub 中的一些数据表持续增长,这通常会在表太大时造成问题。以下两个操作有助于最大程度减少从表中造成太大结果的问题:

    1. 删除不再需要的旧数据。
    2. 在大型表上启用分区,以更快地运行查询和删除。

      对于事件表,如 event.local_policieshistory.local_compliance,扩展分区会将大型表分成较小的分区。这个过程还会在每次运行时会为下一个月创建分区表。

      对于策略和集群表,如 local_spec.policiesstatus.managed_clusters,表上的 deleted_at 索引,以便在删除时提高性能。

    您可以通过更改 multicluster global hub 操作对象上的 保留设置来更改 保留数据的持续时间。推荐的最小值为 1 个月,默认值为 18 个月。此作业的运行间隔应小于一个月。

每次多集群全局 hub 管理器启动时,列出的 cron 作业都会运行。本地合规状态同步任务每天运行一次,可以在一天内多次运行,而无需更改结果。

数据保留作业每周运行一次,并且每个月可以多次运行,而不会更改结果。

这些作业的状态保存在 multicluster_global_hub_jobs_status 指标中,该指标可从 Red Hat OpenShift Container Platform 集群的控制台查看。值 0 表示作业成功运行,而值 1 表示失败。

1.10. 手动运行 summarization 进程

您可以手动运行 summarization 进程,以便在作业没有触发或没有运行失败时恢复当天的初始合规状态。要手动运行 summarization 过程,请完成以下步骤:

  1. 使用之前的一天的合规历史记录作为恢复日历史记录的初始状态。
  2. 连接到数据库。

    您可以使用 pgAdmintablePlush 等客户端连接到多集群全局 hub 数据库。或者,您可以运行以下命令来直接连接到集群中的数据库:

    oc exec -it multicluster-global-hub-postgres-0 -n multicluster-global-hub -- psql -d hoh
    Copy to Clipboard Toggle word wrap
  3. 决定您要运行总结过程的日期,例如: 2023-07-06

    从仪表板指标或 history.local_job_log 表中查找本地合规 作业失败信息。在本例中,日期是 2023-07-06,因此您知道 2023-07-06 是您需要手动运行概述过程的日期。

  4. 运行以下 SQL 恢复 2023-07-06 的初始合规性:

    -- call the func to generate the initial data of '2023-07-06' by inheriting '2023-07-05'
    CALL history.generate_local_compliance('2024-07-06');
    Copy to Clipboard Toggle word wrap

1.11. 多集群全局 hub 备份(技术预览)

使用 multicluster global hub 与 Red Hat Advanced Cluster Management 备份和恢复功能恢复解决方案,并访问基本资源。要了解有关这些功能如何帮助您的更多信息,请参阅 备份和恢复

多集群全局 hub 还支持使用 acm-hub-pvc-backup 备份 postgres pvc。要确保多集群全局 hub 可以支持备份 postgres pvc,您必须有当前版本的 VolySync 和 Red Hat Advanced Cluster Management。有关备份数据的详细步骤,请参阅 acm-hub-pvc-backup

1.11.1. 恢复多集群全局 hub 备份和恢复

如果需要恢复多集群全局 hub 集群,请参阅准备 新的 hub 集群。安装 multicluster global hub operator,但不创建 multicluster global hub 自定义资源(CR),因为 CR 会自动恢复。

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部