1.2.2. 启用可观察性

通过创建一个 MultiClusterObservability 自定义资源(CR)实例来启用可观察性服务。在启用可观察性前,请参阅 Observability pod 容量请求 以了解更多信息。完成以下步骤以启用可观察服务:

  1. 登录到您的 Red Hat Advanced Cluster Management hub 集群。
  2. 使用以下命令,为可观察服务创建一个命名空间:

    oc create namespace open-cluster-management-observability
  3. 生成 pull-secret。如果在 open-cluster-management 命名空间中安装了 Red Hat Advanced Cluster Management,请运行以下命令:

    DOCKER_CONFIG_JSON=`oc extract secret/multiclusterhub-operator-pull-secret -n open-cluster-management --to=-`

    如果命名空间中没有定义 multiclusterhub-operator-pull-secret,将 openshift-config 命名空间中的 pull-secret 复制到 open-cluster-management-observability 命名空间中。运行以下命令:

    DOCKER_CONFIG_JSON=`oc extract secret/pull-secret -n openshift-config --to=-`

    然后,在 open-cluster-management-observability 命名空间中创建 pull-secret,运行以下命令:

    oc create secret generic multiclusterhub-operator-pull-secret \
        -n open-cluster-management-observability \
        --from-literal=.dockerconfigjson="$DOCKER_CONFIG_JSON" \
        --type=kubernetes.io/dockerconfigjson
  4. 为您的云供应商的对象存储创建 secret。您的 secret 必须包含存储解决方案的凭证。例如,运行以下命令:

    oc create -f thanos-object-storage.yaml -n open-cluster-management-observability

    查看以下受支持对象存储的 secret 示例:

    • 对于 Red Hat Advanced Cluster Management,您的 secret 可能类似以下文件:

      apiVersion: v1
      kind: Secret
      metadata:
        name: thanos-object-storage
        namespace: open-cluster-management-observability
      type: Opaque
      stringData:
        thanos.yaml: |
          type: s3
          config:
            bucket: YOUR_S3_BUCKET
            endpoint: YOUR_S3_ENDPOINT
            insecure: true
            access_key: YOUR_ACCESS_KEY
            secret_key: YOUR_SECRET_KEY
    • 对于 Amazon S3 或 S3 兼容,您的 secret 可能类似以下文件:

      apiVersion: v1
      kind: Secret
      metadata:
        name: thanos-object-storage
        namespace: open-cluster-management-observability
      type: Opaque
      stringData:
        thanos.yaml: |
          type: s3
          config:
            bucket: YOUR_S3_BUCKET
            endpoint: YOUR_S3_ENDPOINT
            insecure: true
            access_key: YOUR_ACCESS_KEY
            secret_key: YOUR_SECRET_KEY

      详情请参阅 Amazon Simple Storage Service 用户指南

    • 对于 Google,您的 secret 可能类似以下文件:

      apiVersion: v1
      kind: Secret
      metadata:
        name: thanos-object-storage
        namespace: open-cluster-management-observability
      type: Opaque
      stringData:
        thanos.yaml: |
          type: GCS
          config:
            bucket: YOUR_GCS_BUCKET
            service_account: YOUR_SERVICE_ACCOUNT

      如需了解更多详细信息,请参阅 Google Cloud Storage

    • 对于 Azure,您的 secret 可能类似以下文件:

      apiVersion: v1
      kind: Secret
      metadata:
        name: thanos-object-storage
        namespace: open-cluster-management-observability
      type: Opaque
      stringData:
        thanos.yaml: |
          type: AZURE
          config:
            storage_account: YOUR_STORAGE_ACCT
            storage_account_key: YOUR_STORAGE_KEY
            container: YOUR_CONTAINER
            endpoint: blob.core.windows.net
            max_retries: 0

      如需了解更多详细信息,请参阅 Azure Storage 文档

      : 如果您将 Azure 用作 Red Hat OpenShift Container Platform 集群的对象存储,则不支持与集群关联的存储帐户。您必须创建新存储帐户。

    • 对于 Red Hat OpenShift Container Storage,您的 secret 可能类似以下文件:

      apiVersion: v1
      kind: Secret
      metadata:
        name: thanos-object-storage
        namespace: open-cluster-management-observability
      type: Opaque
      stringData:
        thanos.yaml: |
          type: s3
          config:
            bucket: YOUR_OCS_BUCKET
            endpoint: YOUR_OCS_ENDPOINT
            insecure: false
            access_key: YOUR_OSC_ACCESS_KEY
            secret_key: YOUR_OSC_SECRET_KEY

      如需了解更多详细信息,请参阅 Red Hat OpenShift Container Storage

    • 对于 IBM 上的 Red Hat OpenShift (ROKS),您的 secret 可能类似以下文件:

      apiVersion: v1
      kind: Secret
      metadata:
        name: thanos-object-storage
        namespace: open-cluster-management-observability
      type: Opaque
      stringData:
        thanos.yaml: |
          type: s3
          config:
            bucket: YOUR_ROKS_S3_BUCKET
            endpoint: YOUR_ROKS_S3_ENDPOINT
            insecure: true
            access_key: YOUR_ROKS_ACCESS_KEY
            secret_key: YOUR_ROKS_SECRET_KEY

      如需了解更多详细信息,请参阅 IBM 云文档 Cloud Object Storage。务必使用服务凭据来连接对象存储。如需了解更多详细信息,请参阅 IBM Cloud 文档,云对象存储服务凭证

  5. 您可以使用以下命令为云供应商检索 S3 access key 和 secret 密钥:

    YOUR_CLOUD_PROVIDER_ACCESS_KEY=$(oc -n open-cluster-management-observability get secret <object-storage-secret> -o jsonpath="{.data.thanos\.yaml}" | base64 --decode | grep access_key | awk '{print $2}')
    
    echo $ACCESS_KEY
    
    YOUR_CLOUD_PROVIDER_SECRET_KEY=$(oc -n open-cluster-management-observability get secret <object-storage-secret> -o jsonpath="{.data.thanos\.yaml}" | base64 --decode | grep secret_key | awk '{print $2}')
    
    echo $SECRET_KEY

您必须在 secret 中解码、编辑并编码您的 base64 字符串。

1.2.2.1. 创建 MultiClusterObservability CR

完成以下步骤,为您的受管集群创建 MultiClusterObservability 自定义资源 (CR):

  1. 创建名为 multiclusterobservability_cr.yamlMultiClusterObservability 自定义资源 YAML 文件。

    查看以下默认 YAML 文件以查看可观察性:

    apiVersion: observability.open-cluster-management.io/v1beta2
    kind: MultiClusterObservability
    metadata:
      name: observability
    spec:
      observabilityAddonSpec: {}
      storageConfig:
        metricObjectStorage:
          name: thanos-object-storage
          key: thanos.yaml

    您可能需要修改 advanced 部分中的 retentionConfig 参数的值。如需更多信息,请参阅 Thanos Downsampling 分辨率和保留时间。根据受管集群的数量,您可能需要为有状态的集合更新存储量。如需更多信息,请参阅 Observability API

  2. 要在基础架构机器集上部署,您必须通过更新 MultiClusterObservability YAML 中的 nodeSelector 来为设置设置一个标签。您的 YAML 可能类似以下内容:

      nodeSelector:
        node-role.kubernetes.io/infra:

    如需更多信息,请参阅创建基础架构机器集

  3. 运行以下命令,将可观察 YAML 应用到集群:

    oc apply -f multiclusterobservability_cr.yaml

    用于 Thanos、Grafana 和 AlertManager 的所有 pod 在 open-cluster-management-observability 命名空间中创建。所有连接到 Red Hat Advanced Cluster Management hub 集群的受管集群都会被启用,以将指标数据发送回 Red Hat Advanced Cluster Management Observability 服务。

  4. 要验证是否已启用了 observabilty 服务,启动 Grafana 仪表板,查看其中是否包括了相关的数据。完成以下步骤:

    1. 登录到 Red Hat Advanced Cluster Management 控制台。
    2. 在导航菜单中选择 Home > Overview
    3. 点击位于控制台标头旁的 Grafana 链接,从您的受管集群中查看指标。

      :如果要排除特定的受管集群收集可观察性数据,请在集群中添加以下集群标签: observability: disabled

observability 服务被启用。启用 observability 服务后,会启动以下功能:

  • 所有来自受管集群的警报管理器都转发到 Red Hat Advanced Cluster Management hub 集群。
  • 所有连接到 Red Hat Advanced Cluster Management hub 集群的受管集群都会被启用,以将警报发送回 Red Hat Advanced Cluster Management observability 服务。您可以配置 Red Hat Advanced Cluster Management Alertmanager 来处理重复数据删除、分组和将警报路由到正确的接收器集成,如电子邮件、PagerDuty 或 OpsGenie。您还可以处理静默和禁止警报。

    : 只有 Red Hat OpenShift Container Platform 版本 4.8 或更高版本的受管集群支持将警报转发到 Red Hat Advanced Cluster Management hub 集群功能。在安装启用了可观察性服务的 Red Hat Advanced Cluster Management 后,来自 OpenShift Container Platform v4.8 及更新的版本的警报会自动转发到 hub 集群。

请参阅转发警报以了解更多信息。