• Русский
  • Установка Alauda Build of OpenTelemetry v2

    Установка Alauda Build of OpenTelemetry v2 состоит из следующих шагов:

    • Установка оператора Alauda Build of OpenTelemetry v2
    • Создание пространства имён для OpenTelemetry Collector
    • Развертывание экземпляра OpenTelemetry Collector
    WARNING
    • Не устанавливайте Alauda Build of OpenTelemetry и Alauda Build of OpenTelemetry v2 в одном и том же кластере Kubernetes, так как это приведет к функциональным конфликтам.
    • Не устанавливайте Alauda Service Mesh и Alauda Build of OpenTelemetry v2 в одном и том же кластере Kubernetes, так как это приведет к функциональным конфликтам (Alauda Service Mesh v2 поддерживает интеграцию с Alauda Build of OpenTelemetry v2).
    • Не развертывайте OpenTelemetry Collector в том же пространстве имён, что и Operator. Создайте отдельное пространство имён для экземпляра Collector.

    Установка оператора Alauda Build of OpenTelemetry v2

    Установка через веб-консоль

    Предварительные требования

    • Alauda Build of OpenTelemetry v2 должен быть загружен.
    • Вы вошли в веб-консоль Alauda Container Platform как cluster-admin.

    Процедура

    1. В веб-консоли Alauda Container Platform перейдите в раздел Administrator.
    2. Выберите Marketplace > OperatorHub.
    3. Найдите Alauda Build of OpenTelemetry v2.
    4. Найдите Alauda Build of OpenTelemetry v2 и щелкните, чтобы выбрать его.
    5. Щелкните Install.
    6. В диалоговом окне Install Alauda Build of OpenTelemetry v2 выполните следующие действия:
      1. Выберите канал stable, чтобы установить последнюю стабильную версию оператора Alauda Build of OpenTelemetry v2.
    7. Щелкните Install и Confirm, чтобы установить Operator.

    Проверка

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

    Установка через CLI

    Предварительные требования

    • Alauda Build of OpenTelemetry v2 должен быть загружен.
    • Активный сеанс ACP CLI (kubectl) от администратора кластера с ролью cluster-admin.

    Процедура

    1. Проверьте доступные версии

      (
        echo -e "CHANNEL\tNAME\tVERSION"
        kubectl get packagemanifest opentelemetry-operator2 -o json | jq -r '
          .status.channels[] |
          .name as $channel |
          .entries[] |
          [$channel, .name, .version] | @tsv
        '
      ) | column -t -s $'\t'

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

      CHANNEL  NAME                                    VERSION
      stable   opentelemetry-operator2.v0.147.0-r0     0.147.0-r0

      Поля:

      • CHANNEL: имя канала Operator
      • NAME: имя ресурса CSV
      • VERSION: версия Operator
    2. Подтвердите catalogSource

      kubectl get packagemanifests opentelemetry-operator2 -ojsonpath='{.status.catalogSource}'

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

      platform

      Это означает, что opentelemetry-operator2 поступает из catalogSource platform.

    3. Создайте namespace

      kubectl get namespace opentelemetry-operator2 || kubectl create namespace opentelemetry-operator2
    4. Создайте Subscription

      kubectl apply -f - <<EOF
      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        annotations:
          cpaas.io/target-namespaces: ""
        labels:
          catalog: platform
        name: opentelemetry-operator2
        namespace: opentelemetry-operator2
      spec:
        channel: stable
        installPlanApproval: Manual
        name: opentelemetry-operator2
        source: platform
        sourceNamespace: cpaas-system
        startingCSV: opentelemetry-operator2.v0.147.0-r0
      EOF

      Пояснения к полям

      • annotation cpaas.io/target-namespaces: рекомендуется оставить пустым; пустое значение означает установку на уровне всего кластера.
      • .metadata.name: имя Subscription (должно соответствовать DNS, максимум 253 символа).
      • .metadata.namespace: namespace, в котором будет установлен Operator.
      • .spec.channel: канал Operator, на который выполняется подписка.
      • .spec.installPlanApproval: стратегия одобрения (Manual или Automatic). Здесь Manual требует ручного одобрения установки/обновления.
      • .spec.source: catalogSource Operator.
      • .spec.sourceNamespace: должно быть установлено в cpaas-system, поскольку все catalogSources, предоставляемые платформой, находятся в этом namespace.
      • .spec.startingCSV: задает версию для установки при одобрении Manual; если поле пустое, по умолчанию используется последняя версия в канале. Для Automatic не требуется.
    5. Проверьте статус Subscription

      kubectl -n opentelemetry-operator2 get subscriptions opentelemetry-operator2 -o yaml

      Ключевые данные вывода

      • .status.state: UpgradePending означает, что Operator ожидает установки или обновления.
      • Condition InstallPlanPending = True: ожидание ручного одобрения.
      • .status.currentCSV: последняя подписанная CSV.
      • .status.installPlanRef: связанный InstallPlan; его необходимо одобрить, прежде чем продолжится установка.

      Дождитесь, пока состояние InstallPlanPending станет True:

      kubectl -n opentelemetry-operator2 wait --for=condition=InstallPlanPending subscription opentelemetry-operator2 --timeout=2m
    6. Одобрите InstallPlan

      kubectl -n opentelemetry-operator2 get installplan \
        "$(kubectl -n opentelemetry-operator2 get subscriptions opentelemetry-operator2 -o jsonpath='{.status.installPlanRef.name}')"

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

      NAME            CSV                                     APPROVAL   APPROVED
      install-abc12   opentelemetry-operator2.v0.147.0-r0     Manual     false

      Одобрить вручную

      PLAN="$(kubectl -n opentelemetry-operator2 get subscription opentelemetry-operator2 -o jsonpath='{.status.installPlanRef.name}')"
      kubectl -n opentelemetry-operator2 patch installplan "$PLAN" --type=json -p='[{"op": "replace", "path": "/spec/approved", "value": true}]'

    Проверка

    Дождитесь создания CSV; Phase изменится на Succeeded:

    kubectl wait --for=jsonpath='{.status.phase}'=Succeeded csv --all -n opentelemetry-operator2 --timeout=3m

    Проверьте статус CSV:

    kubectl -n opentelemetry-operator2 get csv

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

    NAME                                    DISPLAY                                  VERSION      REPLACES   PHASE
    opentelemetry-operator2.v0.147.0-r0     Alauda Build of OpenTelemetry v2         0.147.0-r0              Succeeded

    Поля

    • NAME: имя установленной CSV
    • DISPLAY: отображаемое имя Operator
    • VERSION: версия Operator
    • REPLACES: CSV, заменяемая при обновлении
    • PHASE: статус установки (Succeeded означает успешное завершение)

    Развертывание OpenTelemetry Collector

    После успешной установки оператора Alauda Build of OpenTelemetry v2 разверните OpenTelemetry Collector, создав пользовательский ресурс OpenTelemetryCollector.

    NOTE

    Несколько экземпляров OpenTelemetry Collector могут сосуществовать в отдельных пространствах имён. Каждый экземпляр независим и управляется Operator.

    Создание пространства имён для Collector

    Перед развертыванием OpenTelemetry Collector создайте отдельное пространство имён для экземпляра Collector. Collector не должен развертываться в том же пространстве имён, что и Operator.

    TIP

    Пространство имён opentelemetry-collector, используемое в этом руководстве, приведено в качестве примера. Вы можете создать и использовать пространство имён с любым именем, соответствующим соглашениям об именовании вашей организации.

    kubectl get namespace opentelemetry-collector || \
      kubectl create namespace opentelemetry-collector

    Развертывание через веб-консоль

    Предварительные требования

    • Operator Alauda Build of OpenTelemetry v2 должен быть установлен.
    • Вы вошли в веб-консоль Alauda Container Platform как cluster-admin.
    • Создано отдельное пространство имён для экземпляра Collector.

    Процедура

    1. В веб-консоли Alauda Container Platform перейдите в раздел Administrator.

    2. Выберите Marketplace > OperatorHub.

    3. Найдите Alauda Build of OpenTelemetry v2.

    4. Найдите Alauda Build of OpenTelemetry v2 и щелкните, чтобы выбрать его.

    5. Щелкните вкладку All Instances.

    6. Щелкните Create.

    7. Найдите и выберите OpenTelemetryCollector, затем щелкните Create.

    8. Выберите namespace Collector в раскрывающемся списке Namespace.

    9. Щелкните вкладку YAML.

    10. Настройте пользовательский ресурс (CR) OpenTelemetryCollector в редакторе кода YAML:

      Пример CR OpenTelemetryCollector

      apiVersion: opentelemetry.io/v1beta1
      kind: OpenTelemetryCollector
      metadata:
        name: otel
        namespace: opentelemetry-collector
      spec:
        mode: deployment
        replicas: 1
        config:
          receivers:
            otlp:
              protocols:
                grpc: {}
                http: {}
            jaeger:
              protocols:
                grpc: {}
                thrift_binary: {}
                thrift_compact: {}
                thrift_http: {}
            zipkin: {}
          processors:
            batch: {}
            memory_limiter:
              check_interval: 1s
              limit_percentage: 80
              spike_limit_percentage: 20
          exporters:
            debug: {}
          service:
            pipelines:
              traces:
                receivers: [otlp, jaeger, zipkin]
                processors: [memory_limiter, batch]
                exporters: [debug]
      1. Namespace для развертывания экземпляра OpenTelemetry Collector. Здесь opentelemetry-collector используется в качестве примера; замените его на namespace, который вы создали для Collector. Этот namespace должен отличаться от namespace Operator.
      2. Режим развертывания Collector. Поддерживаемые значения: deployment (по умолчанию), daemonset, statefulset или sidecar.
      3. Receivers определяют, как телеметрические данные поступают в Collector. В этом примере настраиваются receivers протоколов OTLP, Jaeger и Zipkin.
      4. Processors выполняют обработку данных между приемом и экспортом. В этом примере используются batch для пакетной обработки телеметрических данных и memory_limiter для управления использованием памяти.
      5. Exporters определяют назначения телеметрических данных. В этом примере используется exporter debug, который выводит данные в журналы Collector.
    11. Щелкните Create.

    Проверка

    Дождитесь, пока pod'ы OpenTelemetry Collector будут запущены.

    Развертывание через CLI

    Предварительные требования

    • Активный сеанс ACP CLI (kubectl) от администратора кластера с ролью cluster-admin.
    • Operator Alauda Build of OpenTelemetry v2 должен быть установлен.
    • Создано отдельное пространство имён для экземпляра Collector.

    Процедура

    1. Настройте и примените пользовательский ресурс (CR) OpenTelemetryCollector:

      kubectl apply -f - <<EOF
      apiVersion: opentelemetry.io/v1beta1
      kind: OpenTelemetryCollector
      metadata:
        name: otel
        namespace: opentelemetry-collector
      spec:
        mode: deployment
        replicas: 1
        config:
          receivers:
            otlp:
              protocols:
                grpc: {}
                http: {}
            jaeger:
              protocols:
                grpc: {}
                thrift_binary: {}
                thrift_compact: {}
                thrift_http: {}
            zipkin: {}
          processors:
            batch: {}
            memory_limiter:
              check_interval: 1s
              limit_percentage: 80
              spike_limit_percentage: 20
          exporters:
            debug: {}
          service:
            pipelines:
              traces:
                receivers: [otlp, jaeger, zipkin]
                processors: [memory_limiter, batch]
                exporters: [debug]
      EOF
      NOTE

      Подробное описание полей CR OpenTelemetryCollector см. в примере CR в разделе развертывания через веб-консоль выше.

    2. Дождитесь, пока pod'ы Collector будут готовы:

      kubectl wait --for=condition=Ready pod -l app.kubernetes.io/managed-by=opentelemetry-operator -n opentelemetry-collector --timeout=3m

    Проверка

    Убедитесь, что pod'ы Collector запущены:

    kubectl get pods -n opentelemetry-collector

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

    NAME                              READY   STATUS    RESTARTS   AGE
    otel-collector-7877b4cdcf-bj7br   1/1     Running   0          69s

    Удаление

    Чтобы удалить компоненты Alauda Distributed Tracing из вашего кластера, следуйте инструкции Удаление Alauda Build of OpenTelemetry v2.