探索可观测性功能
本文将指导您如何使用 Istio 向 Bookinfo 应用注入 Sidecar,并探索可观测性功能。
开始之前,请确保:
目录
第 1 步:管理命名空间
进入 平台管理,导航至 Service Mesh > Service Meshes,点击服务网格名称进入详情页。在 Namespaces 区域,点击 Managed Namespace。选择 demo-dev
并点击 确认。
第 2 步:注入 Sidecar
-
使用 kubectl 部署
打开容器平台或平台管理页面,点击右下角的 kubectl
工具。
-
应用 YAML 文件
将以下脚本粘贴到终端并执行:
#!/bin/bash
apiVersion: asm.alauda.io/v1beta3
kind: MicroService
metadata:
labels:
app.cpaas.io/microservice-type: service-mesh
asm.cpaas.io/isolatepod: enabled
name: details
spec:
deployments:
- name: details-v1
services:
- name: details
sidecar:
enabled: true
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
---
apiVersion: asm.alauda.io/v1beta3
kind: MicroService
metadata:
labels:
app.cpaas.io/microservice-type: service-mesh
asm.cpaas.io/isolatepod: enabled
name: ratings
spec:
deployments:
- name: ratings-v1
services:
- name: ratings
sidecar:
enabled: true
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
---
apiVersion: asm.alauda.io/v1beta3
kind: MicroService
metadata:
labels:
app.cpaas.io/microservice-type: service-mesh
asm.cpaas.io/isolatepod: enabled
name: reviews
spec:
deployments:
- name: reviews-v1
services:
- name: reviews
sidecar:
enabled: true
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
---
apiVersion: asm.alauda.io/v1beta3
kind: MicroService
metadata:
labels:
app.cpaas.io/microservice-type: service-mesh
asm.cpaas.io/isolatepod: enabled
name: productpage
spec:
deployments:
- name: productpage-v1
services:
- name: productpage
sidecar:
enabled: true
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
EOF
kubectl apply -f sidecar.yaml -n demo-dev
rm sidecar.yaml
-
确认注入成功
进入 Service Mesh,在 Services 中,您应看到所有四个 Bookinfo 服务的 Sidecar 注入状态均为 Enabled
。
第 3 步:探索可观测性功能
-
生成流量
为了探索可观测性功能,Bookinfo 应用需要流量,以便 Istio 收集服务的指标和追踪数据。使用以下脚本生成流量。
**注意:** 将 GATEWAY_IP_PORT
替换为您的 ingress gateway 的实际 IP。我们之前在[访问 Bookinfo]章节中已获取 GATEWAY_IP_PORT
。
将以下脚本保存为 send-requests.sh
#!/bin/sh
export GATEWAY_IP_PORT=192.168.130.0:30665
while true; do
result=$(curl -m 5 -s -o /dev/null -I -w "%{http_code}" "http://$GATEWAY_IP_PORT/productpage")
echo date: $(date), status code: "$result"
sleep 1
done
赋予脚本执行权限并运行:
chmod +x send-requests.sh
./send-requests.sh
该脚本将每秒向 Bookinfo 产品页面发送一次请求。运行一段时间后,您即可在 UI 中探索可观测性功能。
-
服务拓扑
-
追踪详情
-
在流量信息页面,点击 View Tracing 打开追踪详情页。查询时间和参数将自动填充。左侧的 Span 列表会显示符合查询条件的 Span 数据。
-
点击任意 Span,可在右侧查看完整的 Trace 数据。
-
在 Trace 数据中点击 View Log,可查看参与该追踪的 Pod 的持久化日志数据。