大使可以支持分布式跟蹤,它允許開發人員在微服務和面向服務的體系結構中可視化請求流。在本教程中,我們將配置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。