腾讯云可观测平台 安装 tencent-opentelemetry-operator

对于部署在 Kubernetes 上的应用,腾讯云可观测团队提供了 Operator 方案:tencent-opentelemetry-operator, 此方案在社区 opentelemetry-operator 基础上构建,可以实现探针自动注入,方便应用快速接入 APM。目前 tencent-opentelemetry-operator 支持的编程语言包括 Java、Python、Node.js 和 .NET。

相关产品
腾讯云可观测平台 产品页,含版本规格、价格与购买入口。

注意:说明:

注意:tencent-opentelemetry-operator 支持 Kubernetes 1.19及以上版本。

一、通过 APM 控制台一键安装(推荐)

由于配置项的填写比较复杂,推荐你使用 APM 控制台的一键安装 tencent-opentelemetry-operator 功能,以简化安装步骤。

1. 登录 应用性能监控 控制台。

2. 在左侧菜单栏中选择应用列表,单击接入应用。

3. 选择需要接入的语言,并指定 TKE 环境自动接入的上报方式。

4. 单击一键安装 Operator。

5. 在弹出对话框中,选择对应的上报地域、默认业务系统、TKE 所在地域、TKE 集群,单击安装后即可完成安装。

注意:说明:

二、通过 TKE 应用市场安装

1. 登录 容器服务 控制台。

2. 在左侧菜单栏中选择运维中心 > 应用市场,搜索 tencent-opentelemetry-operator 并单击进入。

3. 单击创建应用,选择需要安装的 TKE 集群,参考 配置项说明,填入必要参数,即可完成安装。

注意:说明:

三、通用 K8s 集群安装

tencent-opentelemetry-operator 支持通用 K8s 集群以及混合云场景。对于部署在线下 IDC 以及其他云平台的 K8s 集群,只要 K8s 的版本符合要求,并且 APM 服务端之间的网络可达,就可以通过 Operator 模式实现快速接入。

1. 安装 kubectl 和 Helm CLI,安装方式请参考 安装 kubectl 和 安装 Helm CLI。请确保使用3.6或以上版本的 Helm CLI。

2. 下载 Chart 包 和配置文件 values.yaml。你也可以使用 wget 命令下载,对应的地址如下:

·https://operator-1258344699.cos.ap-guangzhou.myqcloud.com/tencent-opentelemetry-operator-internet.tgz

·https://operator-1258344699.cos.ap-guangzhou.myqcloud.com/values.yaml

3. 参考 配置项说明,在 values.yaml 中填入必要的字段。

注意:说明:

4. 使用本地文件安装 Operator,其中 my-release 为 Chart 名,可以自定义。–values 代表 values.yaml 的文件路径。

helm install my-release /path/to/your/chart.tgz –values /path/to/your/values.yaml

注意:说明:

注意:在通用 K8s 集群安装 tencent-opentelemetry-operator 的时候,需要有公网访问权限,否则无法拉取 Operator 镜像。

四、配置项说明

tencent-opentelemetry-operator 通过 Helm 部署安装,所有的配置项都集中于 values.yaml。请注意 YAML 文件中的参数存在层级关系,请参考如下 YAML 片段:

env: TKE_CLUSTER_ID: "cls-ky8nmlra" TKE_REGION: "ap-guangzhou" ENDPOINT: "http://pl.ap-guangzhou.apm.tencentcs.com:4317" APM_TOKEN: "apmdemotoken"

五、必填字段

参数 描述
env.TKE_CLUSTER_ID TKE 集群 ID。对于非 TKE 集群,请设置为"N/A"。
env.TKE_REGION TKE 集群所在地域,例如 ap-guangzhou,详情请参考 CVM 地域和可用区 的取值。对于非 TKE 集群,请设置为"N/A"。
env.ENDPOINT APM 接入点。每个集群只能使用唯一的 APM 接入点,请从业务系统获取接入点。如果使用公网接入点,需要同时设置 env.FROM_INTERNET: "true"
env.APM_TOKEN 集群默认的 APM Token。APM token 代表了需要接入的业务系统,请从业务系统中获取 token。可以在工作负载中指定其他业务系统的 Token,以覆盖集群默认的 Token。

六、选填字段

参数 描述
env.JAVA_INSTR_VERSION Java 探针版本号,可以设置为latest(默认)或具体的版本号,非必要情况下不推荐设置此字段。
env.PYTHON_INSTR_VERSION Python 探针版本号,可以设置为latest(默认)或具体的版本号,非必要情况下不推荐设置此字段。
env.NODEJS_INSTR_VERSION Node.js 探针版本号,可以设置为latest(默认)或具体的版本号,非必要情况下不推荐设置此字段。
env.DOTNET_INSTR_VERSION .NET 探针版本号,可以设置为latest(默认)或具体的版本号,非必要情况下不推荐设置此字段。
env.INTL_SITE 在国际站需要设置为 "true"。
env.FROM_INTERNET 如果从公网接入,请设置为"true",(同时需要将 env.ENDPOINT 设置为公网接入点)。
env.ENABLE_SECURITY_CONTEXT 从 0.93.1 版本开始支持该字段。默认 "false";设置为 "true" 时启用 SecurityContext 继承。启用后,注入的 init container 将继承目标容器的 securityContext,以满足 OPA Gatekeeper 等安全策略引擎的要求。

注意:说明:

注意:如果需要指定具体的探针版本号,请前往 探针(Agent)版本信息 获取版本号。

七、接入应用

安装完 tencent-opentelemetry-operator 后,在需要接入 APM 的工作负载中添加相关 annotation,就可以实现探针自动注入,并向 APM 上报监控数据。请参考如下文档完成应用接入:

·K8s 环境自动接入 Java 应用 (推荐)

·K8s 环境自动接入 Python 应用 (推荐)

·K8s 环境自动接入 Node.js 应用 (推荐)

·K8s 环境自动接入 .NET 应用 (推荐)

八、业务系统与 K8s 集群的映射关系

在安装 Operator 的时候,必填参数 env.APM_TOKEN 需要从业务系统获取,代表该集群默认的 APM Token。因此,每个安装 Operator 的 K8s 集群,只能指定唯一的业务系统作为默认接入目标。但在实际使用过程中,部署在同一个 K8s 集群中的不同应用可能需要接入到不同的业务系统,在这种情况下就需要通过在工作负载中指定业务系统 Token,以覆盖集群级别的 env.APM_TOKEN 配置。

场景 是否支持 实现方式
1个 K8s 集群 → 1个业务系统(1:1) ✅ 支持 安装 Operator 时指定默认业务系统。
多个 K8s 集群 → 1个业务系统(N:1) ✅ 支持 每个集群各自安装 Operator,指定同一个默认业务系统。
1个 K8s 集群 → 多个业务系统(1:N) ✅ 支持 Operator 指定默认业务系统 + 工作负载中指定其他业务系统的 Token。
多个 K8s 集群 → 多个业务系统(N:N) ✅ 支持 Operator 指定默认业务系统 + 工作负载中指定其他业务系统的 Token。

九、示例

参考如下场景:

·K8s 集群部署了3个 Java 应用:service-1、service-2、service-3。

·service-1 和 service-2 需要接入业务系统 A。

·service-3 需要接入业务系统 B。

可以通过如下步骤实现:

1. 在安装 Operator 的时候,指定默认业务系统为 A,即设置 env.APM_TOKEN 为业务系统 A 的 Token。

2. 在接入 service-1 和 service-2 的时候,不需要在工作负载中配置 Token。以 service-1 为例,需要添加的 Pod Annotation 如下:

annotations: cloud.tencent.com/inject-java: "true" cloud.tencent.com/otel-service-name: service-1

3. 在接入 service-3 的时候,在工作负载中配置 Token,覆盖集群级别的配置项。需要添加的 Pod Annotation 如下:

annotations: cloud.tencent.com/inject-java: "true" cloud.tencent.com/otel-service-name: service-3 cloud.tencent.com/apm-token: "<Token>" # Token from System B

赞 (0)
上一篇 4天前
下一篇 4天前