探索可观察性特性

本文将指导您如何使用 Istio 将 Sidecar 注入到 Bookinfo 应用程序中,并探索可观察性特性。

在开始之前,请确保:

步骤1:管理命名空间

前往 平台管理,导航到 服务网格 > 服务网格,点击服务网格名称以进入详情页面。在 命名空间 部分,点击 管理命名空间。选择 demo-dev 并点击 确认

步骤2:注入 Sidecar

  1. 使用 kubectl 部署
    打开容器平台或平台管理页面,点击右下角的 kubectl 工具。

  2. 应用 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
    
  3. 确认成功注入
    导航到 服务网格,在 服务 中,您应该看到这四个 Bookinfo 服务的 Sidecar 注入状态为 已启用

步骤3:探索可观察性特性

  1. 生成流量
    为了探索可观察性特性,Bookinfo 应用程序需要流量,以便 Istio 能够从服务中收集指标和追踪信息。使用以下脚本生成流量。
    注意:GATEWAY_IP_PORT 替换为您的入口网关的实际 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 中探索可观察性特性。

  2. 服务拓扑

    • 在运行流量生成脚本 1–5 分钟后,导航到 服务网格 > 拓扑。在这里,您可以看到展示入口网关与四个 Bookinfo 服务之间依赖关系的拓扑。您还可以在拓扑图上查看与流量和错误率相关的指标。

    • 点击拓扑中 public-ingressgwproductpage 节点之间的链接。流量信息 将出现在拓扑右侧。

  3. 追踪详情

    • 流量信息 页面,点击 查看追踪 以打开追踪详情页面。查询时间和参数将自动填充。左侧的 Span 列表将显示与查询条件匹配的 Span 数据。

    • 点击任意 Span 以查看右侧的完整追踪数据。

    • 在追踪数据中点击 查看日志 以检查参与追踪的 Pods 的持久日志数据。