菜单
开源

快速入门

一份关于如何使用 Tempo Operator 和 TempoStack 入门的单页总结。

要求

使用 Tempo Operator 入门的最简单方法是使用 Kubernetes kind

部署

要在现有集群中安装 Operator,请确保已安装 cert-manager 并运行

shell
kubectl apply -f https://github.com/grafana/tempo-operator/releases/latest/download/tempo-operator.yaml

部署完 Operator 后,您需要安装存储后端。对于本快速入门指南,我们将如下安装 MinIO

shell
kubectl apply -f https://raw.githubusercontent.com/grafana/tempo-operator/main/minio.yaml

MinIO 部署完成后,在您使用的命名空间中为 MinIO 创建一个 Secret

yaml
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
  name: minio-test
stringData:
  endpoint: http://minio.minio.svc:9000
  bucket: tempo
  access_key_id: tempo
  access_key_secret: supersecret
type: Opaque
EOF

然后创建 Tempo CR

yaml
kubectl apply -f - <<EOF
apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
metadata:
  name: simplest
spec:
  storage:
    secret:
      name: minio-test
      type: s3
  storageSize: 1Gi
  resources:
    total:
      limits:
        memory: 2Gi
        cpu: 2000m
  template:
    queryFrontend:
      jaegerQuery:
        enabled: true
EOF

创建 TempoStack CR 后,您应该会在该命名空间中看到一些 Pod。等待技术栈稳定。

上面部署的技术栈配置为接收 Jaeger、Zipkin 和 OpenTelemetry (OTLP) 协议。由于启用了 Jaeger Query,您还可以使用 Jaeger UI 检查数据。

为了快速测试,部署一个生成一些跟踪的 Job。

yaml
kubectl apply -f - <<EOF
apiVersion: batch/v1
kind: Job
metadata:
  name: tracegen
spec:
  template:
    spec:
      containers:
        - name: tracegen
          image: ghcr.io/open-telemetry/opentelemetry-collector-contrib/tracegen:latest
          command:
            - "./tracegen"
          args:
            - -otlp-endpoint=tempo-simplest-distributor:4317
            - -otlp-insecure
            - -duration=30s
            - -workers=1
      restartPolicy: Never
  backoffLimit: 4
EOF

转发 Jaeger Query 端口以查看跟踪

kubectl port-forward svc/tempo-simplest-query-frontend 16686:16686

访问 https://:16686 查看结果。