背景
在标准部署场景中,ack-onepilot 组件会通过注入 JAVA_TOOL_OPTIONS
环境变量指定 Java 探针(Agent)的挂载路径。但在某些场景下,用户可能需要自定义探针挂载路径以满足特定需求:
统一配置管理
需通过 Kubernetes ConfigMap 集中管理探针路径,实现多环境配置一致性。
持久化存储需求
企业安全规范或运维要求将探针文件存储在自定义持久化卷(PVC)中。
版本依赖
自定义Java探针挂载路径对 ack-onepilot 与 Java 探针版本要求如下:
ack-onepilot 版本不低于 4.1.0。
ARMS Java 探针版本不低于4.2.2,您也可以根据需求自主控制Java探针版本。
解决方案
ack-onepilot组件由 MSE 和 ARMS 共用,因此自定义 Java 探针挂载路径对于 MSE 服务治理应用同样生效。
为需要自定义挂载Java探针的Kubernetes工作负载(如Kubernetes Deployment)添加
disableJavaToolOptionsInjection
注解。添加该注解后ack-onepilot组件将不会通过JAVA_TOOL_OPTIONS环境变量自动指定Java探针的挂载路径及其他JVM参数。
执行以下命令查看目标无状态(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>替换为您的应用名称。 disableJavaToolOptionsInjection: "true" # 如需自定义Java探针挂载路径,请将此开关设为true。
在您的应用启动脚本或Java启动命令中自行添加ARMS Java探针的挂载路径。
其中,
/home/admin/.opt/AliyunJavaAgent/aliyun-java-agent.jar
为探针默认挂载路径,请将该路径替换为需要自定义挂载的路径。java -javaagent:/home/admin/.opt/AliyunJavaAgent/aliyun-java-agent.jar ... ... -jar xxx.jar
其余的重要信息,如上报Region、上报License Key等信息将由ack-onepilot通过环境变量的方式注入。
- 本页导读 (1)
- 背景
- 版本依赖
- 解决方案