借助ARMS应用监控 eBPF 版,您可以对通用Kubernetes环境的应用实现无侵入的监控,提供如应用拓扑、接口调用、应用概览和告警等监控。本文介绍如何将通用Kubernetes环境中的应用接入ARMS应用监控 eBPF 版。
如果您使用的Kubernetes集群由容器服务ACK提供,本文不适用,ACK集群接入ARMS的操作请参见手动接入应用至应用监控 eBPF 版。
前提条件
请确保您的Kubernetes集群版本在1.20及以上版本。
如果您的Kubernetes集群没有部署在阿里云,请确保集群连通公网,或者通过云企业网等方式打通阿里云VPC和集群之间的连接。
目前只支持x86架构,且机器内核版本需为4.19或以上版本,同时。更多环境要求,请参见应用监控 eBPF 版运行环境要求和限制。
步骤1:安装Helm3
安装Helm3的操作,请参见Helm官方文档。
步骤2:安装应用监控 eBPF 版组件
ARMS应用监控 eBPF 版目前仅支持无状态(Deployment)和有状态(StatefulSet)两种类型的应用接入,两种类型的应用接入方法相同。此处以将Kubernetes环境中的无状态(Deployment)类型的应用接入ARMS应用监控 eBPF 版为例。
执行以下
wget
命令下载ack-arms-cmonitor安装包。wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-arms-cmonitor-4.1.2.tgz'
执行以下命令解压ack-arms-cmonitor安装包。
tar xvf ack-arms-cmonitor-4.1.2.tgz
将otel-collector-deployment.yaml中的环境变量IS_PUBLIC修改为
public
。编辑安装包下的values.yaml文件,根据实际情况修改以下参数,然后保存。
registry: registry-__ACK_REGION_ID__-vpc.ack.aliyuncs.com cluster_id: __ACK_CLUSTER_ID__ accessKey: __ACCESSKEY__ accessKeySecret: __ACCESSKEY_SECRET__ uid: "__ACK_UID__" region_id: __ACK_REGION_ID__
registry
:镜像地址,修改__ACK_REGION_ID__
为对应的RegionID。说明以上示例为VPC环境镜像地址,公网环境镜像地址为:
registry-__ACK_REGION_ID__.ack.aliyuncs.com
__ACK_REGION_ID__
:阿里云地域ID,应用监控 eBPF 版支持的地域,请参见开服地域。__ACK_CLUSTER_ID__
:自定义Kubernetes集群ID,集群的唯一标识。建议格式为<uid>-<clusterid>
。__ACCESSKEY__
和__ACCESSKEY_SECRET__
:阿里云账号的AccessKey ID和AccessKey Secret。获取方法,请参见获取AccessKey。重要请确认对应的阿里云账号已包含AliyunARMSFullAccess和AliyunSTSAssumeRoleAccess权限。
__ACK_UID__
:阿里云账号(主账号)ID。将鼠标悬浮于阿里云控制台右上角的头像上可以获取。
执行以下命令安装ack-arms-cmonitor。
请在ack-arms-cmonitor安装包外执行此命令。
helm3 upgrade --install ack-arms-cmonitor ack-arms-cmonitor --namespace arms-prom --create-namespace
步骤3:修改应用的YAML文件
执行以下命令查看目标无状态(Deployment)应用的YAML文件。
kubectl get deployment {deployment名称} -o yaml
说明若您不清楚
{deployment名称}
,请先执行以下命令查看所有无状态(Deployment)应用,在执行结果中找到目标无状态(Deployment)应用,再查看目标无状态(Deployment)应用的YAML文件。kubectl get deployments --all-namespace
启动编辑目标无状态(Deployment)应用的YAML文件。
kubectl edit deployment {Deployment名称} -o yaml
在YAML文件中的spec.template.metadata层级下添加以下内容。
labels: armseBPFAutoEnable: "on" armseBPFCreateAppName: "<your-deployment-name>" #请将<your-deployment-name>替换为您的应用名称。
如果您需要在K8s环境中创建一个新的无状态(Deployment)应用并接入ARMS,则应用的完整YAML文件如下:
保存配置后,应用将自动重启,以上配置生效。
2~5分钟后,若您的应用出现在ARMS控制台的 页面中且有数据上报,则说明接入成功。
相关文档
接入应用监控 eBPF 版后,即可查看K8s集群应用的关键指标、上下游依赖组件、拓扑图等,更多信息,请参见应用详情。