使用Kuboard管理工具k8s容器化部署skywalking实现链路追踪监控
因为需要使用Nacos作为注册中心,Mysql来存储。需要对skywalking-oap进行自定义。一、自定义镜像注意:因为skywalking-oap中没有Mysql驱动包,所以需要下载。下载mysql驱动Jar包,我使用的是8.0.15版本,下载地址:https://cdn.mysql.com//archives/mysql-connector-java-8.0/mysql-connector
因为需要使用Nacos作为注册中心,Mysql来存储。需要对skywalking-oap进行自定义。
一、自定义镜像
注意:因为skywalking-oap中没有Mysql驱动包,所以需要下载。
- 下载mysql驱动Jar包,我使用的是8.0.15版本,下载地址:
https://cdn.mysql.com//archives/mysql-connector-java-8.0/mysql-connector-java-8.0.15.zip - 新建dockerfile文件,一定要将mysql驱动包放在和dockerfile文件相同文件夹下。否则,dockerfile文件build是copy不成功。
- 自定义skywalking-oap的dockerfile文件:
FROM apache/skywalking-oap-server
# 自定义参数
ENV SW_CLUSTER nacos
ENV SW_SERVICE_NAME SkyWalking_OAP_Cluster
ENV SW_CLUSTER_NACOS_HOST_PORT http://xxx.xxx.x.xxx:8848/
ENV SW_CLUSTER_NACOS_NAMESPACE public
ENV SW_CLUSTER_NACOS_USERNAME nacos
ENV SW_CLUSTER_NACOS_PASSWORD nacos
ENV SW_STORAGE mysql
ENV SW_JDBC_URL jdbc:mysql://xxx.xxx.x.xxx:3306/XX?useSSL=false&serverTimezone=Asia/Shanghai
ENV SW_DATA_SOURCE_USER root
ENV SW_DATA_SOURCE_PASSWORD 123456
# 设置时区
ENV Timezone=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$Timezone /etc/localtime && echo '$Timezone' > /etc/timezone
# copy数据库驱动包到lib文件夹下
COPY ./mysql-connector-java-8.0.15.jar /skywalking/oap-libs
# 暴露端口
EXPOSE 12800 11800 1234
ENTRYPOINT ["bash", "docker-entrypoint.sh"]
- 自定义skywalking-ui的dockerfile文件:
FROM apache/skywalking-ui
# 设置客户端时区
ENV Timezone=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$Timezone /etc/localtime && echo '$Timezone' > /etc/timezone
# 暴露8080端口
EXPOSE 8080
ENTRYPOINT ["bash", "docker-entrypoint.sh"]
到此为止,自定义skywalking-oap和skywalking-ui就已经完成。
二、k8s部署
使用k8s控制台进行操作
-
将build好的镜像,推送到远程仓库
-
在k8s控制台分别创建skywalking-oap和skywalking-ui的deployment
-
skywalking-oap和ui添加访问方式
skywalking-oap添加访问方式:
保存后可以看到12800的访问地址,这个地址下面会用到:
skywalking-ui:
添加环境变量:
SW_OAP_ADDRESS=sky-walking-oap-mysql-server:12800
开放端口:
这样就可以通过任意节点IP:30828来访问ui了。
三、agent接入 -
将官网下载的agent上传到服务器到服务器的文件夹下,下载地址:http://skywalking.apache.org/downloads/
-
在你自己的服务创建数据卷,path指定skywalking-agent.jar所在路径
-
创建挂载点,挂载点指定刚刚创建的数据卷,这样容器服务就可以访问skywalking-agent.jar
-
springboot项目的dockerfile文件中ENTRYPOINT内容修改
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENTRYPOINT ["java","-javaagent:/var/tmp/skywalking-agent.jar","-Dskywalking.agent.service_name=XXX", "-Dskywalking.collector.backend_service=xx.xxx.xxx.xxx:11800","-jar","/app.jar"]
注意:
-javaagent:这里要指定挂载点的路径;
-Dskywalking.agent.service_name=你自己的服务名
-Dskywalking.collector.backend_service=skywalking-oap对外暴露的地址
到这里,所有的工作都已经做完,等服务启动,就可以注册进skywalking。完成效果:
当看到启动的服务名,说明接入成功。
更多推荐
所有评论(0)