×

安装 Red Hat 版 OpenTelemetry 包括以下步骤

  1. 安装 Red Hat 版 OpenTelemetry Operator。

  2. 为 OpenTelemetry Collector 实例创建命名空间。

  3. 创建一个 `OpenTelemetryCollector` 自定义资源来部署 OpenTelemetry Collector 实例。

从 Web 控制台安装 Red Hat 版 OpenTelemetry

您可以从 Web 控制台的**管理员**视图安装 Red Hat 版 OpenTelemetry。

先决条件
  • 您已以具有 `cluster-admin` 角色的集群管理员身份登录 Web 控制台。

  • 对于 Red Hat OpenShift Dedicated,您必须使用具有 `dedicated-admin` 角色的帐户登录。

步骤
  1. 安装 Red Hat 版 OpenTelemetry Operator

    1. 转到**操作符** → **OperatorHub** 并搜索 `Red Hat build of OpenTelemetry Operator`。

    2. 选择由 Red Hat 提供的**Red Hat 版 OpenTelemetry Operator** → **安装** → **安装** → **查看操作符**。

      这将使用默认预设安装操作符

      • **更新通道** → **稳定**

      • **安装模式** → **集群上的所有命名空间**

      • **已安装的命名空间** → **openshift-operators**

      • **更新批准** → **自动**

    3. 在已安装操作符页面的**详细信息**选项卡中,在**ClusterServiceVersion 详细信息**下,验证安装**状态**是否为**成功**。

  2. 通过转到**主页** → **项目** → **创建项目**,为下一步中将创建的**OpenTelemetry Collector** 实例创建您选择的项目。

  3. 创建**OpenTelemetry Collector** 实例。

    1. 转到**操作符** → **已安装的操作符**。

    2. 选择**OpenTelemetry Collector** → **创建 OpenTelemetry Collector** → **YAML 视图**。

    3. 在**YAML 视图**中,自定义 `OpenTelemetryCollector` 自定义资源 (CR)

      示例 `OpenTelemetryCollector` CR
      apiVersion: opentelemetry.io/v1alpha1
      kind: OpenTelemetryCollector
      metadata:
        name: otel
        namespace: <project_of_opentelemetry_collector_instance>
      spec:
        mode: deployment
        config: |
          receivers: (1)
            otlp:
              protocols:
                grpc:
                http:
            jaeger:
              protocols:
                grpc: {}
                thrift_binary: {}
                thrift_compact: {}
                thrift_http: {}
            zipkin: {}
          processors: (2)
            batch: {}
            memory_limiter:
              check_interval: 1s
              limit_percentage: 50
              spike_limit_percentage: 30
          exporters: (3)
            debug: {}
          service:
            pipelines:
              traces:
                receivers: [otlp,jaeger,zipkin]
                processors: [memory_limiter,batch]
                exporters: [debug]
      1 详情请参见“接收器”页面。
      2 详情请参见“处理器”页面。
      3 详情请参见“导出器”页面。
    4. 选择创建

验证
  1. 使用项目:下拉列表选择OpenTelemetry Collector实例的项目。

  2. 转到操作符已安装的操作符以验证OpenTelemetry Collector实例的状态是否为条件:就绪

  3. 转到工作负载Pod以验证OpenTelemetry Collector实例的所有组件Pod是否正在运行。

使用CLI安装Red Hat版本的OpenTelemetry

您可以从命令行安装Red Hat版本的OpenTelemetry。

先决条件
  • 集群管理员通过具有cluster-admin角色的活动OpenShift CLI (oc) 会话。

    • 确保您的OpenShift CLI (oc) 版本是最新的,并且与您的OpenShift Container Platform版本匹配。

    • 运行oc login

      $ oc login --username=<your_username>
步骤
  1. 安装 Red Hat 版 OpenTelemetry Operator

    1. 通过运行以下命令创建Red Hat版本的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
    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
    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
    4. 通过运行以下命令检查Operator状态

      $ oc get csv -n openshift-opentelemetry-operator
  2. 为将在后续步骤中创建的OpenTelemetry Collector实例创建您选择的项目

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

      $ oc new-project <project_of_opentelemetry_collector_instance>
    • 要创建具有元数据的项目,请运行以下命令

      $ oc apply -f - << EOF
      apiVersion: project.openshift.io/v1
      kind: Project
      metadata:
        name: <project_of_opentelemetry_collector_instance>
      EOF
  3. 在您为其创建的项目中创建一个OpenTelemetry Collector实例。

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

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

      示例 `OpenTelemetryCollector` CR
      apiVersion: opentelemetry.io/v1alpha1
      kind: OpenTelemetryCollector
      metadata:
        name: otel
        namespace: <project_of_opentelemetry_collector_instance>
      spec:
        mode: deployment
        config: |
          receivers: (1)
            otlp:
              protocols:
                grpc:
                http:
            jaeger:
              protocols:
                grpc: {}
                thrift_binary: {}
                thrift_compact: {}
                thrift_http: {}
            zipkin: {}
          processors: (2)
            batch: {}
            memory_limiter:
              check_interval: 1s
              limit_percentage: 50
              spike_limit_percentage: 30
          exporters: (3)
            debug: {}
          service:
            pipelines:
              traces:
                receivers: [otlp,jaeger,zipkin]
                processors: [memory_limiter,batch]
                exporters: [debug]
      1 详情请参见“接收器”页面。
      2 详情请参见“处理器”页面。
      3 详情请参见“导出器”页面。
    2. 通过运行以下命令应用自定义的CR

      $ oc apply -f - << EOF
      <OpenTelemetryCollector_custom_resource>
      EOF
验证
  1. 通过运行以下命令验证OpenTelemetry Collector Pod的status.phase是否为Running,并且conditions是否为type: Ready

    $ oc get pod -l app.kubernetes.io/managed-by=opentelemetry-operator,app.kubernetes.io/instance=<namespace>.<instance_name> -o yaml
  2. 通过运行以下命令获取OpenTelemetry Collector服务

    $ oc get service -l app.kubernetes.io/managed-by=opentelemetry-operator,app.kubernetes.io/instance=<namespace>.<instance_name>

使用污点和容忍度

自动创建所需的RBAC资源

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

步骤
  • opentelemetry-operator-controller-manage服务帐户添加以下权限,以便Red Hat版本的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