• Русский
  • Изучение возможностей наблюдаемости

    В этой статье описывается, как использовать Istio для внедрения Sidecar в приложение Bookinfo и изучения возможностей наблюдаемости.

    Перед началом убедитесь, что:

    Содержание

    Шаг 1: Управление пространством имён

    Перейдите в Platform Management, затем в Service Mesh > Service Meshes и кликните по названию сервисной сетки, чтобы открыть страницу с деталями. В разделе Namespaces нажмите Managed Namespace. Выберите demo-dev и нажмите Confirm.

    Шаг 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. Подтверждение успешного внедрения
      Перейдите в Service Mesh, в разделе Services убедитесь, что внедрение Sidecar для всех четырёх сервисов Bookinfo отображается как Enabled.

    Шаг 3: Изучение возможностей наблюдаемости

    1. Генерация трафика
      Для изучения возможностей наблюдаемости приложению Bookinfo необходим трафик, чтобы Istio мог собирать метрики и трассировки с сервисов. Используйте следующий скрипт для генерации трафика.
      **Примечание: ** Замените GATEWAY_IP_PORT на фактический IP вашего ingress gateway. Мы ранее получили GATEWAY_IP_PORT в разделе [Accessing Bookinfo].

      Сохраните следующий скрипт как 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 каждую секунду. Через некоторое время вы сможете изучить возможности наблюдаемости в пользовательском интерфейсе.

    2. Топология сервисов

      • После запуска скрипта генерации трафика в течение 1–5 минут перейдите в Service Mesh > Topologies. Здесь вы увидите топологию, показывающую зависимости между ingress gateway и четырьмя сервисами Bookinfo. Также на графе топологии можно просмотреть метрики, связанные с трафиком и уровнем ошибок.

      • Кликните по связи между узлами public-ingressgw и productpage в топологии. Справа от топологии появится Информация о трафике между ними.

    3. Детали трассировки

      • На странице Traffic Info нажмите View Tracing, чтобы открыть страницу с деталями трассировки. Время запроса и параметры будут заполнены автоматически. Список Span слева покажет данные Span, соответствующие условиям запроса.

      • Кликните на любой Span, чтобы просмотреть полные данные Trace справа.

      • Нажмите View Log в данных Trace, чтобы проверить постоянные логи Pod, участвующих в трассировке.