Skip to main content

监控 Kubernetes 集群中的服务器和应用使用OneAgent默认OTEL探针版本

Last updated on

APO 分为两部分:

  • APO-server: APO 服务侧组件
  • APO-one-agent: APO 用户侧组件,用于采集Kubernetes集群或者虚机环境下被监控业务以及集群、主机信息。

本文档包含使用 Helm Chart 在 Kubernetes 上安装和运行 APO-one-agent 的说明。请确保在安装 APO-one-agent 之前,您已经安装 APO-server

注意: 不建议用本文档的安装方式将 APO-server 与 APO-one-agnet 安装在同一 Kubernetes 集群中,会产生不必要的资源浪费;如果想要将 APO-server 与 APO-one-agent 部署在同一 Kubernetes 集群中,请参考快速开始文档

APO-one-agent 内置各个编程语言的默认采集探针版本:

  1. Java agent: opentelemetry-java-instrumentation v2.8.0
  2. Python agent: opentelemetry-python 1.23.0/0.44b0
  3. NodeJs agent: opentelemetry-js v1.24.1/0.51.1
  4. Go agent: Grafana Beyla v1.8.4

注意:对于 Java 应用,APO 默认采用 Opentelemetry v2.5.0 采集链路追踪数据,如果您想兼容使用已有的 Java 探针(例如 Skywalking 或 Opentelemetry 其他版本等,请参考 监控 Kubernetes 集群的服务器和应用使用OneAgent定制探针版本 构建自定义探针镜像并配置。

准备工作

要使用 Helm 安装 APO,请确保已完成以下操作:

  • 在计算机上安装 Kubernetes 服务器。有关安装 Kubernetes 的信息,请参阅安装 Kubernetes

  • 安装 Helm 的最新稳定版本。有关安装 Helm 的信息,请参阅安装 Helm

  • 网络策略:需要 APO-one-agent 所在集群/机器能够访问 APO-server 集群的 30044、31363、30317、30319 端口。

设置 APO Helm 仓库

要设置 APO Helm 存储库,以便在计算机上下载正确的 APO Helm charts,请完成以下步骤: 使用下方命令添加 apo Helm 仓库

helm repo add apo https://apo-charts.oss-cn-hangzhou.aliyuncs.com
helm repo update apo

配置 APO-one-agent 组件

创建文件apo-one-agent-values.yaml,并根据您的需求进行定义,并在部署阶段挂载配置。

# apoServerIP 为 APO-server 所在的 ClusterIP
global:
apoServerIP: x.x.x.x # FIXME

# APO-one-agent enabled标志位,默认为 false
odigos:
instrumentor:
# targetNamespace
# name:目标命名空间
# value:
# enabled: 注入现有的所有服务,但不注入后续新增应用
# enabledFuture: 注入现在以及后续的所有服务
# disabled: 不注入指定namespace下的服务,用于在instrument-all-namespace时忽略特定的Namespace
targetNamespace:
- name: default
value: enabledFuture
- name: default2
value: enabled
- name: default3
value: disabled
# instrument-all-namespace 是否注入所有namespace
# 等价于设置所有namespace的enabledFuture
# 但如果已经设置了ns或者workload的disabled将不会注入
instrumentAllNamespace: false
# force-instrument-all-namespace 是否强制注入所有namespace
# 和instrument-all-namespace类似,所有ns设置enabledFuture
# 并忽略所有disabled设置
forceInstrumentAllNamespace: false

这里提供的为 APO 部署的基础配置,如果您要进行更多配置更改,请从 APO Helm Charts 库中下载values.yaml文件:

helm show values apo/apo-one-agent > values.yaml

部署 APO-one-agent

运行以下命令,在指定命名空间中部署 APO 。

helm install apo-one-agent apo/apo-one-agent -n apo --create-namespace \
-f apo-one-agent-values.yaml

验证

见到类似输出既代表安装成功

NAME: apo-one-agent
LAST DEPLOYED: Fri Aug 9 09:33:16 2024
NAMESPACE: apo
STATUS: deployed
REVISION: 1
NOTES:
=======================================
___ ___ ___
/\ \ /\ \ /\ \
/::\ \ /::\ \ /::\ \
/:/\:\ \ /:/\:\ \ /:/\:\ \
/::\~\:\ \ /::\~\:\ \ /:/ \:\ \
/:/\:\ \:\__\ /:/\:\ \:\__\ /:/__/ \:\__\
\/__\:\/:/ / \/__\:\/:/ / \:\ \ /:/ /
\::/ / \::/ / \:\ /:/ /
/:/ / \/__/ \:\/:/ /
/:/ / \::/ /
\/__/ \/__/
Official Website: https://apo.kindlingx.com/

输入下方命令检查pod是否启动成功

kubectl get po -n apo

# 您应该看到类似于以下内容的输出
NAME READY STATUS RESTARTS AGE
apo-odigos-instrumentor-7f96957cb6-6sq2r 1/1 Running 0 5m
apo-one-agent-vbkzl 7/7 Running 0 5m
apo-otel-collector-85bdfd5898-fgcbf 1/1 Running 0 5m
info

遇到问题:可以参考《常见问题》进一步排查,或者联系我们

卸载 APO-one-agent

helm uninstall apo-one-agent -n apo
kubectl delete ns apo

部署 APO-one-agent 社区版

默认情况下,APO 会安装企业版,相比于社区版,企业版提供更多数据分析能力,区别请查阅版本区别

通告

当前APO的企业版本功能正在免费公测中🔥!!!

如果需要也可以使用社区版本,要部署社区版本请在 Helm 仓库中搜索APPVERSONce结尾的 charts 版本号.

helm search repo apo -l

并在 Helm 安装的时候携带该版本参数

# 例如
helm install apo apo/apo -n apo --create-namespace \
--set apo-one-agent.enabled=true \
--version x.x.xxx