大使可以支持分布式跟踪,它允许开发人员在微服务和面向服务的体系结构中可视化请求流。在本教程中,我们将配置Ambassador来启动对某些示例请求的跟踪,并使用外部跟踪服务来可视化它们。
## 1.部署Zipkin
在本教程中,您将使用开源Zipkin分布式跟踪系统的简单部署来存储和可视化Ambassador生成的跟踪。跟踪数据将存储在Zipkin容器中的内存中,您将能够通过Zipkin Web UI浏览跟踪。
```
---
apiVersion: v1
kind: Service
metadata:
name: zipkin
annotations:
getambassador.io/config: |
---
apiVersion: ambassador/v0
kind: TracingService
name: tracing
service: zipkin:9411
driver: zipkin
spec:
selector:
app: zipkin
ports:
- port: 9411
name: http
targetPort: http
type: NodePort
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: zipkin
spec:
replicas: 1
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: zipkin
spec:
containers:
- name: zipkin
image: openzipkin/zipkin
imagePullPolicy: Always
ports:
- name: http
containerPort: 9411
```
您可以将此配置部署到Kubernetes集群中,如下所示:
```
$ kubectl apply -f zipkin.yaml
```
Ambassador 将检测注释并在几秒钟内重新配置。
## 2.生成一些请求
用于curl为现有的ambassador映射生成一些请求。您可能需要执行许多请求,因为只有一部分随机请求被采样并使用跟踪进行检测。
```
$ curl $AMBASSADOR_IP/httpbin/ip
```
## 3.测试痕迹
为了测试,我们需要访问Zipkin UI。如果您使用的是Kubernetes
```
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
zipkin NodePort 10.233.50.237 <none> 9411:32258/TCP 3m
```
打开Web浏览器以`http://k8s-proxy-ip:32258`获取Zipkin UI。