基于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。
猜你喜欢