美文网首页docker. k8s
基于k8s部署带skywalking agent的微服务工程

基于k8s部署带skywalking agent的微服务工程

作者: do_young | 来源:发表于2019-05-21 16:55 被阅读0次

    背景

    在应用程序中添加 SkyWalking Agent,就可以将接口、服务、数据库、MQ等进行追踪,将追踪结果通过 HTTP 或 gRPC 发送到 OAPServer,经过分析和聚合,将结果存储到 Elasticsearch 或 H2,SkyWalking 同时提供了一个 SkyWalking UI 的可视化界面,UI 以 GraphQL + HTTP 方式获取存储数据进行展示。


    image.png

    要想为微服务添加SkyWalking Agent需要引入SkyWalking 组件中 agent目录,并修改启动配置。

    实现思路

    如果为每一个微服务生成镜像的时候都将SkyWalking 组件中 agent目录打入镜像中,镜像文件将明显增大。
    所以通过以下方式来实现:

    • 单独为SkyWalking agent目录制作一个镜像
    • 修改k8s的deployment配置文件,在微服务容器初始时启动SkyWalking Agent镜像,将gent目录复制到微服务容器中到启动微服务容器。(initContainers)

    实现步骤

    生成SkyWalking agent镜像

    image.png
    • 通过官网下载组件包。
    • 解压组件包,复制组件包下的agent目录
    • 编写Dockerfile文件
    FROM busybox:latest
    ADD /agent //agent
    
    • 执行Dockerfile,生成镜像
    docker build -t skywalking-agent:6.0.0 .
    

    修改微服务的deployment配置文件

    apiVersion: extensions/v1beta1
    kind: Deployment
    ... ...
        spec:
          initContainers:
          - name: skywalking-agent-gateway
            image: skywalking-agent:6.0.0 
            command: ["cp", "-rf", "/agent", "/tmp"]
            volumeMounts:
            - mountPath: /tmp
              name: sky-agent-volume    
          containers:
          - name: user-center-containers
            image: user-center:latest
            imagePullPolicy: IfNotPresent
            ports:
              - containerPort: 7000
            env: 
            - name: SW_AGENT_NAMESPACE
              value: #namespace name
            - name: SW_AGENT_NAME
              value: #app name
            - name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
              value: #skywalking aop server
            volumeMounts:
            - mountPath: /tmp
              name: tmp
            - mountPath: /skywalking
              name: sky-agent-volume              
          volumes:
          - name: tmp
            hostPath:
              path: /home/k8s/containers/tmp/user-center          
          - name: sky-agent-volume
            emptyDir: {}          
    

    相关文章

      网友评论

        本文标题:基于k8s部署带skywalking agent的微服务工程

        本文链接:https://www.haomeiwen.com/subject/rlbjzqtx.html