1. 目的
javaagent作为java的字节码增强技术,广泛应用于监控,热加载等工程场景。在普通虚机场景中,javaagent的安装只需要登录相应的服务器,修改启动脚本,加入 -javaagent:xxx.jar即可。
如果要在K8S进行javaagent的注入,显而易见需要修改docker image。显然,在K8S大规模集群中修改docker image是非常不合理的。本文将通过K8S的原生资源,尽可能的避免修改docker镜像,来完成K8S中探针的注入,同时适用于大规模集群。
2.节点和工具demo准备
资源 | 说明 |
---|---|
10.1.11.238(服务器) | K8S的master节点 |
10.1.11.188(服务器) | nfs存储节点 |
apm-all-2.9.2-dev.jar | javaagent |
这里准备了一套K8S集群,其他salve工作节点不在这里列出,同时准备一套分布式存储服务(nfs)。
3. 如何优雅的打探针?
- 打探针围绕2个中心进行:放置jar包和修改启动参数
- 如何优化的将这两步操作在K8S中完成?方式有很多:比如存储 、 commond 、 挂载启动脚本 、 修改环境变量(tomcat) 、修改镜像(迫不得已采用