升级 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 Build of OpenTelemetry v2 Operator 0.157.0 已发布到平台。
- 集群管理员使用
cluster-admin角色拥有一个有效的 ACP CLI(kubectl)会话。 - 查看 升级说明,了解此版本引入的行为变更。
设置环境变量
升级 Operator
该 Operator 使用 Manual 审批策略订阅,因此必须显式批准升级。有关 Operator 升级的一般背景,请参见 Operator。
通过 Web 控制台升级
请选择以下方法之一:
- 批量升级:导航到 Platform Management > Cluster Management > Clusters > cluster > Functional Components,然后升级 Alauda Build of OpenTelemetry v2。
- 单独升级:导航到 Administrator > Marketplace > OperatorHub,打开 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 证书。在该时间窗口内应用的 patch 会被拒绝,并返回 failed calling webhook "mopentelemetrycollectorbeta.kb.io": ... x509: certificate signed by unknown authority。请等待几秒后再重新应用。
操作步骤
下面的命令和 patch 只是示例,基于某一种 Collector 配置构建而成。请结合你自己的 OpenTelemetryCollector 资源逐项检查并在应用前进行调整:直接照搬的 patch 可能会删除你的 pipelines 仍在使用的组件,或者在未保留原有设置的情况下重新创建某个组件。
-
列出弃用警告,以找出配置中受影响的组件:
示例输出
完整日志行还会给出受影响的组件实例名称,例如
"otelcol.component.id": "otlp/traces"。 -
创建一个名为
otel-upgrade-patch.yaml的文件。以下示例迁移了一个使用resourcedetectionprocessor、spanmetricsconnector、名为otlp/traces的otlpexporter,以及prometheusexporter 的 Collector。请只保留与你自己的配置匹配的条目:- 对于已重命名的组件,需要将旧键设置为
null,并使用新名称重新创建。请保持现有设置不变地复制过去:merge patch 不会继承这些设置,也不会隐式删除旧键,同时保留两个键会启动同一组件的两个实例。有关已重命名组件的完整列表,请参见 组件类型名称现在使用 snake_case。 add_metric_suffixes已弃用。prometheusexporter 完全忽略该项,因此现在通过translation_strategy: UnderscoreEscapingWithoutSuffixes来确保导出的 metric 名称不包含诸如_total之类的 Prometheus 风格后缀。prometheus_remote_writeexporter 仍然支持add_metric_suffixes,但会记录弃用警告。- 任何引用了已重命名组件的 pipeline 也必须一并更新,否则 Collector 将无法启动,并报错
references exporter "otlp/traces" which is not configured。由于 pipeline 成员是列表,因此每个列表都必须整体替换。
- 对于已重命名的组件,需要将旧键设置为
-
使用
envsubst渲染 patch 并应用它:
验证
等待 Collector 重启,并确认它启动时不再出现弃用警告:
示例输出
不受别名覆盖的变更
以下变更不会以弃用警告的形式报告,因为受影响的配置要么仍可启动但行为不同,要么会直接无法启动。请结合你自己的配置进行检查:
完整列表请参见 升级说明。
下一步
Operator 不会升级注入到应用 pod 中的自动埋点 agent。要升级它们,请按照 升级自动埋点 agent 中的说明操作。