Kubernetes 集群服务接入 SkyWalking 满足链路追踪。
Java Agent
首先进入 SkyWalking 的 Docker Hub 页面,根据文档可知,Agent 引入可以通过两种方式达成:
- 使用 SkyWalking 给出的镜像作为基础镜像
- 使用 SideCar
我们这里使用第二种,也就是 SideCar,即在同一个 Pod 下挂在第二个 Container,通过共享卷完成 Agent 的引入。
我们在 Rancher 中操作一下:
首先在 Deployment 的 Pod 中增加挂载卷:

创建新的容器,如下图的 agent-container,选择初始化容器,配置官方提供的镜像和命令:

注意在 agent-container 的存储中要增加挂载:

同样的,进入应用容器的存储部分,添加挂载:

不要忘记增加应用容器启动时的环境参数:

注意还需要在启动命令中增加参数:
- -Dskywalking.agent.service_name=[name]
- -Dskywalking.collector.backend_service=[ip]:[port]
此时 Agent 部分处理完成。
apache/skywalking-java-agent:8.15.0-java8
/bin/sh -c 'cp -R /skywalking/agent /agent/'
-Dskywalking.agent.service_name=project -Dskywalking.collector.backend_service=10.111.206.197:11800
JAVA_TOOL_OPTIONS -javaagent:/skywalking/agent/skywalking-agent.jar
ElasticSearch
同样的,ElasticSearch 也可以使用 Rancher 配置,这里是测试环境所以使用最简单的单节点模式。


部署完毕之后进入容器,通过 curl 命令查看是否成功启动:

SkyWalking OAP & UI
创建 OAP 服务:


创建 UI 服务:


此时部署完毕,可以通过 NodePort 映射出的端口访问 SkyWalking:

Docker 快速部署 SkyWalking
# 使用 wget 直接下载
wget https://dlcdn.apache.org/skywalking/java-agent/8.15.0/apache-skywalking-java-agent-8.15.0.tgz
# docker 部署 SkyWalking
docker pull elasticsearch:7.17.9
docker run -d --name elasticsearch --restart always -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" elasticsearch:7.17.9
---
docker pull apache/skywalking-oap-server:8.7.0-es7
docker run -d --name skywalking-oap --restart always --link elasticsearch:elasticsearch -p 1234:1234 -p 12800:12800 -p 11800:11800 -e TZ=Asia/Shanghai -e SW_STORAGE=elasticsearch7 -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 apache/skywalking-oap-server:8.7.0-es7
---
docker pull apache/skywalking-ui:8.7.0
docker run -d --name skywalking-ui --restart always --link skywalking-oap:skywalking-oap -p 8088:8080 -e TZ=Asia/Shanghai -e SW_OAP_ADDRESS=http://skywalking-oap:12800 apache/skywalking-ui:8.7.0
java -javaagent:[path]/skywalking-agent.jar -Dskywalking.agent.service_name=[service_name] -Dskywalking.collector.backend_service=[ip]:11800 -jar [name].jar