3.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 <permitted_project_of_opentelemetry_collector_instance>1 - 1
- 不允许以
openshift-前缀开头的项目名称。
要创建带有元数据的项目,请运行以下命令:
$ oc apply -f - << EOF apiVersion: project.openshift.io/v1 kind: Project metadata: name: <permitted_project_of_opentelemetry_collector_instance>1 EOF- 1
- 不允许以
openshift-前缀开头的项目名称。
在为您创建的项目中创建一个 OpenTelemetry Collector 实例。
注意您可以在同一集群中的独立项目中创建多个 OpenTelemetry Collector 实例。
自定义
OpenTelemetryCollector自定义资源 (CR):OpenTelemetryCollectorCR 示例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]运行以下命令来应用自定义 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>