k8s快速接入skywalking

2022-05-29 11:44:57 浏览数 (1)

本文主要适合新手运维在快速配置APM 全链路检测 ,并在k8s部署过程给出一定思路, 如果已经解决该问题 直接跳过该文章,本文编写的过程中 参考前同事(小黑龙)之前部署心得和体验。

本文主要为了如下几个部分

1、所需配置

2、搭建部署skywalking

3、k8s接入skywalking jar

4、访问测试

1

所需配置

软件

代码语言:javascript复制
java   推荐使用 1.11以上
skywalking   
elasticsearch (存储skywalking数据) 推荐使用7.0以上版本。不推荐使用mysql h2等等

系统

代码语言:javascript复制
操作系统:centos 7.8 64
CPU:2C 
内存:8G
硬盘 300G ESSD

2

部署skywalking

部署JAVA

代码语言:javascript复制
wget https:/-init.oss-cn-hangzhou.aliyuncs.com/jdk-11.0.9_linux-x64_bin.tar.gz
tar zxvf jdk-11.0.9_linux-x64_bin.tar.gz -C /usr/local/、
cat << EOF > /etc/profile
export JAVA_HOME=/usr/local/jdk-11.0.9
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
EOF
source /etc/profile
java -version

elasticsearch 厂商购买

skywalking

一、从官网下载

代码语言:javascript复制
cd /usr/local/src
wget https://www.apache.org/dyn/closer.cgi/skywalking/8.6.0/apache-skywalking-apm-es7-8.6.0.tar.gz

tar zxvf apache-skywalking-apm-es7-8.6.0.tar.gz -C /usr/local
cd /usr/local/aapache-skywalking-apm-es7-8.6.0/config

二、修改配置

cd /usr/local/apache-skywalking-apm-es7-8.6.0/config

代码语言:javascript复制
vim application.yml
####修改storage相关信息####
storage:
  selector: ${SW_STORAGE:elasticsearch7}
  elasticsearch7:
    nameSpace: ${SW_NAMESPACE:"es-cn-nif1ys33y0027zfox"}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:es-cn-nif1ys33y0027zfox.elasticsearch.aliyuncs.com:9200}
    user: ${SW_ES_USER:"elastic"}
    password: ${SW_ES_PASSWORD:"aoteman666"}

    只要修改 storage下面的配置
    selector: ${SW_STORAGE:elasticsearch7}  修改成: selector: ${SW_STORAGE:elasticsearch7}
    nameSpace: ${SW_NAMESPACE:""}           修改成: nameSpace: ${SW_NAMESPACE:"xxxxxxxx"}   
    user: ${SW_ES_USER:""}                  修改成: user: ${SW_ES_USER:"elastic"}
    password: ${SW_ES_PASSWORD:""}          修改成: password: ${SW_ES_PASSWORD:"aoteman666"}

三、启动服务

代码语言:javascript复制
 # 启动skywalking服务端
cd /usr/local/apache-skywalking-apm-es7-8.6.0/bin
./startup.sh start

# 设置开机启动
chmod a x /etc/rc.d/rc.local
vim /etc/rc.local
/usr/local/apache-skywalking-apm-es7-8.6.0/bin/startup.sh start

3

k8s接入skywalking jar

配置应用

代码语言:javascript复制
1、将sw-agent 放入git项目中
参考 xxx-app这个项目,将sw-agent下载到这项目中 xxx-app/data下面
2、docker build时将 sw-agent加入到docker镜像中
修改Dockerfile,新增:COPY sw-agent/ /var/local/sw-agent
3、修改run.sh, 启动命令中新增:-javaagent:/var/local/sw-agent/skywalking-agent.jar
以 shenlu-app为例,启动命令为:sh -c  "/var/local/jdk-11.0.9/bin/java -javaagent:/var/local/sw-agent/skywalking-agent.jar -jar ${JAVA_OPTS} /var/local/shenlu-shenlu-app.jar --spring.profiles.active=${PROFILE}"
4、修改k8s deployment的yaml文件,传入sw相关的变量
在 spec.template.spec.containers.env下面新增:

            - name: SW_AGENT_NAME
              value: xxx-app(这里需要随项目名来改动)
            - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
              valueFrom:
                configMapKeyRef:
                  key: SW_AGENT_COLLECTOR_BACKEND_SERVICES
                  name: skywalking-env(已经创建好skywaling-env这个configmap)
 
5、yaml提交到git仓库后,按正常流程部署服务,就可以正常加载skywalking agent了

4

访问测试

访问skywalking服务

本教程适合新手运维 希望对大家有所帮助!!

0 人点赞