• Русский
  • Alauda Build of Kiali

    Содержание

    Использование Alauda Build of Kiali

    Alauda Build of Kiali предоставляет возможности наблюдаемости и визуализации для приложений, развернутых внутри сервисной сетки. После добавления приложения в mesh, Alauda Build of Kiali можно использовать для анализа потоков трафика и мониторинга поведения mesh.

    О Kiali

    Alauda Build of Kiali основан на открытом проекте Kiali project и служит консолью управления для Alauda Service Mesh.

    Он предоставляет:

    • Визуализацию топологии mesh и потоков трафика в реальном времени
    • Информацию о состоянии здоровья приложений и метриках производительности
    • Централизованный доступ к инструментам конфигурации и валидации
    • Интеграцию с Grafana для дашбордов метрик
    • Поддержку распределённого трассирования через Jaeger или OpenTelemetry

    Эти возможности позволяют пользователям диагностировать поведение сервисов, выявлять потенциальные проблемы и оптимизировать конфигурацию mesh из единого интерфейса.

    Установка Alauda Build of Kiali

    Ниже приведены шаги по установке Alauda Build of Kiali.

    Требования

    • Вы вошли в веб-консоль Alauda Container Platform под пользователем с ролью cluster-admin.

    Процедура

    1. В веб-консоли Alauda Container Platform перейдите в раздел Administrator.
    2. Выберите Marketplace > OperatorHub.
    3. Найдите Alauda Build of Kiali.
    4. Найдите Alauda Build of Kiali и кликните для выбора.
    5. Нажмите Install.
    6. Подтвердите установку, нажав Install и Confirm.

    Проверка

    Убедитесь, что статус установки оператора отображается как Succeeded в разделе Installation Info.

    Настройка мониторинга с Kiali

    Ниже описано, как интегрировать Alauda Build of Kiali с мониторингом пользовательских нагрузок.

    Требования

    Процедура

    Получите CA-сертификат для Alauda Container Platform в кластере Global:

    NOTE

    Выполните следующую команду в кластере Global

    # CA certificate for ACP - base64-encoded
    kubectl -ncpaas-system get secret dex.tls -o jsonpath='{.data.ca\.crt}'

    Вывод — это сертификат в base64-кодировке. Сохраните это значение для дальнейших шагов.

    Примечание: Если команда возвращает пустой вывод, обратитесь к администратору для получения CA-сертификата ACP.

    Получите конфигурацию платформы из бизнес-кластера:

    export PLATFORM_URL=$(kubectl -nkube-public get configmap global-info -o jsonpath='{.data.platformURL}')
    export CLUSTER_NAME=$(kubectl -nkube-public get configmap global-info -o jsonpath='{.data.clusterName}')
    export ALB_CLASS_NAME=$(kubectl -nkube-public get configmap global-info -o jsonpath='{.data.systemAlbIngressClassName}')
    
    export OIDC_ISSUER=$(kubectl -nkube-public get configmap global-info -o jsonpath='{.data.oidcIssuer}')
    export OIDC_CLIENT_ID=$(kubectl -nkube-public get configmap global-info -o jsonpath='{.data.oidcClientID}')
    export OIDC_CLIENT_SECRET=$(kubectl -nkube-public get configmap global-info -o jsonpath='{.data.oidcClientSecret}')
    
    export MONITORING_URL=$(kubectl get feature monitoring -o jsonpath='{.spec.accessInfo.database.address}')

    Создайте Secret с именем kiali в пространстве имён istio-system для аутентификации OpenID:

    kubectl create secret generic kiali --from-literal="oidc-secret=$OIDC_CLIENT_SECRET" -nistio-system

    Пример вывода:

    secret/kiali created

    Создайте Secret для учётных данных базы данных мониторинга:

    SECRET_NAME=$(kubectl get feature monitoring -o jsonpath='{.spec.accessInfo.database.basicAuth.secretName}')
    
    AUTH_USERNAME=$(kubectl -ncpaas-system get secret "$SECRET_NAME" -o jsonpath="{.data.username}" | base64 -d)
    AUTH_PASSWORD=$(kubectl -ncpaas-system get secret "$SECRET_NAME" -o jsonpath="{.data.password}" | base64 -d)
    
    kubectl create secret generic "kiali-monitoring-basic-auth" \
      --from-literal="username=$AUTH_USERNAME" \
      --from-literal="password=$AUTH_PASSWORD" \
      -n istio-system

    Пример вывода:

    secret/kiali-monitoring-basic-auth created

    Создайте файл с именем kiali.yaml со следующим содержимым. При необходимости замените значения-заполнители:

    kiali.yaml
    apiVersion: kiali.io/v1alpha1
    kind: Kiali
    metadata:
      name: kiali
      namespace: istio-system
    spec:
      server:
        web_port: "443"
        web_root: /clusters/${CLUSTER_NAME}/kiali
      auth:
        openid:
          api_proxy: ${PLATFORM_URL}/kubernetes/${CLUSTER_NAME}
          api_proxy_ca_data: ${PLATFORM_CA}
          insecure_skip_verify_tls: true
          issuer_uri: ${OIDC_ISSUER}
          client_id: ${OIDC_CLIENT_ID}
          username_claim: email
        strategy: openid
      deployment:
        view_only_mode: false
        replicas: 1
        resources:
          requests:
            cpu: "100m"
            memory: "64Mi"
          limits:
            memory: "1Gi"
        ingress:
          enabled: true
          class_name: ${ALB_CLASS_NAME}
      external_services:
        grafana:
          enabled: false  # Since Grafana is not bundled in ACP anymore, it is disabled by default
        prometheus:
          # query_scope only required in multi cluster
          query_scope:
            mesh_id: <mesh_id>
          auth:
            type: basic
            username: secret:kiali-monitoring-basic-auth:username
            password: secret:kiali-monitoring-basic-auth:password
            insecure_skip_verify: true
          # Define thanos_proxy if Prometheus is to be queried through a Thanos proxy (it is required when using VictoriaMetrics)
          thanos_proxy:
            enabled: true
            retention_period: 7d
            scrape_interval: 60s
          url: ${MONITORING_URL}
      kiali_feature_flags:
        ui_defaults:
          i18n:
            language: en
            show_selector: true
    1. web_port (строка) — порт для доступа к панели Kiali.
    2. web_root — путь под URL платформы для доступа к панели Kiali.
    3. api_proxy указывает на erebus для сопоставления токенов пользователей ACP с токенами Kubernetes.
    4. api_proxy_ca_data — base64-кодированный CA-сертификат, используемый erebus.
    5. issuer_uri — URL издателя OIDC для dex.
    6. client_id — ID клиента OIDC для dex.
    7. replicas задаёт количество реплик для развертывания Kiali, в продуктивных средах должно быть не менее 2.
    8. class_name — имя класса ingress для ingress Kiali.
    9. Требуется в мультикластерной mesh. <mesh_id> должен совпадать с .spec.values.global.meshId в ресурсе Istio.
    10. username ссылается на имя пользователя basic-auth мониторинга, хранящееся в секрете kiali-monitoring-basic-auth.
    11. password ссылается на пароль basic-auth мониторинга, хранящийся в секрете kiali-monitoring-basic-auth.
    12. Определите thanos_proxy, если Prometheus должен опрашиваться через прокси Thanos (требуется при использовании VictoriaMetrics).
    13. url — конечная точка мониторинга для Prometheus или VictoriaMetrics.
    14. i18n задаёт язык по умолчанию и отображение селектора языка.

    Примените конфигурацию, сгенерировав манифест с помощью envsubst:

    # Замените <platform-ca> на реальный base64-кодированный CA-сертификат, сохранённый ранее.
    export PLATFORM_CA=<platform-ca>
    
    envsubst < kiali.yaml | kubectl apply -f -
    1. Замените <platform-ca> на реальный base64-кодированный CA-сертификат, сохранённый ранее.

    Доступ к консоли Kiali:

    Когда ресурс Kiali будет готов, откройте панель Kiali по адресу <platform-url>/clusters/<cluster>/kiali.

    Интеграция платформы распределённого трассирования с Alauda Build of Kiali

    После интеграции с платформой распределённого трассирования Alauda Build of Kiali позволяет визуализировать трассы запросов непосредственно в консоли Kiali. Эти трассы дают представление о межсервисных взаимодействиях внутри сервисной сетки и помогают выявлять задержки, сбои или узкие места в путях запросов.

    Эта возможность поддерживает анализ поведения потоков запросов, способствуя выявлению корневых причин и оптимизации производительности сервисов в mesh.

    Требования

    • Установлен Alauda Service Mesh.
    • Установлена и успешно настроена платформа распределённого трассирования, например Alauda Build of Jaeger.

    Процедура

    1. Обновите конфигурацию spec ресурса Kiali для трассирования:

      Пример конфигурации spec ресурса Kiali для трассирования

      spec:
        external_services:
          tracing:
            # query_scope only required in multi cluster
            query_scope:
              istio.mesh_id: <mesh_id>
            enabled: true
            provider: jaeger
            use_grpc: true
            internal_url: "http://jaeger-prod-query.istio-system:16685/jaeger"
            # (Optional) Public facing URL of Jaeger
            # external_url: "<platform-url>/clusters/<cluster>/istio/jaeger"
            # When external_url is not defined, disable_version_check should be set to true
            disable_version_check: true
      1. Требуется в мультикластерной mesh. <mesh_id> должен совпадать с .spec.values.global.meshId в ресурсе Istio.
      2. Указывает, включено ли трассирование.
      3. Указывает провайдера трассирования (jaeger или tempo).
      4. Указывает внутренний URL API Jaeger или Tempo.
    2. Сохраните обновлённый spec в файле kiali_cr.yaml.

    3. Выполните команду для применения конфигурации:

      kubectl -nistio-system patch kiali kiali --type merge -p "$(cat kiali_cr.yaml)"

      Пример вывода:

      kiali.kiali.io/kiali patched

    Проверка

    1. Перейдите в UI Kiali.
    2. Откройте вкладку Workload Traces, чтобы увидеть трассы в UI Kiali.