Kubernetes 部署 SkyWalking

Kubernetes 集群服务接入 SkyWalking 满足链路追踪。

Java Agent

首先进入 SkyWalking 的 Docker Hub 页面,根据文档可知,Agent 引入可以通过两种方式达成:

  1. 使用 SkyWalking 给出的镜像作为基础镜像
  2. 使用 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

官网下载地址

Agent 快速下载地址

# 使用 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