安装红帽构建的 OpenTelemetry


Red Hat build of OpenTelemetry 3.8

部署 OpenTelemetry Operator 和 Collector 实例

Red Hat OpenShift Documentation Team

摘要

本文档论述了如何在 OpenShift 上安装红帽构建的 OpenTelemetry。了解如何使用 Web 控制台或 CLI 部署 OpenTelemetry Operator、创建命名空间并配置 OpenTelemetry Collector 实例。包括设置 RBAC 资源和配置节点调度选项的流程。

第 1 章 安装

安装红帽构建的 OpenTelemetry 涉及以下步骤:

  1. 安装红帽构建的 OpenTelemetry Operator。
  2. 为 OpenTelemetry Collector 实例创建命名空间。
  3. 创建 OpenTelemetryCollector 自定义资源来部署 OpenTelemetry Collector 实例。

1.1. 从 web 控制台安装红帽构建的 OpenTelemetry

您可以从 OpenShift Container Platform Web 控制台安装 OpenTelemetry 的 Red Hat build。

先决条件

  • 以集群管理员身份使用 cluster-admin 角色登录到 web 控制台。
  • 对于 Red Hat OpenShift Dedicated,您必须使用具有 dedicated-admin 角色的帐户登录。

流程

  1. 安装红帽构建的 OpenTelemetry Operator:

    1. 在 Web 控制台中,搜索 红帽构建的 OpenTelemetry Operator

      提示

      在 OpenShift Container Platform 4.19 或更早版本中,进入 OperatorsOperatorHub

      在 OpenShift Container Platform 4.20 或更高版本中,进入 EcosystemSoftware Catalog

    2. 选择 Red Hat build of OpenTelemetry Operatorprovided by Red HatInstallInstallView Operator.

      重要

      这会使用默认预设置来安装 Operator:

      • Update channelstable
      • Installation modeAll namespaces on the cluster
      • Installed Namespaceopenshift-opentelemetry-operator
      • Update approvalAutomatic
    3. 在安装的 Operator 页面的 Details 选项卡中,在 ClusterServiceVersion details 下验证安装 Status 是否为 Succeeded
  2. 通过转至 HomeProjectsCreate Project,为 OpenTelemetry Collector 实例创建一个允许的项目,您要在下一步中创建的。不允许以 openshift- 前缀开头的项目名称。
  3. 创建 OpenTelemetry Collector 实例。

    1. 进入 EcosystemInstalled Operators
    2. 选择 OpenTelemetry CollectorCreate OpenTelemetry CollectorYAML view
    3. YAML 视图中,自定义 OpenTelemetryCollector 自定义资源 (CR):

      OpenTelemetryCollector CR 示例

      apiVersion: opentelemetry.io/v1beta1
      kind: OpenTelemetryCollector
      metadata:
        name: otel
        namespace: <permitted_project_of_opentelemetry_collector_instance> 
      1
      
      spec:
        mode: <deployment_mode> 
      2
      
        config:
          receivers: 
      3
      
            otlp:
              protocols:
                grpc:
                http:
            jaeger:
              protocols:
                grpc: {}
                thrift_binary: {}
                thrift_compact: {}
                thrift_http: {}
            zipkin: {}
          processors: 
      4
      
            batch: {}
            memory_limiter:
              check_interval: 1s
              limit_percentage: 50
              spike_limit_percentage: 30
          exporters: 
      5
      
            debug: {}
          service:
            pipelines:
              traces:
                receivers: [otlp,jaeger,zipkin]
                processors: [memory_limiter,batch]
                exporters: [debug]
      Copy to Clipboard Toggle word wrap

      1
      OpenTelemetryCollector 部署选择的项目。不允许以 openshift- 前缀开头的项目名称。
      2
      带有以下支持值的部署模式:默认 deployment, daemonset, statefulset, 或 sidecar。详情请参阅部署模式
      3
      详情请查看 Receivers
      4
      详情请查看 Processors
      5
      详情请查看 Exporters
    4. 选择 Create

验证

  1. 使用 Project: 下拉列表选择 OpenTelemetry Collector 实例的项目。
  2. 进入 EcosystemInstalled Operators,以验证 OpenTelemetry Collector 实例的 Status 是否为 Condition: Ready
  3. 进入 WorkloadsPods,以验证 OpenTelemetry Collector 实例的所有组件 pod 都在运行。

1.2. 使用 CLI 安装红帽构建的 OpenTelemetry

您可以从命令行安装红帽构建的 OpenTelemetry。

先决条件

  • 集群管理员具有 cluster-admin 角色的活跃 OpenShift CLI (oc) 会话。

    提示
    • 确保您的 OpenShift CLI (oc) 版本为最新版本,并与您的 OpenShift Container Platform 版本匹配。
    • 运行 oc login:

      $ oc login --username=<your_username>
      Copy to Clipboard Toggle word wrap

流程

  1. 安装红帽构建的 OpenTelemetry Operator:

    1. 运行以下命令,为红帽构建的 OpenTelemetry Operator 创建项目:

      $ oc apply -f - << EOF
      apiVersion: project.openshift.io/v1
      kind: Project
      metadata:
        labels:
          kubernetes.io/metadata.name: openshift-opentelemetry-operator
          openshift.io/cluster-monitoring: "true"
        name: openshift-opentelemetry-operator
      EOF
      Copy to Clipboard Toggle word wrap
    2. 运行以下命令来创建 Operator 组:

      $ oc apply -f - << EOF
      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: openshift-opentelemetry-operator
        namespace: openshift-opentelemetry-operator
      spec:
        upgradeStrategy: Default
      EOF
      Copy to Clipboard Toggle word wrap
    3. 运行以下命令来创建订阅:

      $ oc apply -f - << EOF
      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: opentelemetry-product
        namespace: openshift-opentelemetry-operator
      spec:
        channel: stable
        installPlanApproval: Automatic
        name: opentelemetry-product
        source: redhat-operators
        sourceNamespace: openshift-marketplace
      EOF
      Copy to Clipboard Toggle word wrap
    4. 运行以下命令检查 Operator 状态:

      $ oc get csv -n openshift-opentelemetry-operator
      Copy to Clipboard Toggle word wrap
  2. 为您要在后续步骤中创建的 OpenTelemetry Collector 实例,创建一个您选择的有权限的项目:

    • 要创建没有元数据的允许的项目,请运行以下命令:

      $ oc new-project <permitted_project_of_opentelemetry_collector_instance> 
      1
      Copy to Clipboard Toggle word wrap
      1
      不允许以 openshift- 前缀开头的项目名称。
    • 要创建带有元数据的允许的项目,请运行以下命令:

      $ oc apply -f - << EOF
      apiVersion: project.openshift.io/v1
      kind: Project
      metadata:
        name: <permitted_project_of_opentelemetry_collector_instance> 
      1
      
      EOF
      Copy to Clipboard Toggle word wrap
      1
      不允许以 openshift- 前缀开头的项目名称。
  3. 在为您创建的项目中创建一个 OpenTelemetry Collector 实例。

    注意

    您可以在同一集群中的独立项目中创建多个 OpenTelemetry Collector 实例。

    1. 自定义 OpenTelemetryCollector 自定义资源 (CR):

      OpenTelemetryCollector CR 示例

      apiVersion: opentelemetry.io/v1beta1
      kind: OpenTelemetryCollector
      metadata:
        name: otel
        namespace: <permitted_project_of_opentelemetry_collector_instance> 
      1
      
      spec:
        mode: <deployment_mode> 
      2
      
        config:
          receivers: 
      3
      
            otlp:
              protocols:
                grpc:
                http:
            jaeger:
              protocols:
                grpc: {}
                thrift_binary: {}
                thrift_compact: {}
                thrift_http: {}
            zipkin: {}
          processors: 
      4
      
            batch: {}
            memory_limiter:
              check_interval: 1s
              limit_percentage: 50
              spike_limit_percentage: 30
          exporters: 
      5
      
            debug: {}
          service:
            pipelines:
              traces:
                receivers: [otlp,jaeger,zipkin]
                processors: [memory_limiter,batch]
                exporters: [debug]
      Copy to Clipboard Toggle word wrap

      1
      OpenTelemetryCollector 部署选择的项目。不允许以 openshift- 前缀开头的项目名称。
      2
      带有以下支持值的部署模式:默认 deployment, daemonset, statefulset, 或 sidecar。详情请参阅部署模式
      3
      详情请查看 Receivers
      4
      详情请查看 Processors
      5
      详情请查看 Exporters
    2. 运行以下命令来应用自定义 CR:

      $ oc apply -f - << EOF
      <OpenTelemetryCollector_custom_resource>
      EOF
      Copy to Clipboard Toggle word wrap

验证

  1. 运行以下命令,验证 OpenTelemetry Collector pod 的 status.phase 是否为 Running条件type: Ready

    $ oc get pod -l app.kubernetes.io/managed-by=opentelemetry-operator,app.kubernetes.io/instance=<namespace>.<instance_name> -o yaml
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令来获取 OpenTelemetry Collector 服务:

    $ oc get service -l app.kubernetes.io/managed-by=opentelemetry-operator,app.kubernetes.io/instance=<namespace>.<instance_name>
    Copy to Clipboard Toggle word wrap

1.3. 使用污点和容限

要将 OpenTelemetry pod 调度到专用节点上,请参阅在 OpenShift 4 中使用 nodeSelector 和 tolerations 在 infra 节点上部署不同的 OpenTelemetry 组件

1.4. 自动创建所需的 RBAC 资源

有些 Collector 组件需要配置 RBAC 资源。

流程

  • opentelemetry-operator-controller-manage 服务帐户中添加以下权限,以便红帽构建的 OpenTelemetry Operator 可以自动创建它们:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: generate-processors-rbac
    rules:
    - apiGroups:
      - rbac.authorization.k8s.io
      resources:
      - clusterrolebindings
      - clusterroles
      verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: generate-processors-rbac
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: generate-processors-rbac
    subjects:
    - kind: ServiceAccount
      name: opentelemetry-operator-controller-manager
      namespace: openshift-opentelemetry-operator
    Copy to Clipboard Toggle word wrap

法律通告

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
返回顶部