1. 背景介绍
需求: 针对多种协议SDK
构造探针,测试公司接入机服务状况(每一个探针应对单一接入机,接入机数量可能会动态变化).
难点: 大多数协议SDK
均不支持多实例运行,且部分SDK
通过生成文件保存内部状态;各协议SDK
处于迭代状态,不能对其进行魔改.
分析:
(1) 基于以上原因,无法选择多线程或者多进程,在单一物理机或容器内完成探针相应功能;
(2) 尝试通过Kubernetes
部署探针容器,通过容器完成不同协议SDK
的进程隔离乃至文件隔离
;
(3) 通过Deployment
设置容器环境参数
的方式,给不同容器设置对应的启动参数;
(4) Kubernetes
控制程序通过Apollo
动态获取配置,更新相应协议的Deployment
,从而更新相关容器镜像.
2. 依赖设置
pom
文件中添加kubernetes
以及apollo
依赖:
<dependency>
<groupId>io.kubernetes</groupId>
<artifactId>client-java</artifactId>
<version>4.0.0</version>
<scope>compile&l