• Русский
  • Установка

    В этой главе описывается, как установить следующие плагины логирования: Alauda Container Platform Log Essentials, Alauda Container Platform Log Collector, Alauda Container Platform Log Storage for ClickHouse и Alauda Container Platform Log Storage for Elasticsearch.

    WARNING
    1. Кластер global может запрашивать данные логов, хранящиеся в любом workload-кластере внутри платформы. Убедитесь, что кластер global может получить доступ к порту 11780 workload-кластера.

    2. Alauda Container Platform Log Storage for ClickHouse зависит от ClickHouse Operator. Перед установкой плагина убедитесь, что ClickHouse Operator загружен в кластер.

    Планирование установки

    INFO

    Некоторые компоненты Logging ресурсоёмки. Рекомендуем запускать их на infra-узлах с помощью конфигурации плагина. Точные поля планирования различаются в зависимости от плагина. Если вы оцениваете продукт и не выделили infra-узлы, вы можете удалить эти настройки, чтобы компоненты запускались на всех узлах.

    Рекомендации по планированию infra-узлов см. в Cluster Node Planning.

    Плагины Alauda Container Platform Log Storage можно установить в любом кластере, и для сбора логов можно выбрать компонент хранения логов любого кластера, чтобы взаимодействовать с данными в хранилище.

    Поэтому перед установкой плагина log storage необходимо спланировать кластер и узел, на котором будет установлен компонент хранения логов.

    • Не разворачивайте плагины log storage в кластере global. Вместо этого разворачивайте их в workload-кластерах, чтобы сбои управляющего кластера не нарушали решение проблем на основе логов.

    • Предпочтительно централизовать логи в одном кластере log storage. Если объём логов превышает порог максимальной ёмкости, распределите логи между несколькими кластерами хранения.

    • Разворачивайте не менее одного экземпляра log storage в каждой сетевой зоне, чтобы агрегировать логи локально и минимизировать межЦОДовый трафик через публичную сеть, который влечёт за собой высокие затраты и задержки.

    • Выделяйте для log storage отдельные узлы, не размещая его совместно с другими приложениями или компонентами платформы. Для log storage требуется высокая пропускная способность ввода-вывода, и на него может влиять взаимное вмешательство.

    • Используйте выделенные SSD-диски для log storage, чтобы значительно повысить производительность.

    Установка Alauda Container Platform Log Essentials

    Console

    1. Перейдите в Marketplace > Cluster Plugins и выберите кластер global.

    2. Нажмите кнопку действий справа от Alauda Container Platform Log Essentials и выберите Install.

    3. Нажмите Install.

    YAML

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

    Убедитесь, что плагин опубликован, проверив ресурсы ModulePlugin и ModuleConfig в кластере global:

    
    # kubectl get moduleplugin | grep log-api
    log-api                       30h
    # kubectl get moduleconfig | grep log-api
    log-api-v4.2.0                30h
    

    Это означает, что ModulePlugin log-api существует в кластере, а версия v4.2.0 опубликована.

    1. Создайте ModuleInfo

    Создайте ресурс ModuleInfo для установки плагина без каких-либо параметров конфигурации:

    apiVersion: cluster.alauda.io/v1alpha1
    kind: ModuleInfo
    metadata:
      annotations:
        cpaas.io/display-name: log-api
        cpaas.io/module-name: '{"en": "Alauda Container Platform Log Essentials", "zh":
          "Alauda Container Platform Log Essentials"}'
      labels:
        cpaas.io/cluster-name: global
        cpaas.io/module-name: log-api
        cpaas.io/module-type: plugin
        cpaas.io/product: Platform-Center
      name: global-b4a67e6adb67bad47544354e9bf2bdff
    spec:
      version: v4.2.0
      valuesOverride:
        ait/chart-alauda-log-api:
          global:
            nodeSelector:
              node-role.kubernetes.io/infra: "true"
            tolerations:
            - effect: NoSchedule
              key: node-role.kubernetes.io/infra
              value: reserved
              operator: Equal

    Справка по полям YAML:

    Путь к полюОписание
    metadata.labels.cpaas.io/cluster-nameИмя целевого кластера, в котором устанавливается плагин.
    metadata.nameВременное имя ModuleInfo; платформа переименует его после создания.
    spec.versionУказывает версию плагина для установки; должна совпадать с .spec.version в ModuleConfig.
    spec.valuesOverride.ait/chart-alauda-log-api.global.nodeSelectorНеобязательно. Нодселектор для компонента Logging. Используйте этот параметр для выбора узлов компонента logging. Этот параметр в основном используется для infra-узлов.
    spec.valuesOverride.ait/chart-alauda-log-api.global.tolerationsНеобязательно. Tolerations для компонента Logging. Если node selector выбирает помеченные taint-ами узлы, используйте этот параметр, чтобы указать ключ, значение и эффект toleration для taint. Этот параметр в основном используется для infra-узлов.
    1. Проверьте установку

    Поскольку имя ModuleInfo изменяется после создания, найдите ресурс по метке, чтобы проверить статус и версию плагина:

    kubectl get moduleinfo -l cpaas.io/module-name=log-api
    NAME                                             CLUSTER         MODULE      DISPLAY_NAME   STATUS    TARGET_VERSION   CURRENT_VERSION   NEW_VERSION
    global-e671599464a5b1717732c5ba36079795          global          log-api   log-api      Running   v4.2.0          v4.2.0           v4.2.0

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

    • NAME: имя ресурса ModuleInfo
    • CLUSTER: кластер, в котором установлен плагин
    • MODULE: имя плагина
    • DISPLAY_NAME: отображаемое имя плагина
    • STATUS: статус установки; Running означает, что установка выполнена успешно и компонент запущен
    • TARGET_VERSION: целевая версия установки
    • CURRENT_VERSION: версия до установки
    • NEW_VERSION: последняя доступная версия для установки

    Установка Alauda Container Platform Log Storage for Elasticsearch

    Console

    1. Перейдите в Marketplace > Cluster Plugins и выберите целевой кластер.

    2. Нажмите кнопку действий справа от Alauda Container Platform Log Storage for Elasticsearch и выберите Install.

    3. Следуйте приведённым ниже инструкциям для настройки соответствующих параметров.

      ПараметрОписание
      External ElasticsearchОставьте этот переключатель выключенным, чтобы установить управляемый платформой плагин хранения Elasticsearch.
      sizeВыберите Single Node, Small Cluster или Big Cluster в зависимости от целевого масштаба.
      Storage MethodВыберите LocalVolume или StorageClass для backend-хранилища.
      Log NodeОтображается при использовании LocalVolume. Выберите узлы данных Elasticsearch.
      Storage path on hostОтображается при использовании LocalVolume. Введите абсолютный путь на хосте для данных Elasticsearch.
      CapacityЗарезервируйте ёмкость хранилища в Gi для текущего раздела данных. На странице эта метка используется как для данных Elasticsearch, так и для данных Kafka.
      Log data nodes resourcesНастройте запросы и лимиты CPU и памяти для узлов данных Elasticsearch.
      Kafka NodesВыберите узлы Kafka, используемые плагином.
      LogPlatform / LogWorkload / LogSystem / LogKubernetes / Kubernetes Event / AuditНастройте срок хранения в днях по типам логов в разделе Log reserve config, in days.
    4. Нажмите Install.

    YAML

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

    Убедитесь, что плагин опубликован, проверив ресурсы ModulePlugin и ModuleConfig в кластере global:

    
    # kubectl get moduleplugin | grep logcenter
    logcenter                       30h
    # kubectl get moduleconfig | grep logcenter
    logcenter-v4.1.0                30h
    

    Это означает, что ModulePlugin logcenter существует в кластере, а версия v4.1.0 опубликована.

    1. Создайте ModuleInfo

    Создайте ресурс ModuleInfo для установки плагина без каких-либо параметров конфигурации:

    apiVersion: cluster.alauda.io/v1alpha1
    kind: ModuleInfo
    metadata:
      annotations:
        cpaas.io/display-name: logcenter
        cpaas.io/module-name: '{"en": "Alauda Container Platform Log Storage for Elasticsearch", "zh": "Alauda Container Platform Log Storage for Elasticsearch"}'
      labels:
        cpaas.io/cluster-name: go
        cpaas.io/module-name: logcenter
        cpaas.io/module-type: plugin
        cpaas.io/product: Platform-Center
      name: <cluster>-log-center
    spec:
      config:
        self:
          storage:
            disabled: false
        components:
          elasticsearch:
            address: ""
            basicAuthSecretName: ""
            hostpath: /cpaas/data/elasticsearch
            httpPort: 9200
            install: true
            k8sNodes:
            - 192.168.139.75
            masterK8sNodes: []
            masterReplicas: 0
            masterResources:
              limits:
                cpu: "2"
                memory: 4Gi
              requests:
                cpu: 200m
                memory: 256Mi
            masterStorageSize: 5
            nodeReplicas: 1
            nodeStorageSize: 200
            resources:
              limits:
                cpu: "4"
                memory: 4Gi
              requests:
                cpu: "1"
                memory: 1Gi
            tcpPort: 9300
            type: single
          kafka:
            address: ""
            auth: true
            basicAuthSecretName: ""
            exporterPort: 9308
            install: true
            k8sNodes:
            - 192.168.139.75
            port: 9092
            storageSize: 10
            tls: true
            zkElectPort: 3888
            zkExporterPort: 9141
            zkLeaderPort: 2888
            zkPort: 2181
          kibana:
            install: false
          storageClassConfig:
            name: elasticsearch-local-log-sc
            type: LocalVolume
          zookeeper:
            storageSize: 1
        ttl:
          audit: 180
          event: 180
          logKubernetes: 7
          logPlatform: 7
          logSystem: 7
          logWorkload: 7
      version: v4.1.0
      valuesOverride:
        ait/chart-alauda-log-center:
          global:
            nodeSelector:
              node-role.kubernetes.io/infra: "true"
            tolerations:
            - effect: NoSchedule
              key: node-role.kubernetes.io/infra
              value: reserved
              operator: Equal

    Справка по полям YAML:

    Путь к полюОписание
    metadata.labels.cpaas.io/cluster-nameИмя целевого кластера, в котором устанавливается плагин.
    metadata.nameВременное имя ModuleInfo; платформа переименует его после создания.
    spec.config.self.storage.disabledНужно ли отключить управляемое платформой хранилище для этого плагина. Оставьте значение false при установке встроенного плагина хранения Elasticsearch.
    spec.config.components.elasticsearch.addressАдрес внешнего Elasticsearch; оставьте пустым, чтобы использовать Elasticsearch, установленный платформой.
    spec.config.components.elasticsearch.basicAuthSecretNameИмя Secret для basic auth внешнего Elasticsearch; оставьте пустым для Elasticsearch платформы.
    spec.config.components.elasticsearch.hostpathПуть к данным Elasticsearch.
    spec.config.components.elasticsearch.httpPortHTTP-порт Elasticsearch, по умолчанию 9200.
    spec.config.components.elasticsearch.installНужно ли устанавливать Elasticsearch через платформу; установите false при использовании внешнего Elasticsearch.
    spec.config.components.elasticsearch.k8sNodesСписок IP-адресов узлов для Elasticsearch Data при использовании LocalVolume.
    spec.config.components.elasticsearch.masterK8sNodesСписок IP-адресов узлов для Elasticsearch Master (только для крупного масштаба и только с LocalVolume).
    spec.config.components.elasticsearch.masterReplicasКоличество реплик для Elasticsearch Master (только для крупного масштаба).
    spec.config.components.elasticsearch.masterResourcesЗапросы и лимиты ресурсов для Elasticsearch Master (только для крупного масштаба).
    spec.config.components.elasticsearch.masterStorageSizeРазмер хранилища для Elasticsearch Master (только для крупного масштаба).
    spec.config.components.elasticsearch.nodeReplicasКоличество реплик для Elasticsearch Data.
    spec.config.components.elasticsearch.nodeStorageSizeРазмер хранилища для Elasticsearch Data (Gi).
    spec.config.components.elasticsearch.resourcesЗапросы и лимиты ресурсов для Elasticsearch Data.
    spec.config.components.elasticsearch.tcpPortВнутренний транспортный порт кластера Elasticsearch, по умолчанию 9300.
    spec.config.components.elasticsearch.typeРазмер кластера Elasticsearch: single/normal/big.
    spec.config.components.kafka.addressАдрес внешнего Kafka; оставьте пустым, чтобы использовать Kafka, установленный платформой.
    spec.config.components.kafka.authВключить аутентификацию Kafka, по умолчанию true.
    spec.config.components.kafka.basicAuthSecretNameИмя Secret для аутентификации внешнего Kafka; оставьте пустым для Kafka платформы.
    spec.config.components.kafka.exporterPortПорт Kafka Exporter, по умолчанию 9308.
    spec.config.components.kafka.installНужно ли устанавливать Kafka через платформу; установите false при использовании внешнего Kafka.
    spec.config.components.kafka.k8sNodesСписок IP-адресов узлов для Kafka при использовании LocalVolume.
    spec.config.components.kafka.portОткрытый порт Kafka, по умолчанию 9092.
    spec.config.components.kafka.storageSizeРазмер хранилища Kafka (Gi).
    spec.config.components.kafka.tlsВключить TLS для Kafka, по умолчанию true.
    spec.config.components.kafka.zkElectPortПорт выбора лидера Zookeeper, по умолчанию 3888.
    spec.config.components.kafka.zkExporterPortПорт Zookeeper Exporter, по умолчанию 9141.
    spec.config.components.kafka.zkLeaderPortПорт связи leader/follower Zookeeper, по умолчанию 2888.
    spec.config.components.kafka.zkPortПорт клиента Zookeeper, по умолчанию 2181.
    spec.config.components.kibana.installНужно ли устанавливать Kibana; Kibana устарел, установите false.
    spec.config.components.storageClassConfig.nameДля LocalVolume обычно elasticsearch-local-log-sc; для StorageClass укажите имя класса.
    spec.config.components.storageClassConfig.typeТип хранилища: LocalVolume/StorageClass.
    spec.config.components.zookeeper.storageSizeРазмер хранилища Zookeeper (Gi).
    spec.config.ttl.auditСрок хранения данных аудита.
    spec.config.ttl.eventСрок хранения событийных данных.
    spec.config.ttl.logKubernetesСрок хранения логов Kubernetes.
    spec.config.ttl.logPlatformСрок хранения логов платформы.
    spec.config.ttl.logSystemСрок хранения системных логов.
    spec.config.ttl.logWorkloadСрок хранения логов workload.
    spec.versionУказывает версию плагина для установки; должна совпадать с .spec.version в ModuleConfig.
    spec.valuesOverride.ait/chart-alauda-log-center.global.nodeSelectorНеобязательно. Нодселектор для компонента Logging. Используйте этот параметр для выбора узлов компонента logging. Этот параметр в основном используется для infra-узлов.
    spec.valuesOverride.ait/chart-alauda-log-center.global.tolerationsНеобязательно. Tolerations для компонента Logging. Если node selector выбирает помеченные taint-ами узлы, используйте этот параметр, чтобы указать ключ, значение и эффект toleration для taint. Этот параметр в основном используется для infra-узлов.
    1. Проверьте установку

    Поскольку имя ModuleInfo изменяется после создания, найдите ресурс по метке, чтобы проверить статус и версию плагина:

    kubectl get moduleinfo -l cpaas.io/module-name=logcenter
    NAME                                             CLUSTER         MODULE      DISPLAY_NAME   STATUS    TARGET_VERSION   CURRENT_VERSION   NEW_VERSION
    global-e671599464a5b1717732c5ba36079795          global          logcenter   logcenter      Running   v4.0.12          v4.0.12           v4.0.12

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

    • NAME: имя ресурса ModuleInfo
    • CLUSTER: кластер, в котором установлен плагин
    • MODULE: имя плагина
    • DISPLAY_NAME: отображаемое имя плагина
    • STATUS: статус установки; Running означает, что установка выполнена успешно и компонент запущен
    • TARGET_VERSION: целевая версия установки
    • CURRENT_VERSION: версия до установки
    • NEW_VERSION: последняя доступная версия для установки

    Размещение на infra-узлах

    Если вы хотите, чтобы workload плагина хранения Elasticsearch выполнялись на выделенных infra-узлах, используйте YAML-конфигурацию плагина вместо применения patch к сгенерированным workload после установки.

    Настройте следующие поля в spec.valuesOverride.ait/chart-alauda-log-center.global:

    valuesOverride:
      ait/chart-alauda-log-center:
        global:
          nodeSelector:
            node-role.kubernetes.io/infra: "true"
          tolerations:
            - effect: NoSchedule
              key: node-role.kubernetes.io/infra
              value: reserved
              operator: Equal

    Перед применением этих правил планирования убедитесь, что планирование infra-узлов и размещение локального хранилища совместимы. Рекомендации по планированию узлов см. в Planning Infra Nodes for Logging Storage.

    Установка Alauda Container Platform Log Storage for ClickHouse

    Console

    Если вы планируете использовать S3 для хранения данных логов ClickHouse или холодного хранилища, подготовьте необходимый S3 Secret до установки. Полную процедуру, включая формат Secret, HTTPS CA certificate Secret и режимы использования, см. в How to Use S3 Storage with ClickHouse.

    1. Перейдите в Marketplace > Cluster Plugins и выберите целевой кластер.

    2. Нажмите кнопку действий справа от Alauda Container Platform Log Storage for ClickHouse и выберите Install.

    3. Следуйте приведённым ниже инструкциям для настройки соответствующих параметров.

      ПараметрОписание
      SizeВыберите Single Node, Small Cluster или Big Cluster в зависимости от целевого масштаба.
      Storage PolicyОпределяет, как ClickHouse хранит метаданные и данные логов. Доступные значения: Default и Separation of storage and compute. Этот параметр нельзя изменить после установки.
      Storage MethodОтображается, когда Storage Policy имеет значение Default. Доступные значения: LocalVolume и StorageClass.
      Metadata Storage TypeОтображается, когда Storage Policy имеет значение Separation of storage and compute. Доступные значения: LocalVolume и StorageClass.
      Log NodeОтображается при использовании локального хранилища. В режиме Default выберите узлы, которые локально хранят данные логов ClickHouse. В режиме Separation of storage and compute выберите узлы, которые локально хранят метаданные ClickHouse.
      Storage Path on HostОтображается, когда Storage Policy имеет значение Default и Storage MethodLocalVolume. Значение по умолчанию: /cpaas/data/clickhouse.
      Metadata Storage PathОтображается, когда Metadata Storage Type имеет значение LocalVolume. Значение по умолчанию: /cpaas/data/clickhouse.
      Log ReplicasОтображается, когда выбранный режим хранения использует StorageClass. Настройте количество реплик ClickHouse, создаваемых для активного раздела хранения.
      StorageClassОтображается, когда Storage Policy имеет значение Default и Storage MethodStorageClass. Выберите StorageClass, используемый для данных логов ClickHouse.
      Metadata StorageClassОтображается, когда Metadata Storage Type имеет значение StorageClass. Выберите StorageClass, используемый для метаданных ClickHouse.
      CapacityОтображается, когда Storage Policy имеет значение Default. Зарезервируйте ёмкость в Gi для данных логов ClickHouse.
      Metadata CapacityЗарезервируйте ёмкость в Gi для метаданных ClickHouse. На странице рекомендуется 20 Gi.
      Advanced ConfigurationСворачиваемый раздел для параметров планирования на уровне плагина.
      Node SelectorsОтображается в разделе Advanced Configuration. Настройте правила node selector на уровне плагина для workload плагина хранения ClickHouse.
      Node TolerationsОтображается в разделе Advanced Configuration. Настройте правила toleration на уровне плагина для workload плагина хранения ClickHouse.
      S3 for Log DataОтображается, когда Storage Policy имеет значение Separation of storage and compute. Выберите подготовленный S3 Secret для хранения данных логов. Этот параметр нельзя изменить после установки.
      Log Platform / Log Workload / Log System / Log Kubernetes / Kubernetes Event / AuditНастройте срок хранения горячих данных в днях по типам логов в разделе Log Retention Settings.
      Cold and Hot SeparateВключает многоуровневое хранилище для ClickHouse. После включения можно указать S3-расположение для холодных данных и задать срок хранения холодных данных в днях по типам логов. Этот переключатель нельзя изменить после установки.
      S3 for Log Cold DataОтображается, когда включён Cold and Hot Separate. Выберите подготовленный S3 Secret для хранения холодных данных. Этот параметр нельзя изменить после установки.
      Log Platform / Log Workload / Log System / Log Kubernetes / Kubernetes Event / AuditКогда включён Cold and Hot Separate, в разделе настроек холодного хранилища эти же имена полей используются для хранения срока холодных данных. Значение 0 означает, что данный тип логов не переносится в холодное хранилище.
    4. Нажмите Install.

    YAML

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

    Убедитесь, что плагин опубликован, проверив ресурсы ModulePlugin и ModuleConfig в кластере global:

    
    # kubectl get moduleplugin | grep logclickhouse
    logclickhouse                       30h
    # kubectl get moduleconfig | grep logclickhouse
    logclickhouse-v4.1.0                30h
    

    Это означает, что ModulePlugin logclickhouse существует в кластере, а версия v4.1.0 опубликована.

    1. Создайте ModuleInfo

    Создайте ресурс ModuleInfo для установки плагина. В следующем примере используется Separation of storage and compute вместе с холодным хранилищем на основе S3:

    apiVersion: cluster.alauda.io/v1alpha1
    kind: ModuleInfo
    metadata:
      name: global-logclickhouse
      labels:
        cpaas.io/cluster-name: global
        cpaas.io/module-name: logclickhouse
        cpaas.io/module-type: plugin
    spec:
      version: v4.1.0
      config:
        components:
          nodeSelector:
            - key: kubernetes.io/os
              value: linux
          tolerations:
            - effect: NoSchedule
              key: node-role.kubernetes.io/infra
              operator: Exists
          clickhouse:
            storagePolicy:
              type: SSC
              sscSpec:
                metaStorage:
                  type: LocalVolume
                  size: 20
                  localVolumeSpec:
                    nodes:
                      - xxx.xxx.xxx.xx
                    path: /cpaas/data/clickhouse
                dataStorage:
                  type: S3
                  s3Spec:
                    credentials: clickhouse-s3-config
            tieredPolicy:
              enabled: true
              coldStorage:
                type: S3
                s3Spec:
                  credentials: clickhouse-cold-s3-config
              coldTTL:
                audit: 30
                event: 30
                logKubernetes: 30
                logPlatform: 30
                logSystem: 30
                logWorkload: 30
            resources:
              limits:
                cpu: "2"
                memory: 4Gi
              requests:
                cpu: 200m
                memory: 256Mi
            ttl:
              audit: 180
              event: 180
              logKubernetes: 7
              logPlatform: 7
              logSystem: 7
              logWorkload: 7
            type: normal
          razor:
            resources:
              limits:
                cpu: "2"
                memory: 1Gi
              requests:
                cpu: 10m
                memory: 256Mi
          vector:
            resources:
              limits:
                cpu: "4"
                memory: 1Gi
              requests:
                cpu: 10m
                memory: 256Mi

    Справка по полям YAML (ClickHouse):

    Путь к полюОписание
    metadata.nameИмя ModuleInfo. Рекомендуемый формат: <target-cluster>-logclickhouse.
    metadata.labels.cpaas.io/cluster-nameЦелевой кластер, в котором устанавливается плагин.
    metadata.labels.cpaas.io/module-nameДолжно быть logclickhouse.
    metadata.labels.cpaas.io/module-typeДолжно быть plugin.
    spec.versionВерсия плагина для установки.
    spec.config.components.nodeSelectorНеобязательно. Правила node selector на уровне плагина для workload плагина хранения ClickHouse. Это поле использует структурированный формат списка, определённый API плагина.
    spec.config.components.tolerationsНеобязательно. Правила toleration на уровне плагина для workload плагина хранения ClickHouse.
    spec.config.components.clickhouse.storagePolicy.typeТип политики хранения. Используйте Default для стандартного локального хранения данных или хранения на основе StorageClass, либо SSC для разделения хранения и вычислений.
    spec.config.components.clickhouse.storagePolicy.defaultSpecБлок конфигурации для политики хранения Default. Используйте либо defaultSpec, либо sscSpec.
    spec.config.components.clickhouse.storagePolicy.defaultSpec.dataStorage.typeТип хранилища данных для политики по умолчанию: LocalVolume или StorageClass.
    spec.config.components.clickhouse.storagePolicy.defaultSpec.dataStorage.sizeРазмер хранилища данных, зарезервированный для ClickHouse в Gi при использовании политики по умолчанию.
    spec.config.components.clickhouse.storagePolicy.defaultSpec.dataStorage.localVolumeSpec.nodesСписок IP-адресов узлов, используемых данными ClickHouse при использовании LocalVolume в политике по умолчанию.
    spec.config.components.clickhouse.storagePolicy.defaultSpec.dataStorage.localVolumeSpec.pathЛокальный путь, используемый данными ClickHouse при использовании LocalVolume в политике по умолчанию.
    spec.config.components.clickhouse.storagePolicy.defaultSpec.dataStorage.storageClassSpec.nameИмя StorageClass, используемое данными ClickHouse при использовании StorageClass в политике по умолчанию.
    spec.config.components.clickhouse.storagePolicy.defaultSpec.dataStorage.storageClassSpec.replicasКоличество реплик, используемое данными ClickHouse при использовании StorageClass в политике по умолчанию.
    spec.config.components.clickhouse.storagePolicy.sscSpecБлок конфигурации для политики хранения SSC. Используйте либо defaultSpec, либо sscSpec.
    spec.config.components.clickhouse.storagePolicy.sscSpec.metaStorage.typeТип хранилища метаданных для SSC: LocalVolume или StorageClass.
    spec.config.components.clickhouse.storagePolicy.sscSpec.metaStorage.localVolumeSpec.nodesСписок IP-адресов узлов, используемых метаданными ClickHouse при использовании LocalVolume в SSC.
    spec.config.components.clickhouse.storagePolicy.sscSpec.metaStorage.localVolumeSpec.pathЛокальный путь, используемый метаданными ClickHouse при использовании LocalVolume в SSC.
    spec.config.components.clickhouse.storagePolicy.sscSpec.metaStorage.storageClassSpec.nameИмя StorageClass, используемое метаданными ClickHouse при использовании StorageClass в SSC.
    spec.config.components.clickhouse.storagePolicy.sscSpec.metaStorage.storageClassSpec.replicasКоличество реплик, используемое метаданными ClickHouse при использовании StorageClass в SSC.
    spec.config.components.clickhouse.storagePolicy.sscSpec.metaStorage.sizeЁмкость метаданных, зарезервированная для ClickHouse в Gi.
    spec.config.components.clickhouse.storagePolicy.sscSpec.dataStorage.typeТип хранилища для данных логов ClickHouse в SSC. В настоящее время поддерживается только S3.
    spec.config.components.clickhouse.storagePolicy.sscSpec.dataStorage.s3Spec.credentialsИмя Secret в cpaas-system, содержащего учётные данные S3 и информацию о endpoint для хранения данных логов.
    spec.config.components.clickhouse.tieredPolicy.enabledВключает или отключает разделение горячих и холодных данных.
    spec.config.components.clickhouse.tieredPolicy.coldStorage.typeТип хранилища для холодных данных. В настоящее время поддерживается только S3.
    spec.config.components.clickhouse.tieredPolicy.coldStorage.s3Spec.credentialsИмя Secret в cpaas-system для S3-хранилища холодных данных.
    spec.config.components.clickhouse.tieredPolicy.coldTTL.auditСрок хранения до переноса данных аудита в холодное хранилище. Установите 0, чтобы отключить перенос для этого типа.
    spec.config.components.clickhouse.tieredPolicy.coldTTL.eventСрок хранения до переноса событийных данных в холодное хранилище. Установите 0, чтобы отключить перенос для этого типа.
    spec.config.components.clickhouse.tieredPolicy.coldTTL.logKubernetesСрок хранения до переноса логов Kubernetes в холодное хранилище. Установите 0, чтобы отключить перенос для этого типа.
    spec.config.components.clickhouse.tieredPolicy.coldTTL.logPlatformСрок хранения до переноса логов платформы в холодное хранилище. Установите 0, чтобы отключить перенос для этого типа.
    spec.config.components.clickhouse.tieredPolicy.coldTTL.logSystemСрок хранения до переноса системных логов в холодное хранилище. Установите 0, чтобы отключить перенос для этого типа.
    spec.config.components.clickhouse.tieredPolicy.coldTTL.logWorkloadСрок хранения до переноса логов workload в холодное хранилище. Установите 0, чтобы отключить перенос для этого типа.
    spec.config.components.clickhouse.resourcesЗапросы и лимиты ресурсов для ClickHouse.
    spec.config.components.clickhouse.ttl.auditСрок хранения данных аудита в активном хранилище ClickHouse.
    spec.config.components.clickhouse.ttl.eventСрок хранения событийных данных в активном хранилище ClickHouse.
    spec.config.components.clickhouse.ttl.logKubernetesСрок хранения логов Kubernetes в активном хранилище ClickHouse.
    spec.config.components.clickhouse.ttl.logPlatformСрок хранения логов платформы в активном хранилище ClickHouse.
    spec.config.components.clickhouse.ttl.logSystemСрок хранения системных логов в активном хранилище ClickHouse.
    spec.config.components.clickhouse.ttl.logWorkloadСрок хранения логов workload в активном хранилище ClickHouse.
    spec.config.components.clickhouse.typeРазмер кластера: single, normal или big.
    spec.config.components.razor.resourcesЗапросы и лимиты ресурсов для Razor.
    spec.config.components.vector.resourcesЗапросы и лимиты ресурсов для Vector.
    spec.config.components.vector.storage.pathЛокальный путь, используемый Vector для временного хранилища.
    spec.config.components.vector.storage.sizeРазмер хранилища, зарезервированный для Vector в Gi.
    spec.versionУказывает версию плагина для установки; должна совпадать с .spec.version в ModuleConfig.

    Примечания по обновлению:

    • При обновлении плагина хранения ClickHouse нельзя переключать тип Storage Policy или включать/выключать Cold and Hot Separate.
    • После установки следует изменять только фактически используемые параметры хранения, такие как срок хранения горячих или холодных данных.
    • Чтобы использовать эту возможность, обновляйте Alauda Container Platform Log Essentials и Alauda Container Platform Log Storage for ClickHouse одновременно до совместимых версий.
    • В сценариях аварийного восстановления используйте разные S3 buckets для основного и резервного развёртываний ClickHouse.
    1. Проверьте установку

    Поскольку имя ModuleInfo изменяется после создания, найдите ресурс по метке, чтобы проверить статус и версию плагина:

    kubectl get moduleinfo -l cpaas.io/module-name=logclickhouse
    NAME                                             CLUSTER         MODULE      DISPLAY_NAME   STATUS    TARGET_VERSION   CURRENT_VERSION   NEW_VERSION
    global-e671599464a5b1717732c5ba36079795          global          logclickhouse   logclickhouse      Running   v4.0.12          v4.0.12           v4.0.12

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

    • NAME: имя ресурса ModuleInfo
    • CLUSTER: кластер, в котором установлен плагин
    • MODULE: имя плагина
    • DISPLAY_NAME: отображаемое имя плагина
    • STATUS: статус установки; Running означает, что установка выполнена успешно и компонент запущен
    • TARGET_VERSION: целевая версия установки
    • CURRENT_VERSION: версия до установки
    • NEW_VERSION: последняя доступная версия для установки

    Размещение на infra-узлах

    Если вы хотите, чтобы workload плагина хранения ClickHouse выполнялись на выделенных infra-узлах, настройте правила планирования на уровне плагина во время установки или обновления.

    • В Console используйте Advanced Configuration для задания Node Selectors и Node Tolerations.
    • В YAML задайте spec.config.components.nodeSelector и spec.config.components.tolerations.

    Пример:

    config:
      components:
        nodeSelector:
          - key: kubernetes.io/os
            value: linux
        tolerations:
          - effect: NoSchedule
            key: node-role.kubernetes.io/infra
            operator: Exists

    Перед применением этих правил планирования убедитесь, что планирование infra-узлов и размещение локального хранилища совместимы. Рекомендации по планированию узлов см. в Planning Infra Nodes for Logging Storage.

    Установка плагина Alauda Container Platform Log Collector

    Console

    1. Перейдите в Marketplace > Cluster Plugins и выберите целевой кластер.

    2. Нажмите кнопку действий справа от Alauda Container Platform Log Collector и выберите Install.

    3. Следуйте приведённым ниже инструкциям для настройки соответствующих параметров.

      ПараметрОписание
      Storage ClusterВыберите кластер, в котором установлен Alauda Container Platform Log Storage.
      Log typesНажмите Select/Deselect, чтобы задать область сбора логов в кластере.
      Storage PathНастройте локальный путь для рабочих данных Log Collector. Используйте абсолютный путь. Значение по умолчанию: /cpaas/data/nevermore. Этот параметр нельзя изменить после установки.
    4. Нажмите Install.

    YAML

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

    Убедитесь, что плагин опубликован, проверив ресурсы ModulePlugin и ModuleConfig в кластере global:

    
    # kubectl get moduleplugin | grep logagent
    logagent                       30h
    # kubectl get moduleconfig | grep logagent
    logagent-v4.1.0                30h
    

    Это означает, что ModulePlugin logagent существует в кластере, а версия v4.1.0 опубликована.

    1. Создайте ModuleInfo

    Создайте ресурс ModuleInfo для установки плагина без каких-либо параметров конфигурации:

    apiVersion: cluster.alauda.io/v1alpha1
    kind: ModuleInfo
    metadata:
      annotations:
        cpaas.io/display-name: logagent
        cpaas.io/module-name: '{"en": "Alauda Container Platform Log Collector", "zh": "Alauda Container Platform Log Collector"}'
      labels:
        cpaas.io/cluster-name: go
        cpaas.io/module-name: logagent
        cpaas.io/module-type: plugin
        cpaas.io/product: Platform-Center
        logcenter.plugins.cpaas.io/cluster: go
      name: <cluster>-log-agent
    spec:
      config:
        crossClusterDependency:
          logcenter: go
          logclickhouse: null
        dataSource:
          audit: true
          event: true
          kubernetes: true
          platform: false
          system: false
          workload: true
        components:
          nevermore:
            storageSpec:
              dataDir: /cpaas/data/nevermore
        storage:
          type: ElasticSearch
      version: v4.1.0
      valuesOverride:
        ait/chart-alauda-log-agent:
          global:
            nodeSelector:
              node-role.kubernetes.io/infra: "true"
            tolerations:
            - effect: NoSchedule
              key: node-role.kubernetes.io/infra
              value: reserved
              operator: Equal

    Справка по полям YAML (Log Collector):

    Путь к полюОписание
    metadata.annotations.cpaas.io/display-nameОтображаемое имя плагина.
    metadata.annotations.cpaas.io/module-nameJSON-строка с i18n-именем плагина.
    metadata.labels.cpaas.io/cluster-nameИмя целевого кластера, в котором устанавливается плагин.
    metadata.labels.cpaas.io/module-nameДолжно быть logagent.
    metadata.labels.cpaas.io/module-typeДолжно быть plugin.
    metadata.labels.cpaas.io/productИдентификатор продукта, обычно Platform-Center.
    metadata.labels.logcenter.plugins.cpaas.io/clusterИмя кластера хранения, в который отправляются логи, когда collector использует плагин хранения Elasticsearch.
    metadata.labels.logclickhouse.plugins.cpaas.io/clusterИмя кластера хранения, в который отправляются логи, когда collector использует плагин хранения ClickHouse.
    metadata.nameВременное имя ModuleInfo; платформа переименует его после создания.
    spec.config.crossClusterDependency.logcenterИмя кластера хранения логов на основе Elasticsearch.
    spec.config.crossClusterDependency.logclickhouseУстановите null при использовании хранилища Elasticsearch; в противном случае укажите имя кластера ClickHouse.
    spec.config.dataSource.auditСобирать audit-логи.
    spec.config.dataSource.eventСобирать event-логи.
    spec.config.dataSource.kubernetesСобирать логи Kubernetes.
    spec.config.dataSource.platformСобирать логи platform.
    spec.config.dataSource.systemСобирать системные логи.
    spec.config.dataSource.workloadСобирать логи workload.
    spec.config.components.nevermore.storageSpec.dataDirПуть хранения локальных рабочих данных Log Collector. Используйте абсолютный путь. Это поле нельзя изменить после установки.
    spec.config.storage.typeElasticSearch или ClickHouse.
    spec.versionВерсия плагина для установки.
    spec.valuesOverride.ait/chart-alauda-log-agent.global.nodeSelectorНеобязательно. nodeSelector для компонента Logging. Используйте этот параметр, чтобы выбрать узлы для компонента Logging. Этот параметр в основном используется для инфраструктурных узлов.
    spec.valuesOverride.ait/chart-alauda-log-agent.global.tolerationsНеобязательно. tolerations для компонента Logging. Если nodeSelector выбирает узлы с taint, используйте этот параметр, чтобы указать ключ, значение и эффект toleration для taint. Этот параметр в основном используется для инфраструктурных узлов.
    1. Проверьте установку

    Поскольку имя ModuleInfo изменяется при создании, найдите ресурс по метке, чтобы проверить статус и версию плагина:

    kubectl get moduleinfo -l cpaas.io/module-name=logagent
    NAME                                             CLUSTER         MODULE      DISPLAY_NAME   STATUS    TARGET_VERSION   CURRENT_VERSION   NEW_VERSION
    global-e671599464a5b1717732c5ba36079795          global          logagent   logagent      Running   v4.0.12          v4.0.12           v4.0.12