快速入门
一份关于如何使用 Tempo Operator 和 TempoStack
入门的单页总结。
要求
使用 Tempo Operator 入门的最简单方法是使用 Kubernetes kind。
部署
要在现有集群中安装 Operator,请确保已安装 cert-manager 并运行
kubectl apply -f https://github.com/grafana/tempo-operator/releases/latest/download/tempo-operator.yaml
部署完 Operator 后,您需要安装存储后端。对于本快速入门指南,我们将如下安装 MinIO
kubectl apply -f https://raw.githubusercontent.com/grafana/tempo-operator/main/minio.yaml
MinIO 部署完成后,在您使用的命名空间中为 MinIO 创建一个 Secret
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
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。
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 查看结果。