基于容器Sidecar的方式接入(最佳实践)

如果你的服务采用容器部署的话,可以参考该文档。本文档讲解了如何通过daoshop-user-center的 kubernetes 部署 YAML 文件讲解 Sidecar 的方式接入分布式链路追踪。本文采用 DaoCloud 发布的 Sidecar 镜像包为例。

前置条件

  • 能够拉取/下载 DaoCloud 发布的链路追踪 Agent Sidecar 镜像。

步骤

拉取镜像

编排文件参考

主要利用了 Kubernetes 的 initContainer 机制,更多请参考: https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-initialization/


apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: dmp-ns1
  name: daoshop-user-center
  labels:
    app: daoshop-user-center
spec:
  selector:
    matchLabels:
      app: daoshop-user-center
  template:
    metadata:
      labels:
        app: daoshop-user-center
    spec:
      # refs: https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-initialization/
      initContainers:
        - name: dx-monitor-agent-sidecar
          image: registry.dx.io/dx-pilot/dx-monitor-agent-sidecar:2.4.0-3cdaa67
          imagePullPolicy: IfNotPresent
          command: ["cp", "-r", "/sidecar", "/target"] ➊
          volumeMounts:
            - name: sidecar
              mountPath: /target
      containers:
        - image: {{ daoshop-user-center.image }}
          name: daoshop-user-center
          resources:
            requests:
              memory: "2048Mi"
              cpu: "500m"
            limits:
              memory: "2048Mi"
              cpu: "500m"
          ports:
            - containerPort: 18081
          env:
            - name: JAVA_OPTS
              value: "-javaagent:/sidecar/sidecar/skywalking/agent/skywalking-agent.jar"          volumeMounts:
            - name: sidecar
              mountPath: /sidecar
      volumes:
        - name: sidecar  #共享agent文件夹
          emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  name: daoshop-user-center
spec:
  type: NodePort
  ports:
    - port: 18081
  selector:
    app: daoshop-user-center
  • ➊ 将带有Agent的镜像中的探针拷贝到共享目录。
  • ➋ 使用-javaagent参数指定 Skywalking 探针的路径。

注意⚠️:探针所需相关环境变量均会通过DX部署的时候传入容器。

更多环境变量

可以参考探针参数配置, DaoShop daoshop-product服务中接入的Dockerfile、DaoShop daoshop-order服务中接入的Dockerfile.

Copyright © www.daocloud.io 2019 all right reserved,powered by Gitbook修订时间: 2020-09-03 09:51:46

results matching ""

    No results matching ""