通过安装Helm方式接入APM
如果使用通用的开源Kubernetes部署应用,可以通过安装Helm方式接入APM,即可在指标、调用链界面上查看应用情况。
前提条件
- 确保接入的节点与APM服务网络连通。可使用Telnet命令测试目标机器与APM服务器网络是否连通。
例如,以检查华北-北京四区域,且代码源选择“增强型探针”的连通性为例,请登录应用所部署的机器,并输入命令telnet 100.125.12.108:41333,其他区域地址请参考表1。
表1 增强型探针接入地址 区域
接入地址
华北-北京四
https://100.125.12.108:41333
华北-北京一
https://100.125.57.101:41333
华东-上海一
https://100.125.4.27:41333
华东-上海二
https://100.125.140.105:41333
华南-广州
https://100.125.143.102:41333
亚太-新加坡
https://100.125.4.25:41333
华南-广州-友好用户环境
https://100.125.4.30:41333
华北-乌兰察布一
https://100.125.4.30:41333
华北-乌兰察布二零一
https://100.79.6.100:41333
华北-乌兰察布二零二
https://100.79.6.100:41333
华北-乌兰察布汽车一
https://100.125.254.17:41333
西南-贵阳一
https://100.125.0.90:41333
中国-香港
https://100.125.6.106:41333
- 请确保您的Kubernetes集群版本为1.19及以上。
- 进程所需最大堆内存250 MB,最大CPU使用0.25 Core。
操作步骤
- 安装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-1.0.0.tar.gz'
- 解压apm-operator安装包。
tar xvf apm-operator-1.0.0.tar.gz
- 编辑安装包下的operatorK8s/apm-operator/values.yaml,根据实际情况修改参数后进行保存。
accessKeyId: "" accessKeySecret: "" masterAddress: "" swrAddress: "" agentVersion: "" namespace: "apm-operator" targetPort: "9443" selfCheckPort: "9445" operatorVersion: "stable"
表2 编辑安装包参数说明 参数名称
是否必填
说明
accessKeyId
是
APM的上报AK,从APM控制台->系统管理->访问密钥获取。
accessKeySecret
是
APM的上报SK,从APM控制台->系统管理->访问密钥获取。
masterAddress
是
探针上报地址,参考表1。例如:上海一的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。
namespace
是
命名空间,默认为apm-operator,非必要不修改。
targetPort
是
目标端口,默认为9443,非必要不修改。
selfCheckPort
是
检测端口,默认为9445,非必要不修改。
operatorVersion
是
apm-operator版本,非必要不修改,使用stable。
- 执行命令安装apm-operator。
helm upgrade --install apm-operator apm-operator --namespace apm-operator --create-namespace
- 下载apm-operator安装包。
- 修改应用YAML文件。
- 编辑应用的YAML文件。
kubectl edit deployment {Deployment名称} -o yaml
- 在spec.template.metadata层级下添加以下内容。
labels: apmJavaAgentEnable: "on" apmAppName: "<appName>" apmBusiness: "<apmBusiness>" apmEnv: "<apmEnv>"
表3 spec.template.metadata层级参数说明 参数名称
是否必填
说明
apmJavaAgentEnable
是
如果需要接入APM探针,需要配置此参数,且设置为“on”。
apmAppName
是
组件名称,请将<appName>替换为组件名称。
apmBusiness
否
所属应用名称,默认为default,请将<apmBusiness>替换为应用名称。
apmEnv
否
环境名称,用于区分所属环境,可用于搜索和配置。默认为default,请将<apmEnv>替换为环境名称。
- 保存配置,应用将自动重启,可以查询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连接集群。