2.2. 使用 CLI 安装红帽构建的 OpenTelemetry
您可以从命令行安装红帽构建的 OpenTelemetry。
先决条件
集群管理员具有
cluster-admin
角色的活跃 OpenShift CLI (oc
) 会话。提示-
确保您的 OpenShift CLI (
oc
) 版本为最新版本,并与您的 OpenShift Container Platform 版本匹配。 运行
oc login
:$ oc login --username=<your_username>
-
确保您的 OpenShift CLI (
流程
安装红帽构建的 OpenTelemetry Operator:
运行以下命令,为红帽构建的 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
运行以下命令来创建 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
运行以下命令来创建订阅:
$ 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
运行以下命令检查 Operator 状态:
$ oc get csv -n openshift-opentelemetry-operator
为您要在后续步骤中创建的 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
在为您创建的项目中创建一个 OpenTelemetry Collector 实例。
注意您可以在同一集群中的独立项目中创建多个 OpenTelemetry Collector 实例。
使用 OTLP、Jaeger 和 Zipkin receivers 和 debug exporter 自定义
OpenTelemetry Collector
自定义资源 (CR):apiVersion: opentelemetry.io/v1alpha1 kind: OpenTelemetryCollector metadata: name: otel namespace: <project_of_opentelemetry_collector_instance> spec: mode: deployment config: | receivers: otlp: protocols: grpc: http: jaeger: protocols: grpc: {} thrift_binary: {} thrift_compact: {} thrift_http: {} zipkin: processors: batch: {} memory_limiter: check_interval: 1s limit_percentage: 50 spike_limit_percentage: 30 exporters: debug: {} service: pipelines: traces: receivers: [otlp,jaeger,zipkin] processors: [memory_limiter,batch] exporters: [debug]
运行以下命令来应用自定义 CR:
$ oc apply -f - << EOF <OpenTelemetryCollector_custom_resource> EOF
验证
运行以下命令,验证 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
运行以下命令来获取 OpenTelemetry Collector 服务:
$ oc get service -l app.kubernetes.io/managed-by=opentelemetry-operator,app.kubernetes.io/instance=<namespace>.<instance_name>