通用Kubernetes环境自动安装探针
借助ARMS应用监控,您可以对通用Kubernetes环境的应用进行应用拓扑、接口调用、异常事务和慢事务监控、SQL分析等监控。本文将帮助您将通用Kubernetes环境中的应用接入ARMS应用监控。
如果您使用的Kubernetes集群由容器服务ACK提供,本文不适用,ACK集群接入ARMS的操作请参见容器服务ACK环境自动安装探针。
前提条件
请确保您的Kubernetes集群的kube-apiserver组件接口版本在1.10及以上。
如果您的Kubernetes集群没有部署在阿里云,请确保集群连通公网,或者通过云企业网等方式打通阿里云VPC和集群之间的连接。
检查您的JDK版本。具体要求,请参见支持的JDK版本。
(推荐)方式一:通过ACK注册集群接入ARMS
将Kubernetes集群接入ACK One。具体操作,请参见通过控制台创建注册集群。
为注册集群安装ack-onepilot组件。具体操作,请参见将应用实时监控服务ARMS接入注册集群。
方式二:直接接入ARMS
步骤1:安装Helm3
步骤2:安装探针
ARMS应用监控目前仅支持无状态(Deployment)和有状态(StatefulSet)两种类型的应用接入,两种类型的应用接入方法相同。此处以将Kubernetes环境中的无状态(Deployment)类型的应用接入ARMS应用监控为例。
执行以下
wget
命令下载ack-onepilot安装包。wget 'https://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/ack-onepilot/ack-onepilot-3.0.16.tgz'
执行以下命令解压ack-onepilot安装包。
tar xvf ack-onepilot-3.0.16.tgz
编辑安装包下的values.yaml文件,根据实际情况修改以下参数,然后保存。
registry: registry.__ACK_REGION_ID__.aliyuncs.com/acs/ cluster_id: __ACK_CLUSTER_ID__ accessKey: __ACCESSKEY__ accessKeySecret: __ACCESSKEY_SECRET__ uid: "__ACK_UID__" region_id: __ACK_REGION_ID__
image
:ack-onepilot镜像地址。说明以上示例为VPC环境镜像地址,公网环境镜像获取地址如下:
registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/
__ACK_REGION_ID__
:阿里云地域ID,应用监控支持的地域,请参见应用监控目前支持的地域。__ACK_CLUSTER_ID__
:自定义Kubernetes集群ID,集群的唯一标识。建议格式为<uid>-<clusterid>
。__ACCESSKEY__
和__ACCESSKEY_SECRET__
:阿里云账号的AccessKey ID和AccessKey Secret。获取方法,请参见获取AccessKey。重要请确认对应的阿里云账号已包含AliyunARMSFullAccess和AliyunSTSAssumeRoleAccess权限。
__ACK_UID__
:阿里云账号(主账号)ID。将鼠标悬浮于阿里云控制台右上角的头像上可以获取。
执行以下命令安装ack-onepilot。
请在ack-onepilot安装包外执行此命令。
helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --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: armsPilotAutoEnable: "on" armsPilotCreateAppName: "<your-deployment-name>" #请将<your-deployment-name>替换为您的应用名称。 armsSecAutoEnable: "on" #如果需要接入应用安全,则需要配置此参数。
如果您需要在K8s环境中创建一个新的无状态(Deployment)应用并接入ARMS,则应用的完整YAML文件如下:
保存配置后,应用将自动重启,以上配置生效。
2~5分钟后,若您的应用出现在ARMS控制台的 页面中且有数据上报,则说明接入成功。