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

    В этой главе описывается, как установить следующие плагины логирования: 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-узлов см. в Планирование узлов кластера.

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

    Поэтому перед установкой плагина 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Необязательно. nodeselector для компонента Logging. Используйте этот параметр для выбора узлов для компонента логирования. Этот параметр в основном используется для infra-узлов.
    spec.valuesOverride.ait/chart-alauda-log-api.global.tolerationsНеобязательно. tolerations для компонента Logging. Если node selector выбирает помеченные taint-ами узлы, используйте этот параметр, чтобы указать ключ, значение и effect 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Настройте requests и limits 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Ресурсы requests/limits для 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Ресурсы requests/limits для 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Порт election Zookeeper, по умолчанию 3888.
    spec.config.components.kafka.zkExporterPortПорт Zookeeper Exporter, по умолчанию 9141.
    spec.config.components.kafka.zkLeaderPortПорт связи leader/follower Zookeeper.
    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Срок хранения данных audit.
    spec.config.ttl.eventСрок хранения данных event.
    spec.config.ttl.logKubernetesСрок хранения Kubernetes logs.
    spec.config.ttl.logPlatformСрок хранения platform logs.
    spec.config.ttl.logSystemСрок хранения system logs.
    spec.config.ttl.logWorkloadСрок хранения workload logs.
    spec.versionУказывает версию плагина для установки, должна соответствовать .spec.version в ModuleConfig.
    spec.valuesOverride.ait/chart-alauda-log-center.global.nodeSelectorНеобязательно. nodeselector для компонента Logging. Используйте этот параметр для выбора узлов для компонента логирования. Этот параметр в основном используется для infra-узлов.
    spec.valuesOverride.ait/chart-alauda-log-center.global.tolerationsНеобязательно. tolerations для компонента Logging. Если node selector выбирает помеченные taint-ами узлы, используйте этот параметр, чтобы указать ключ, значение и effect 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-узлах

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

    Настройте следующие поля в 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-узлов и размещение локального хранилища совместимы. Рекомендации по планированию узлов см. в Планирование infra-узлов для хранения логов.

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

    Console

    Если вы планируете использовать S3 для хранения данных логов ClickHouse или холодного хранилища, подготовьте необходимый S3 Secret до установки. Полную процедуру, включая формат Secret, Secret для HTTPS CA certificate и режимы использования, см. в Как использовать S3 storage с 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 TypeLocalVolume. Значение по умолчанию: /cpaas/data/clickhouse.
      Log ReplicasОтображается, когда выбранный режим хранения использует StorageClass. Настройте количество реплик ClickHouse, создаваемых для активного раздела хранения.
      StorageClassОтображается, когда Storage Policy установлено в Default, а Storage MethodStorageClass. Выберите StorageClass, используемый для данных логов ClickHouse.
      Metadata StorageClassОтображается, когда Metadata Storage TypeStorageClass. Выберите StorageClass, используемый для метаданных ClickHouse.
      CapacityОтображается, когда Storage Policy установлено в Default. Зарезервируйте емкость в Gi для данных логов ClickHouse.
      Metadata CapacityЗарезервируйте емкость в Gi для метаданных ClickHouse. На странице рекомендуется 20 Gi.
      Advanced ConfigurationСворачиваемый раздел для параметров планирования на уровне плагина.
      Node SelectorsОтображается в Advanced Configuration. Настройте правила node selector на уровне плагина для workloads плагина хранения ClickHouse.
      Node TolerationsОтображается в Advanced Configuration. Настройте правила toleration на уровне плагина для workloads плагина хранения 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, раздел настроек cold-storage использует те же имена полей для хранения сроков хранения холодных данных. Значение 0 означает, что тип логов не переносится в cold storage.
    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 вместе с cold storage на базе 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 на уровне плагина для workloads плагина хранения ClickHouse. Это поле использует структурированный формат списка, определенный API плагина.
    spec.config.components.tolerationsНеобязательно. Правила toleration на уровне плагина для workloads плагина хранения 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Срок хранения перед переносом audit-данных в cold storage. Установите 0, чтобы отключить перенос для этого типа.
    spec.config.components.clickhouse.tieredPolicy.coldTTL.eventСрок хранения перед переносом event-данных в cold storage. Установите 0, чтобы отключить перенос для этого типа.
    spec.config.components.clickhouse.tieredPolicy.coldTTL.logKubernetesСрок хранения перед переносом Kubernetes logs в cold storage. Установите 0, чтобы отключить перенос для этого типа.
    spec.config.components.clickhouse.tieredPolicy.coldTTL.logPlatformСрок хранения перед переносом platform logs в cold storage. Установите 0, чтобы отключить перенос для этого типа.
    spec.config.components.clickhouse.tieredPolicy.coldTTL.logSystemСрок хранения перед переносом system logs в cold storage. Установите 0, чтобы отключить перенос для этого типа.
    spec.config.components.clickhouse.tieredPolicy.coldTTL.logWorkloadСрок хранения перед переносом workload logs в cold storage. Установите 0, чтобы отключить перенос для этого типа.
    spec.config.components.clickhouse.resourcesРесурсы requests/limits для ClickHouse.
    spec.config.components.clickhouse.ttl.auditСрок хранения данных audit в активном хранилище ClickHouse.
    spec.config.components.clickhouse.ttl.eventСрок хранения данных event в активном хранилище ClickHouse.
    spec.config.components.clickhouse.ttl.logKubernetesСрок хранения Kubernetes logs в активном хранилище ClickHouse.
    spec.config.components.clickhouse.ttl.logPlatformСрок хранения platform logs в активном хранилище ClickHouse.
    spec.config.components.clickhouse.ttl.logSystemСрок хранения system logs в активном хранилище ClickHouse.
    spec.config.components.clickhouse.ttl.logWorkloadСрок хранения workload logs в активном хранилище ClickHouse.
    spec.config.components.clickhouse.typeРазмер кластера: single, normal или big.
    spec.config.components.razor.resourcesРесурсы requests/limits для Razor.
    spec.config.components.vector.resourcesРесурсы requests/limits для 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.
    • После установки следует изменять только эффективные настройки хранения, такие как сроки хранения hot- или cold-данных.
    • Чтобы использовать эту возможность, обновляйте Alauda Container Platform Log Essentials и Alauda Container Platform Log Storage for ClickHouse до совместимых версий одновременно.
    • В сценариях disaster recovery используйте разные 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-узлах

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

    • В консоли используйте 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-узлов и размещение локального хранилища совместимы. Рекомендации по планированию узлов см. в Планирование infra-узлов для хранения логов.

    Установка плагина 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. Этот параметр нельзя изменить после установки.
      Log Collector ResourcesНастройте requests и limits CPU и памяти для компонента Log Collector.
    4. Нажмите Install.

    YAML

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

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

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

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

    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: false
          platform: false
          system: true
          workload: true
        components:
          nodeSelector:
          - key: node-role.kubernetes.io/infra
            value: "true"
          tolerations:
          - effect: NoSchedule
            key: node-role.kubernetes.io/infra
            operator: Equal
            value: reserved
          nevermore:
            storageSpec:
              dataDir: /cpaas
            log:
              resources:
                limits:
                  cpu: "2"
                  ephemeral-storage: 1Gi
                  memory: 4Gi
                requests:
                  cpu: 100m
                  memory: 512Mi
        storage:
          type: ElasticSearch
      version: v4.3.1

    Справка по полям 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Имя кластера log storage на базе Elasticsearch.
    spec.config.crossClusterDependency.logclickhouseУстановите null при использовании хранилища Elasticsearch; в противном случае укажите имя кластера ClickHouse.
    spec.config.dataSource.auditСобирать audit-логи.
    spec.config.dataSource.eventСобирать event-логи.
    spec.config.dataSource.kubernetesСобирать Kubernetes logs.
    spec.config.dataSource.platformСобирать platform logs.
    spec.config.dataSource.systemСобирать system logs.
    spec.config.dataSource.workloadСобирать workload logs.
    spec.config.components.nodeSelectorНеобязательно. Правила node selector на уровне плагина для workloads Log Collector. Это поле использует структурированный формат списка, определенный API плагина.
    spec.config.components.tolerationsНеобязательно. Правила toleration на уровне плагина для workloads Log Collector.
    spec.config.components.nevermore.storageSpec.dataDirПуть хранения локальных рабочих данных Log Collector. Используйте абсолютный путь. Значение по умолчанию: /cpaas. Этот параметр нельзя изменить после установки.
    spec.config.components.nevermore.log.resourcesНеобязательно. requests / limits CPU и памяти для компонента Log Collector.
    spec.config.storage.typeElasticSearch или ClickHouse.
    spec.versionВерсия плагина для установки.
    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.3.1           v4.3.1            v4.3.1