暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

k8s快速接入skywalking

运维入门时间 2021-08-19
3151

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


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

1、所需配置

2、搭建部署skywalking

3、k8s接入skywalking  jar

4、访问测试


 1 

所需配置

软件

    java   推荐使用 1.11以上
    skywalking  
    elasticsearch (存储skywalking数据) 推荐使用7.0以上版本。不推荐使用mysql h2等等

    系统


      操作系统:centos 7.8 64
      CPU:2C 
      内存:8G
      硬盘 300G ESSD




       2 

      部署skywalking


      部署JAVA


        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

        一、从官网下载

          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

            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"}



            三、启动服务


               # 启动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


              配置应用


                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服务



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


                文章转载自运维入门时间,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论