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

    Система журналирования платформы состоит из двух плагинов: Alauda Container Platform Log Collector и Alauda Container Platform Log Storage. В этой главе описывается установка этих двух плагинов.

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

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

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

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

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

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

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

    • Разверните как минимум один экземпляр хранения журналов в каждой сетевой зоне, чтобы агрегировать журналы локально и минимизировать межцентровой трафик через публичную сеть (который сопровождается высокими затратами и задержками).

    • Выделяйте для хранения журналов отдельные узлы, не размещая на них совместно другие приложения или компоненты платформы. Хранилище журналов требует высокой пропускной способности I/O и может быть подвержено влиянию помех.

    • Подключайте для хранения журналов выделенные SSD-диски, чтобы значительно повысить производительность.

    Установка Alauda Container Platform Log Storage with ElasticSearch через консоль

    1. Перейдите в App Store Management > Cluster Plugin и выберите целевой кластер.

    2. На вкладке Plugins нажмите кнопку действия справа от Alauda Container Platform Log Storage with ElasticSearch > Install.

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

      ParameterDescription
      Connect External ElasticsearchОставьте выключенным, чтобы установить плагин хранения журналов внутри платформы.
      Component installation SettingsLocalVolume: Локальное хранилище, данные журналов будут сохраняться в локальном пути хранения выбранного узла. Преимущество этого метода заключается в том, что компонент журналов напрямую привязывается к локальному хранилищу, устраняя необходимость доступа к хранилищу по сети и обеспечивая более высокую производительность хранения.
      StorageClass: Динамическое создание ресурсов хранения с использованием StorageClass для хранения данных журналов. Преимущество этого метода — более высокая гибкость; когда для всего кластера определено несколько StorageClass, администраторы могут выбирать соответствующий StorageClass для компонентов журналов в зависимости от сценариев использования, снижая влияние отказа узла на хранилище. Однако производительность StorageClass может зависеть от таких факторов, как пропускная способность сети и задержка, и для обеспечения высокой доступности хранилища он полагается на механизмы избыточности, предоставляемые backend хранилища.
      Retention PeriodМаксимальный срок, в течение которого журналы, события и audit-данные могут храниться в кластере. Данные, превышающие срок хранения, будут автоматически очищены.
      Совет: Вы можете создать резервную копию данных, которые необходимо хранить длительное время. Если вам нужна помощь, обратитесь в службу технической поддержки.
    4. Нажмите Install.

    Установка Alauda Container Platform Log Storage with ElasticSearch через 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.

    2. Создайте 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:
        clusterView:
          isPrivate: "true"
        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

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

    Field pathDescription
    metadata.labels.cpaas.io/cluster-nameИмя целевого кластера, в который устанавливается плагин.
    metadata.nameВременное имя ModuleInfo; платформа переименует его после создания.
    spec.config.clusterView.isPrivateПараметр видимости для cluster view.
    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Срок хранения audit-данных, в днях.
    spec.config.ttl.eventСрок хранения event-данных, в днях.
    spec.config.ttl.logKubernetesСрок хранения Kubernetes-журналов, в днях.
    spec.config.ttl.logPlatformСрок хранения platform-журналов, в днях.
    spec.config.ttl.logSystemСрок хранения system-журналов, в днях.
    spec.config.ttl.logWorkloadСрок хранения workload-журналов, в днях.
    spec.versionУказывает версию плагина для установки; должна совпадать с .spec.version в ModuleConfig.

    3. Проверьте установку

    Поскольку имя 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: Последняя доступная версия для установки

    Установка Alauda Container Platform Log Storage with Clickhouse через консоль

    1. Перейдите в App Store Management > Cluster Plugin и выберите целевой кластер.

    2. На вкладке Plugins нажмите кнопку действия справа от Alauda Container Platform Log Storage with Clickhouse > Install.

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

      ParameterDescription
      Component installation SettingsLocalVolume: Локальное хранилище, данные журналов будут сохраняться в локальном пути хранения выбранного узла. Преимущество этого метода заключается в том, что компонент журналов напрямую привязывается к локальному хранилищу, устраняя необходимость доступа к хранилищу по сети и обеспечивая более высокую производительность хранения.
      StorageClass: Динамическое создание ресурсов хранения с использованием StorageClass для хранения данных журналов. Преимущество этого метода — более высокая гибкость; когда для всего кластера определено несколько StorageClass, администраторы могут выбирать соответствующий StorageClass для компонентов журналов в зависимости от сценариев использования, снижая влияние отказа узла на хранилище. Однако производительность StorageClass может зависеть от таких факторов, как пропускная способность сети и задержка, и для обеспечения высокой доступности хранилища он полагается на механизмы избыточности, предоставляемые backend хранилища.
      Retention PeriodМаксимальный срок, в течение которого журналы, события и audit-данные могут храниться в кластере. Данные, превышающие срок хранения, будут автоматически очищены.
      Совет: Вы можете создать резервную копию данных, которые необходимо хранить длительное время. Если вам нужна помощь, обратитесь в службу технической поддержки.
    4. Нажмите Install.

    Установка Alauda Container Platform Log Storage with Clickhouse через 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.

    2. Создайте ModuleInfo

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

    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:
          storageClassConfig:
            type: LocalVolume
            name: ""
          clickhouse:
            resources:
              limits:
                cpu: "2"
                memory: 4Gi
              requests:
                cpu: 200m
                memory: 256Mi
            k8sNodes:
              - xxx.xxx.xxx.xx
            hostpath: /cpaas/data/clickhouse
            nodeReplicas: 1
            nodeStorageSize: 200
            type: single
          razor:
            resources:
              limits:
                cpu: "2"
                memory: 1Gi
              requests:
                cpu: 10m
                memory: 256Mi
          vector:
            resources:
              limits:
                cpu: "4"
                memory: 1Gi
              requests:
                cpu: 10m
                memory: 256Mi
        ttl:
          audit: 180
          event: 180
          logKubernetes: 7
          logPlatform: 7
          logSystem: 7
          logWorkload: 7

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

    Field pathDescription
    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.storageClassConfig.typeТип хранилища для данных ClickHouse: LocalVolume или StorageClass.
    spec.config.components.storageClassConfig.nameИмя StorageClass, если тип — StorageClass; для LocalVolume оставьте пустым.
    spec.config.components.clickhouse.resourcesЗапросы/лимиты ресурсов для ClickHouse.
    spec.config.components.clickhouse.k8sNodesСписок IP-адресов узлов для ClickHouse при использовании LocalVolume.
    spec.config.components.clickhouse.hostpathЛокальный путь для данных ClickHouse при использовании LocalVolume.
    spec.config.components.clickhouse.nodeReplicasКоличество реплик при использовании StorageClass.
    spec.config.components.clickhouse.nodeStorageSizeРазмер хранилища для данных ClickHouse (Gi).
    spec.config.components.clickhouse.typeРазмер кластера: single, normal или big.
    spec.config.components.razor.resourcesЗапросы/лимиты ресурсов для Razor.
    spec.config.components.vector.resourcesЗапросы/лимиты ресурсов для Vector.
    spec.config.ttl.auditСрок хранения audit-данных, в днях.
    spec.config.ttl.eventСрок хранения event-данных, в днях.
    spec.config.ttl.logKubernetesСрок хранения Kubernetes-журналов, в днях.
    spec.config.ttl.logPlatformСрок хранения platform-журналов, в днях.
    spec.config.ttl.logSystemСрок хранения system-журналов, в днях.
    spec.config.ttl.logWorkloadСрок хранения workload-журналов, в днях.
    spec.versionУказывает версию плагина для установки; должна совпадать с .spec.version в ModuleConfig.

    3. Проверьте установку

    Поскольку имя 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: Последняя доступная версия для установки

    Установка плагина Alauda Container Platform Log Collector через консоль

    1. Перейдите в App Store Management > Cluster Plugin и выберите целевой кластер.

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

    3. Выберите Storage Cluster (в котором установлен Alauda Container Platform Log Storage) и нажмите Select/Deselect, чтобы задать типы журналов, включаемые в область сбора в кластере.

    4. Нажмите Install.

    Установка плагина Alauda Container Platform Log Collector через 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.

    2. Создайте 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
        storage:
          type: Elasticsearch
      version: v4.1.0

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

    Field pathDescription
    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Имя кластера хранения, в который отправляются журналы.
    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Собирать system-журналы.
    spec.config.dataSource.workloadСобирать workload-журналы.
    spec.config.storage.typeElasticsearch или Clickhouse.
    spec.versionВерсия плагина для установки.

    3. Проверьте установку

    Поскольку имя 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