通过安装Helm的方式接入APM
如果使用通用的开源Kubernetes部署应用,可以通过安装Helm方式接入APM,即可在指标、调用链界面上查看应用情况。
前提条件
- 确保接入的节点与APM服务网络连通。可使用curl -kv命令测试目标机器与APM服务器网络是否连通。
例如,以检查华北-北京四区域,且接入方式选择“增强型探针”的连通性为例,请登录应用所部署的机器,并输入命令curl -kv 100.125.12.108:41333,其他区域地址请参考探针接入地址。
- 请确保您的Kubernetes集群版本 ≥ 1.19。
- 进程所需最大堆内存250 MB,最大CPU使用0.25 Core。
安装Helm并接入APM
- 安装Helm3。
- 执行使用脚本安装。
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
- 二进制版本安装。
- 下载版本。
- 执行如下命令,解压。
tar -zxvf helm-v3.0.0-linux-amd64.tar.gz
- 在解压目录中找到helm程序,移动到需要的目录中。
mv linux-amd64/helm /usr/local/bin/helm
- 执行使用脚本安装。
- 安装探针。 本方案支持无状态和有状态应用接入,以下步骤以无状态为例。
- 下载apm-operator安装包。
wget 'https://apm2-javaagent-cn-north-4.obs.cn-north-4.myhuaweicloud.com/apm-operator-stable.tar.gz'
- 解压apm-operator安装包。
tar -xvf apm-operator-stable.tar.gz
- 编辑安装包下的operatorK8s/apm-operator/values.yaml,根据实际情况修改参数后进行保存。
accessKeyId: "" accessKeySecret: "" masterAddress: "" swrAddress: "" agentVersion: "" operatorVersion: "" namespace: "apm-operator" targetPort: "9443" selfCheckPort: "9445"
表1 编辑安装包参数说明 参数名称
是否必填
说明
accessKeyId
是
APM的上报AK,获取请参考管理APM访问密钥。
accessKeySecret
是
APM的上报SK,获取请参考管理APM访问密钥。
masterAddress
是
探针上报地址,获取请参考探针接入地址。例如:上海一的masterAddress为https://100.125.4.27:41333。
swrAddress
是
探针镜像地址。组成方式为swr.{regionId}.myhuaweicloud.com,例如:上海一的swrAddress为swr.cn-east-3.myhuaweicloud.com。
agentVersion
是
探针版本。参考JavaAgent更新说明,比如:2.4.8-x86_64。
operatorVersion
是
apm-operator版本,非必要不修改,使用stable。
namespace
是
命名空间,默认为apm-operator,非必要不修改。
targetPort
是
目标端口,默认为9443,非必要不修改。
selfCheckPort
是
检测端口,默认为9445,非必要不修改。
- 使用脚本安装。
cd operatorK8s chmod 550 apm-operator-install.sh ./apm-operator-install.sh
- 下载apm-operator安装包。
- 修改应用YAML文件。
- 编辑应用的YAML文件。
kubectl edit deployment {Deployment名称} -o yaml - 在spec.template.metadata层级下添加以下内容。
labels: apmJavaAgentEnable: "on" apmAppName: "<appName>" apmBusiness: "<apmBusiness>" apmEnv: "<apmEnv>" apmJavaAgentVersion: "<agentVersion>"
表2 spec.template.metadata层级参数说明 参数名称
是否必填
说明
apmJavaAgentEnable
是
如果需要接入APM探针,需要配置此参数,且设置为“on”。
apmAppName
是
组件名称,请将<appName>替换为组件名称。
apmBusiness
否
所属应用名称,默认为default,请将<apmBusiness>替换为应用名称。
apmEnv
否
环境名称,用于区分所属环境,可用于搜索和配置。默认为default,请将<apmEnv>替换为环境名称。
apmJavaAgentVersion
否
默认继承values.yaml 中的 agentVersion,也可显式指定。
- 保存配置,应用将自动重启,可以查询YAML确保配置生效。
kubectl get deployment {Deployment名称} -o yaml
- 编辑应用的YAML文件。
- 通过APM管理应用。
应用启动后,等待3分钟应用数据就会呈现在APM界面。此时登录APM,您可以在APM进行应用性能优化。
常见问题
- 如果kubectl没有配置成功,helm install时会出现如下报错。
# helm install prometheus/ --generate-name WARNING: This chart is deprecated Error: Kubernetes cluster unreachable: Get "http://localhost:8080/version? timeout=32s": dial tcp [::1]:8080: connect: connection refused
解决办法:给节点配置kubeconfig,配置方法请参见使用kubectl连接集群。
- 同一个集群下需要安装不同的Agent版本,需要怎么处理?