K8S 搭建 Pinpoint (七、构建测试镜像,进行测试 )
构建测试镜像
# 下载 agent
mkdir -p /data/demo
cd /data/demo
wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.1.0/pinpoint-agent-2.1.0.tar.gz
tar zxvf pinpoint-agent-2.1.0.tar.gz
cd /data/demo/pinpoint-agent/profiles/release
cp pinpoint.config pinpoint.config.ori
vi pinpoint.config
# 把 profiler.transport.grpc.collector.ip 的值指向 pinpoint colector 地址
profiler.transport.grpc.collector.ip=pinpoint-collector.pinpoint
cd /data/demo
# 把 demo-0.0.1-SNAPSHOT.jar 放到这里,这个jar包的功能会起一个服务,访问 /hello 接口会返回 hello spring
cat Dockerfile
FROM openjdk:8u302-slim
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ADD demo-0.0.1-SNAPSHOT.jar demo.jar
ADD pinpoint-agent-2.1.0 /pinpoint-agent/
COPY docker-entrypoint.sh /
CMD [ "/bin/bash", "/docker-entrypoint.sh" ]
# agentId 最大支持24个字母,必须不同,若是 K8S 多个副本,applicationName 必须一样
# agentId 如果自动取最后的值,可以写成 ${HOSTNAME##*-}; ${appName} 是通过 deployment.yml 中 env 获取 metadata.labels['app'] 中的,值,这里 app 要注意,也可能写成了其他名字
cat docker-entrypoint.sh
#!/bin/bash
java -javaagent:/pinpoint-agent/pinpoint-bootstrap-2.1.0.jar -Dpinpoint.agentId=${HOSTNAME} -Dpinpoint.applicationName=${appName} ${JVM:-Xmx512m -Xms512m} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/ -Djava.security.egd=file:/dev/./urandom -Duser.timezone=GMT+08 -jar /${appName}.jar
docker build -t harbor.junengcloud.com/tmp/pinpoint-demo:0.0.11 .
docker push harbor.junengcloud.com/tmp/pinpoint-demo:0.0.11
测试,在master中创建
mkdir -p /data/yaml/default/pinpoint-demo
cd /data/yaml/default/pinpoint-demo
cat deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo
spec:
replicas: 2
selector:
matchLabels:
app: demo
template:
metadata:
labels:
app: demo
spec:
containers:
- name: demo
image: harbor.junengcloud.com/tmp/pinpoint-demo:0.0.11
imagePullPolicy: IfNotPresent
env:
- name: JVM
value: "-Xms1024m -Xmx1024m"
- name: appName
valueFrom:
fieldRef:
fieldPath: metadata.labels['app']
kubectl apply -f deployment.yml
vi svc.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: pinpoint-demo
name: pinpoint-demo
spec:
ports:
- name: http
port: 8080
targetPort: 8080
nodePort: 30079
selector:
app: pinpoint-demo
type: NodePort
kubectl apply -f svc.yaml
在 pinpoint web 界面查看



浙公网安备 33010602011771号