多语言展示
当前在线:238今日阅读:84今日分享:32

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

基于k8s部署带skywalking agent的微服务工程。只部署客户端,服务端请查阅其他资料。每天写一篇经验挺累的,回享收入几分钱到一毛钱,许多次都想要放弃。
工具/原料

k8s

方法/步骤
1

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

2

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

3

配置agent.config文件主要配置#用户ui显示的应用名称agent.service_name=${SW_AGENT_NAME:myapp}#服务器端收集器地址collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:skywalking-skywalking-oap:11800}

4

在与agent同级目录编写Dockerfile文件,用于打包镜像FROM busybox:latest# Add a volume pointing to /tmpVOLUME /tmpADD /agent //agent

5

打包镜像docker build -t harbor.k8s-dev.com/library/skywalking-agent:6.4.0 .

6

上传镜像到私有仓库

7

项目里的Dockerfile如下这一行是集成skywalking的关键ENTRYPOINT ['java','-Djava.security.egd=file:/dev/./urandom','-javaagent:/tmp/agent/skywalking-agent.jar','-jar','app.jar']

8

部署至k8s的yml文件(注:内容只做参考,请勿直接复制使用)apiVersion: apps/v1 kind: Deployment metadata:   name: myapplabels:     app: myappspec:   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: {}

9

在k8s中部署应用kubectl create -f deployment.yml部署之后使用下面命令查看pod状态kubectl -n infra describe po myapp-bddddfd5c-lrf9v

注意事项

本文只介绍部署客户端,服务端另行查找资料

推荐信息