功能概述
Spring Cloud Tencent 的 Java Agent 支持针对容器部署的应用以及虚拟机部署的应用进行注入。对于 Spring Cloud 应用(原生 Spring Cloud 应用或者其他 Spring Cloud 扩展的应用),可以不用对应用代码及依赖进行任何变更的情况下,即可使用 Spring Cloud Tencent 的功能。下文将分别对容器场景和虚机场景的使用方法进行说明。
前提条件
已 创建 TSE 北极星引擎。
登录 TSE 控制台。
在服务治理中心下的实例列表页面,单击目标引擎的 ID,进入基本信息页面。
使用步骤
步骤1:安装 polaris-controller
1. 在目标引擎基本信息页顶部页签单击 K8s 集群,单击关联集群。
2. 根据自身业务需求选择目标关联的 K8s 集群,支持 TKE (容器集群) / EKS (弹性容器集群)。即在目标集群中完成 polaris-controller 的安装。
3. 根据业务的特点选择服务的同步方式,支持全量同步(同步 k8s 集群中所定义的全部服务)/按需同步(只同步打了 polarismesh.cn/sync 标签的命名空间或服务)。
![](https://qcloudimg.tencent-cloud.cn/image/document/439bc6ac64809ad26f230be44b4eba21.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/439bc6ac64809ad26f230be44b4eba21.png)
步骤2:在命名空间开启自动注入功能
在目标应用所在的 K8s 命名空间,通过以下命令开启自动注入:
kubectl label namespace <命名空间名> polaris-injection=enabled
通过以下命令查询命名空间是否开启了自动注入:
kubectl get namespace -L polaris-injection输出结果:NAME STATUS AGE POLARIS-INJECTIONdefault Active 3d2h enabled
步骤3:SpringCloud 应用 yaml 文件中声明 Java Agent 标签
找到需要注入 javaagent 的应用(一般是 deployment 或者 statefulset),编辑 yaml 并增加以下标签:
apiVersion: apps/v1kind: Deployment......spec:......template:metadata:annotations:# 声明需要往这个POD中注入javaagentpolarismesh.cn/javaagent: "true"# 声明应用的框架类型,对于SpringCloud应用则填写spring-cloudpolarismesh.cn/javaagentFrameworkName: spring-cloud# 声明应用的框架版本,当前支持hoxton, 2021, 2020polarismesh.cn/javaagentFrameworkVersion: hoxtonpolarismesh.cn/javaagentVersion: 1.7.0-RC3# 用户自定义的JavaAgent配置,不填写的配置则使用默认配置,格式为JSON。具体配置查看:https://github.com/polarismesh/polaris-controller/blob/main/deploy/kubernetes_v1.22/kubernetes/javaagent-configmap.yaml# 如配置无损上线:# polarismesh.cn/javaagentConfig: "{\\"spring.cloud.polaris.lossless.enabled\\": \\"true\\", \\"spring.cloud.polaris.lossless.delay-register-interval\\": \\"30000\\"}"......
修改 yaml 后,需要重新部署应用。重新部署后,会自动完成 java-agent 的注入,可以观察应用日志,如果启动的时候出现以下关键字,则证明 java-agent 注入成功。
......2024-02-01 21:19:16 [INFO ](PolarisAgentBootStrap) [Bootstrap] start bootStrapStarter:default......2024-02-01 21:19:16 [INFO ](PluginCreator) [BootStrap] plugin spring-cloud-hoxton-plugin has been loading
步骤1:下载 javaagent
步骤2:修改配置文件
1. 解压下载后到的 zip 包,进入 polaris-java-agent 的目录,并修改 conf/polaris-agent.conf 文件,填写需要使用的插件名称(需要按照应用的 spring-cloud 版本进行填写),内容示例如下:
plugins.enable=spring-cloud-2020-plugin
2. 进入 conf/plugin/spring-cloud-2020(不同插件有不同目录,需要按照上一步填写的插件来选择目录)目录中,修改 application.properties 文件:
2.1 填写正确的应用名(spring.application.name)。
2.2 填写您购买的北极星服务端的地址信息。服务端地址查看详细参见:引擎管理 > 客户端访问地址。
# 应用名称(必填)spring.application.name=testSvcName# 配置北极星服务端地址spring.cloud.polaris.address=grpc\\://9.134.5.52\\:8091
步骤3:添加应用的启动参数
在应用的启动参数中,添加
-javaagent:<java-agent安装目录>/polaris-agent-core-bootstrap.jar
,然后重启应用,即可完成 java-agent 的注入。说明:
如果使用 IDEA 进行本地调试,则需要在 VM Option 下添加
-javaagent
的参数。