基于k8s部署带skywalking agent的微服务工程

2025-10-06 18:58:25

1、访问skywalking官网,下载所需的压缩文件。选择自己需要的文件,分为linux和windows的压缩包(注:这里只部署客户端,服务端另行查找资料)

基于k8s部署带skywalking agent的微服务工程

2、解压文件,将agent文件夹单独拷贝出来

基于k8s部署带skywalking agent的微服务工程

3、配置agent.config文件

主要配置

#用户ui显示的应用名称

agent.service_name=${SW_AGENT_NAME:myapp}

#服务器端收集器地址

collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:skywalking-skywalking-oap:11800}

基于k8s部署带skywalking agent的微服务工程

4、在与agent同级目录编写Dockerfile文件,用于打包镜像

FROM busybox:latest

# Add a volume pointing to /tmp

VOLUME /tmp

ADD /agent //agent

基于k8s部署带skywalking agent的微服务工程

基于k8s部署带skywalking agent的微服务工程

5、打包镜像

docker build -t harbor.k8s-dev.com/library/skywalking-agent:6.4.0 .

基于k8s部署带skywalking agent的微服务工程

基于k8s部署带skywalking agent的微服务工程

6、上传镜像到私有仓库

基于k8s部署带skywalking agent的微服务工程

7、项目里的Dockerfile如下

这一行是集成skywalking的关键

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-javaagent:/tmp/agent/skywalking-agent.jar","-jar","app.jar"]

基于k8s部署带skywalking agent的微服务工程

8、部署至k8s的yml文件(注:内容只做参考,请勿直接复制使用)

apiVersion: apps/v1

 

kind: Deployment

 

metadata:

 

 name: myapp

labels:

 

   app: myapp

spec:

 

 replicas: 1

 

 selector:

 

   matchLabels:

 

     app: myapp

 template:

 

   metadata:

 

     labels:

 

       app: myapp

 spec:

 

     initContainers:

 

     - name: skagent

 

       image: harbor.k8s-dev.com/library/skywalking-agent:6.4.0

 

       command: ['cp','-rf','/agent','tmp']

 

       volumeMounts:

 

       - mountPath: /tmp

 

         name: sky-agent-volume

 

     containers:

 

     - name: myapp

 

       env:

 

       - name: APOLLO_META

 

         value: http://172.18.3.129:8080

 

       - name: APP_ID

 

         value: myapp

 

       - name: ENV

 

         value: dev

 

       - name: server_port

 

         value: "80"

 

       image: {appImage}

 

       imagePullPolicy: Always

 

       ports:

 

       - containerPort: 80

 

       volumeMounts:

 

       - mountPath: /tmp

 

         name: sky-agent-volume

 

     imagePullSecrets:

 

       - name: jenkins-harbor-registry

 

     volumes:

 

     - name: sky-agent-volume

 

       emptyDir: {}

基于k8s部署带skywalking agent的微服务工程

9、在k8s中部署应用

kubectl create -f deployment.yml

部署之后使用下面命令查看pod状态

kubectl -n infra describe po myapp-bddddfd5c-lrf9v

10、部署成功,访问skywalking的ui界面,如下图

基于k8s部署带skywalking agent的微服务工程

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢