升级 Alauda Build of OpenTelemetry v2
从 v2.0(Operator 0.147.0、Collector 0.147.0)升级到 v2.1(Operator 0.157.0、Collector 0.158.0)需要执行以下步骤:
- 升级 Alauda Build of OpenTelemetry v2 Operator
- 更新 OpenTelemetry Collector 配置
上游在此版本中重命名了大多数组件类型,但旧名称仍作为已弃用的别名提供。因此,升级 Operator 后,现有配置仍可继续运行,Collector 只会针对每个受影响的组件记录一条弃用警告。更新配置是第二步,并非第一步的前提条件。
前提条件
- 已按照安装 Alauda Build of OpenTelemetry v2 中的说明安装 Alauda Build of OpenTelemetry v2.0 部署。
- Alauda Container Platform Application Observability(之前称为 Alauda Build of OpenTelemetry v2)Operator 0.157.0 已发布到平台。
- 集群管理员已启动 ACP CLI (
kubectl) 会话,并具有cluster-admin角色。 - 查看升级说明,了解此版本引入的行为变更。
设置环境变量
升级 Operator
Operator 使用 Manual 审批策略订阅,因此必须明确批准升级。有关 Operator 升级的一般背景信息,请参阅Operator。
通过 Web 控制台升级
选择以下任一方法:
- 批量升级:前往平台管理 > 集群管理 > 集群 > 集群 > 功能组件,然后升级 Alauda Container Platform Application Observability(对于重命名前发布的软件包,显示为 Alauda Build of OpenTelemetry v2)。
- 单独升级:前往管理员 > Marketplace > OperatorHub,打开 Alauda Container Platform Application Observability(对于重命名前发布的软件包,显示为 Alauda Build of OpenTelemetry v2),并批准待处理的升级请求。
通过 CLI 升级
-
确认目标版本在已订阅的频道中可用:
-
批准待处理的
InstallPlan: -
等待新的
ClusterServiceVersion进入Succeeded阶段:输出示例
验证
升级 Operator 会重启其管理的所有 Collector。未固定 spec.image 的 Collector 会在 Operator 升级后立即使用 Collector 0.158.0:
输出示例
VERSION 报告管理该实例的 Operator 版本,IMAGE 报告该实例当前运行的 Collector 镜像。
更新 OpenTelemetry Collector 配置
仅使用类型名称未更改的组件的 Collector(例如通过安装操作步骤创建的配置)无需更改配置。
Operator 会在升级期间重新签发其 admission webhook 证书。在此期间应用的补丁会被 failed calling webhook "mopentelemetrycollectorbeta.kb.io": ... x509: certificate signed by unknown authority 拒绝。请等待几秒后再次应用。
操作步骤
以下命令和补丁基于某个特定的 Collector 配置,仅作为示例。请对照你自己的 OpenTelemetryCollector 资源逐项检查并在应用前进行调整:直接复制补丁可能会删除管道仍在使用的组件,或在不包含原有设置的情况下重新创建组件。
-
列出弃用警告,以找出配置中受影响的组件:
输出示例
完整日志行还会列出受影响的组件实例,例如
"otelcol.component.id": "otlp/traces"。 -
创建名为
otel-upgrade-patch.yaml的文件。以下示例迁移使用resourcedetectionprocessor、spanmetricsconnector、名为otlp/traces的otlpexporter 以及prometheusexporter 的 Collector。只保留与你自己的配置匹配的条目:- 重命名的组件需要将旧键设置为
null,并在新名称下重新创建。请原样复制现有设置:合并补丁不会自动传递这些设置,也不会隐式删除旧键;同时保留两个键会启动同一组件的两个实例。有关重命名组件的完整列表,请参阅组件类型名称现已使用 snake_case。 add_metric_suffixes已弃用。prometheusexporter 会完全忽略它,因此现在应使用translation_strategy: UnderscoreEscapingWithoutSuffixes,以使导出的指标名称不带 Prometheus 风格的后缀(例如_total)。prometheus_remote_writeexporter 仍支持add_metric_suffixes,但会记录弃用警告。- 引用重命名组件的每个管道也必须更新,否则 Collector 会因
references exporter "otlp/traces" which is not configured启动失败。由于管道成员是列表,因此每个列表都会被整体替换。
- 重命名的组件需要将旧键设置为
-
使用
envsubst渲染补丁并应用:
验证
等待 Collector 重启,并确认其启动时没有弃用警告:
输出示例
不受别名覆盖的更改
以下更改不会报告弃用警告,因为受影响的配置要么仍能以不同的行为启动,要么会直接启动失败。请对照你自己的配置进行检查:
完整列表请参阅升级说明。
后续步骤
Operator 不会升级注入到应用 Pod 中的自动插桩代理。要升级这些代理,请按照升级自动插桩代理中的说明操作。