安装

本章介绍如何安装以下日志插件:Alauda Container Platform Log EssentialsAlauda Container Platform Log CollectorAlauda Container Platform Log Storage for ClickHouseAlauda Container Platform Log Storage for Elasticsearch

WARNING
  1. global 集群可以查询平台内任意业务集群中存储的日志数据。请确保 global 集群能够访问业务集群的 11780 端口。

  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 插件可以安装在任意集群中,并且可以选择任意集群的日志存储组件用于日志采集,以对接存储数据。

因此,在安装日志存储插件之前,需要规划日志存储组件将要安装的集群和节点。

  • 避免将日志存储插件部署在 global 集群中。应将其部署在业务集群中,以确保管理集群故障不会影响基于日志的问题排查。

  • 优先将日志集中到单个日志存储集群中。如果日志量超过最大容量阈值,则将日志分散到多个存储集群中。

  • 每个网络区域至少部署一个日志存储实例,以便在本地聚合日志,尽量减少跨数据中心的公网流量(这会带来较高的成本和延迟)。

  • 为日志存储专门预留节点,避免将日志存储与其他应用或平台组件共置。日志存储需要较高的 I/O 吞吐量,可能会受到干扰影响。

  • 为日志存储挂载专用 SSD 磁盘,以显著提升性能。

安装 Alauda Container Platform Log Essentials

控制台

  1. 导航到 Marketplace > Cluster Plugins,并选择 global 集群。

  2. 单击 Alauda Container Platform Log Essentials 右侧的操作按钮,选择 Install

  3. 单击 Install

YAML

  1. 查看可用版本

通过检查 global 集群中的 ModulePlugin 和 ModuleConfig 资源,确认该插件已发布:


# 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 字段说明:

Field pathDescription
metadata.labels.cpaas.io/cluster-name要安装插件的目标集群名称。
metadata.name临时的 ModuleInfo 名称;平台会在创建后重命名。
spec.version指定要安装的插件版本,必须与 ModuleConfig 中的 .spec.version 匹配。
spec.valuesOverride.ait/chart-alauda-log-api.global.nodeSelector可选。Logging 组件的 node selector。使用此参数选择 Logging 组件运行的节点。此参数主要用于 infra 节点。
spec.valuesOverride.ait/chart-alauda-log-api.global.tolerations可选。Logging 组件的容忍设置。如果 node selector 选择了带污点的节点,请使用此参数指定污点容忍的 key、value 和 effect。此参数主要用于 infra 节点。
  1. 验证安装

由于 ModuleInfo 名称在创建后会发生变化,请通过 label 定位该资源以查看插件状态和版本:

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

控制台

  1. 导航到 Marketplace > Cluster Plugins,并选择目标集群。

  2. 单击 Alauda Container Platform Log Storage for Elasticsearch 右侧的操作按钮,选择 Install

  3. 参考以下说明配置相关参数。

    ParameterDescription
    External Elasticsearch保持此开关关闭,以安装由平台管理的 Elasticsearch 存储插件。
    size根据目标规模选择 Single NodeSmall ClusterBig Cluster
    Storage Method为存储后端选择 LocalVolumeStorageClass
    Log Node在使用 LocalVolume 时显示。选择 Elasticsearch 数据节点。
    Storage path on host在使用 LocalVolume 时显示。输入 Elasticsearch 数据的主机绝对路径。
    Capacity为当前数据部分预留 Gi 级别的存储容量。页面会将此标签用于 Elasticsearch 数据和 Kafka 数据两个部分。
    Log data nodes resources为 Elasticsearch 数据节点配置 CPU 和内存的请求与限制。
    Kafka Nodes选择插件使用的 Kafka 节点。
    LogPlatform / LogWorkload / LogSystem / LogKubernetes / Kubernetes Event / AuditLog reserve config, in days 部分按日志类型配置保留天数。
  4. 单击 Install

YAML

  1. 查看可用版本

通过检查 global 集群中的 ModulePlugin 和 ModuleConfig 资源,确认该插件已发布:


# 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 字段说明:

Field pathDescription
metadata.labels.cpaas.io/cluster-name要安装插件的目标集群名称。
metadata.name临时的 ModuleInfo 名称;平台会在创建后重命名。
spec.config.self.storage.disabled是否为此插件禁用由平台管理的存储。安装内置 Elasticsearch 存储插件时请保持为 false
spec.config.components.elasticsearch.address外部 Elasticsearch 地址;留空则使用平台安装的 Elasticsearch。
spec.config.components.elasticsearch.basicAuthSecretName外部 Elasticsearch 基本认证的 Secret 名称;平台 Elasticsearch 时留空。
spec.config.components.elasticsearch.hostpathElasticsearch 的数据路径。
spec.config.components.elasticsearch.httpPortElasticsearch HTTP 端口,默认 9200。
spec.config.components.elasticsearch.install是否通过平台安装 Elasticsearch;使用外部 Elasticsearch 时设为 false。
spec.config.components.elasticsearch.k8sNodes使用 LocalVolume 时,Elasticsearch Data 的节点 IP 列表。
spec.config.components.elasticsearch.masterK8sNodesElasticsearch 主节点的节点 IP 列表(仅适用于大规模且使用 LocalVolume 的场景)。
spec.config.components.elasticsearch.masterReplicasElasticsearch 主节点副本数(仅适用于大规模场景)。
spec.config.components.elasticsearch.masterResourcesElasticsearch 主节点的资源请求/限制(仅适用于大规模场景)。
spec.config.components.elasticsearch.masterStorageSizeElasticsearch 主节点的存储大小(仅适用于大规模场景)。
spec.config.components.elasticsearch.nodeReplicasElasticsearch Data 的副本数。
spec.config.components.elasticsearch.nodeStorageSizeElasticsearch Data 的存储大小(Gi)。
spec.config.components.elasticsearch.resourcesElasticsearch Data 的资源请求/限制。
spec.config.components.elasticsearch.tcpPortElasticsearch 集群内部传输端口,默认 9300。
spec.config.components.elasticsearch.typeElasticsearch 集群规模:single/normal/big。
spec.config.components.kafka.address外部 Kafka 地址;留空则使用平台安装的 Kafka。
spec.config.components.kafka.auth是否启用 Kafka 认证,默认 true。
spec.config.components.kafka.basicAuthSecretName外部 Kafka 认证的 Secret 名称;平台 Kafka 时留空。
spec.config.components.kafka.exporterPortKafka Exporter 端口,默认 9308。
spec.config.components.kafka.install是否通过平台安装 Kafka;使用外部 Kafka 时设为 false。
spec.config.components.kafka.k8sNodes使用 LocalVolume 时,Kafka 的节点 IP 列表。
spec.config.components.kafka.portKafka 对外暴露端口,默认 9092。
spec.config.components.kafka.storageSizeKafka 存储大小(Gi)。
spec.config.components.kafka.tls是否为 Kafka 启用 TLS,默认 true。
spec.config.components.kafka.zkElectPortZookeeper 选举端口,默认 3888。
spec.config.components.kafka.zkExporterPortZookeeper Exporter 端口,默认 9141。
spec.config.components.kafka.zkLeaderPortZookeeper leader/follower 通信端口,默认 2888。
spec.config.components.kafka.zkPortZookeeper 客户端端口,默认 2181。
spec.config.components.kibana.install是否安装 Kibana;Kibana 已弃用,请设为 false。
spec.config.components.storageClassConfig.name对于 LocalVolume,通常为 elasticsearch-local-log-sc;对于 StorageClass,设置为该 class 名称。
spec.config.components.storageClassConfig.type存储类型:LocalVolume/StorageClass。
spec.config.components.zookeeper.storageSizeZookeeper 存储大小(Gi)。
spec.config.ttl.audit审计数据的保留天数。
spec.config.ttl.event事件数据的保留天数。
spec.config.ttl.logKubernetesKubernetes 日志的保留天数。
spec.config.ttl.logPlatform平台日志的保留天数。
spec.config.ttl.logSystem系统日志的保留天数。
spec.config.ttl.logWorkload工作负载日志的保留天数。
spec.version指定要安装的插件版本,必须与 ModuleConfig 中的 .spec.version 匹配。
spec.valuesOverride.ait/chart-alauda-log-center.global.nodeSelector可选。Logging 组件的 node selector。使用此参数选择 Logging 组件运行的节点。此参数主要用于 infra 节点。
spec.valuesOverride.ait/chart-alauda-log-center.global.tolerations可选。Logging 组件的容忍设置。如果 node selector 选择了带污点的节点,请使用此参数指定污点容忍的 key、value 和 effect。此参数主要用于 infra 节点。
  1. 验证安装

由于 ModuleInfo 名称在创建后会发生变化,请通过 label 定位该资源以查看插件状态和版本:

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 节点上部署

如果希望 Elasticsearch 存储插件的工作负载运行在专用的 infra 节点上,请使用插件 YAML 配置,而不要在安装后对生成的工作负载进行 patch。

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

控制台

如果计划使用 S3 作为 ClickHouse 日志数据存储或冷数据存储,请在安装前准备好所需的 S3 Secret。有关完整操作步骤,包括 Secret 格式、HTTPS CA 证书 Secret 和使用模式,请参见 How to Use S3 Storage with ClickHouse

  1. 导航到 Marketplace > Cluster Plugins,并选择目标集群。

  2. 单击 Alauda Container Platform Log Storage for ClickHouse 右侧的操作按钮,选择 Install

  3. 参考以下说明配置相关参数。

    ParameterDescription
    Size根据目标规模选择 Single NodeSmall ClusterBig Cluster
    Storage Policy控制 ClickHouse 如何存储元数据和日志数据。可选值为 DefaultSeparation of storage and compute。此设置在安装后无法更改。
    Storage MethodStorage PolicyDefault 时显示。可选值为 LocalVolumeStorageClass
    Metadata Storage TypeStorage PolicySeparation of storage and compute 时显示。可选值为 LocalVolumeStorageClass
    Log Node在使用本地存储时显示。在 Default 模式下,选择本地存储 ClickHouse 日志数据的节点。在 Separation of storage and compute 模式下,选择本地存储 ClickHouse 元数据的节点。
    Storage Path on HostStorage PolicyDefaultStorage MethodLocalVolume 时显示。默认值:/cpaas/data/clickhouse
    Metadata Storage PathMetadata Storage TypeLocalVolume 时显示。默认值:/cpaas/data/clickhouse
    Log Replicas在所选存储模式使用 StorageClass 时显示。配置为活动存储部分创建的 ClickHouse 副本数。
    StorageClassStorage PolicyDefaultStorage MethodStorageClass 时显示。选择用于 ClickHouse 日志数据的 StorageClass。
    Metadata StorageClassMetadata Storage TypeStorageClass 时显示。选择用于 ClickHouse 元数据的 StorageClass。
    CapacityStorage PolicyDefault 时显示。为 ClickHouse 日志数据预留 Gi 级别容量。
    Metadata Capacity为 ClickHouse 元数据预留 Gi 级别容量。页面建议为 20 Gi
    Advanced Configuration可折叠的插件级调度参数区域。
    Node SelectorsAdvanced Configuration 中显示。为 ClickHouse 存储插件的工作负载配置插件级 node selector 规则。
    Node TolerationsAdvanced Configuration 中显示。为 ClickHouse 存储插件的工作负载配置插件级容忍规则。
    S3 for Log DataStorage PolicySeparation of storage and compute 时显示。选择已准备好的用于日志数据存储的 S3 Secret。此设置在安装后无法更改。
    Log Platform / Log Workload / Log System / Log Kubernetes / Kubernetes Event / AuditLog 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. 查看可用版本

通过检查 global 集群中的 ModulePlugin 和 ModuleConfig 资源,确认该插件已发布:


# 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):

Field pathDescription
metadata.nameModuleInfo 名称。建议格式:<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可选。ClickHouse 存储插件工作负载的插件级 node selector 规则。该字段使用插件 API 定义的结构化列表格式。
spec.config.components.tolerations可选。ClickHouse 存储插件工作负载的插件级容忍规则。
spec.config.components.clickhouse.storagePolicy.type存储策略类型。标准本地存储或基于 StorageClass 的数据存储使用 Default;存储与计算分离使用 SSC
spec.config.components.clickhouse.storagePolicy.defaultSpecDefault 存储策略的配置块。使用 defaultSpecsscSpec 其一即可。
spec.config.components.clickhouse.storagePolicy.defaultSpec.dataStorage.type默认策略下的数据存储类型:LocalVolumeStorageClass
spec.config.components.clickhouse.storagePolicy.defaultSpec.dataStorage.size使用默认策略时为 ClickHouse 预留的数据存储大小(Gi)。
spec.config.components.clickhouse.storagePolicy.defaultSpec.dataStorage.localVolumeSpec.nodes默认策略使用 LocalVolume 时,ClickHouse 数据使用的节点 IP 列表。
spec.config.components.clickhouse.storagePolicy.defaultSpec.dataStorage.localVolumeSpec.path默认策略使用 LocalVolume 时,ClickHouse 数据使用的本地路径。
spec.config.components.clickhouse.storagePolicy.defaultSpec.dataStorage.storageClassSpec.name默认策略使用 StorageClass 时,ClickHouse 数据使用的 StorageClass 名称。
spec.config.components.clickhouse.storagePolicy.defaultSpec.dataStorage.storageClassSpec.replicas默认策略使用 StorageClass 时,ClickHouse 数据使用的副本数。
spec.config.components.clickhouse.storagePolicy.sscSpecSSC 存储策略的配置块。使用 defaultSpecsscSpec 其一即可。
spec.config.components.clickhouse.storagePolicy.sscSpec.metaStorage.typeSSC 的元数据存储类型:LocalVolumeStorageClass
spec.config.components.clickhouse.storagePolicy.sscSpec.metaStorage.localVolumeSpec.nodesSSC 使用 LocalVolume 时,ClickHouse 元数据使用的节点 IP 列表。
spec.config.components.clickhouse.storagePolicy.sscSpec.metaStorage.localVolumeSpec.pathSSC 使用 LocalVolume 时,ClickHouse 元数据使用的本地路径。
spec.config.components.clickhouse.storagePolicy.sscSpec.metaStorage.storageClassSpec.nameSSC 使用 StorageClass 时,ClickHouse 元数据使用的 StorageClass 名称。
spec.config.components.clickhouse.storagePolicy.sscSpec.metaStorage.storageClassSpec.replicasSSC 使用 StorageClass 时,ClickHouse 元数据使用的副本数。
spec.config.components.clickhouse.storagePolicy.sscSpec.metaStorage.size为 ClickHouse 预留的元数据容量(Gi)。
spec.config.components.clickhouse.storagePolicy.sscSpec.dataStorage.typeSSC 中 ClickHouse 日志数据的存储类型。目前仅支持 S3
spec.config.components.clickhouse.storagePolicy.sscSpec.dataStorage.s3Spec.credentialscpaas-system 中包含日志数据存储所需 S3 凭证和 endpoint 信息的 Secret 名称。
spec.config.components.clickhouse.tieredPolicy.enabled启用或禁用冷热分离。
spec.config.components.clickhouse.tieredPolicy.coldStorage.type冷数据的存储类型。目前仅支持 S3
spec.config.components.clickhouse.tieredPolicy.coldStorage.s3Spec.credentialscpaas-system 中用于冷数据 S3 存储的 Secret 名称。
spec.config.components.clickhouse.tieredPolicy.coldTTL.audit审计数据转入冷存储前的保留天数。设为 0 可禁用该类型的转移。
spec.config.components.clickhouse.tieredPolicy.coldTTL.event事件数据转入冷存储前的保留天数。设为 0 可禁用该类型的转移。
spec.config.components.clickhouse.tieredPolicy.coldTTL.logKubernetesKubernetes 日志转入冷存储前的保留天数。设为 0 可禁用该类型的转移。
spec.config.components.clickhouse.tieredPolicy.coldTTL.logPlatform平台日志转入冷存储前的保留天数。设为 0 可禁用该类型的转移。
spec.config.components.clickhouse.tieredPolicy.coldTTL.logSystem系统日志转入冷存储前的保留天数。设为 0 可禁用该类型的转移。
spec.config.components.clickhouse.tieredPolicy.coldTTL.logWorkload工作负载日志转入冷存储前的保留天数。设为 0 可禁用该类型的转移。
spec.config.components.clickhouse.resourcesClickHouse 的资源请求/限制。
spec.config.components.clickhouse.ttl.audit活动 ClickHouse 存储中审计数据的保留天数。
spec.config.components.clickhouse.ttl.event活动 ClickHouse 存储中事件数据的保留天数。
spec.config.components.clickhouse.ttl.logKubernetes活动 ClickHouse 存储中 Kubernetes 日志的保留天数。
spec.config.components.clickhouse.ttl.logPlatform活动 ClickHouse 存储中平台日志的保留天数。
spec.config.components.clickhouse.ttl.logSystem活动 ClickHouse 存储中系统日志的保留天数。
spec.config.components.clickhouse.ttl.logWorkload活动 ClickHouse 存储中工作负载日志的保留天数。
spec.config.components.clickhouse.type集群规模:singlenormalbig
spec.config.components.razor.resourcesRazor 的资源请求/限制。
spec.config.components.vector.resourcesVector 的资源请求/限制。
spec.config.components.vector.storage.pathVector 用于临时存储的本地路径。
spec.config.components.vector.storage.size为 Vector 预留的存储大小(Gi)。
spec.version指定要安装的插件版本,必须与 ModuleConfig 中的 .spec.version 匹配。

升级说明:

  • 升级 ClickHouse 存储插件时,不允许切换 Storage Policy 类型,也不允许开启或关闭 Cold and Hot Separate
  • 安装后,只应调整生效的保留设置,例如热数据或冷数据的保留天数。
  • 要使用此能力,请同时将 Alauda Container Platform Log EssentialsAlauda Container Platform Log Storage for ClickHouse 升级到兼容版本。
  • 在灾难恢复场景中,主备 ClickHouse 部署应使用不同的 S3 bucket。
  1. 验证安装

由于 ModuleInfo 名称在创建后会发生变化,请通过 label 定位该资源以查看插件状态和版本:

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 节点上部署

如果希望 ClickHouse 存储插件的工作负载运行在专用的 infra 节点上,请在安装或升级时配置插件级调度规则。

  • 在控制台中,使用 Advanced Configuration 设置 Node SelectorsNode Tolerations
  • 在 YAML 中,设置 spec.config.components.nodeSelectorspec.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 插件

控制台

  1. 导航到 Marketplace > Cluster Plugins,并选择目标集群。

  2. 单击 Alauda Container Platform Log Collector 右侧的操作按钮,选择 Install

  3. 参考以下说明配置相关参数。

    ParameterDescription
    Storage Cluster选择已安装 Alauda Container Platform Log Storage 的集群。
    Log types单击 Select/Deselect 以设置该集群中的日志采集范围。
    Storage Path为 Log Collector 配置本地工作数据路径。请使用绝对路径。默认值:/cpaas。此设置在安装后无法更改。
    Log Collector Resources为 Log Collector 组件配置 CPU 和内存的请求与限制。
  4. 单击 Install

YAML

  1. 查看可用版本

通过检查 global 集群中的 ModulePlugin 和 ModuleConfig 资源,确认该插件已发布:


# 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):

Field pathDescription
metadata.annotations.cpaas.io/display-name插件显示名称。
metadata.annotations.cpaas.io/module-name插件 i18n 名称 JSON 字符串。
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当采集器使用 Elasticsearch 存储插件时,日志推送到的存储集群名称。
metadata.labels.logclickhouse.plugins.cpaas.io/cluster当采集器使用 ClickHouse 存储插件时,日志推送到的存储集群名称。
metadata.name临时的 ModuleInfo 名称;平台会在创建后重命名。
spec.config.crossClusterDependency.logcenter基于 Elasticsearch 的日志存储集群名称。
spec.config.crossClusterDependency.logclickhouse使用 Elasticsearch 存储时设为 null;否则设为 ClickHouse 集群名称。
spec.config.dataSource.audit采集审计日志。
spec.config.dataSource.event采集事件日志。
spec.config.dataSource.kubernetes采集 Kubernetes 日志。
spec.config.dataSource.platform采集平台日志。
spec.config.dataSource.system采集系统日志。
spec.config.dataSource.workload采集工作负载日志。
spec.config.components.nodeSelector可选。Log Collector 工作负载的插件级 node selector 规则。该字段使用插件 API 定义的结构化列表格式。
spec.config.components.tolerations可选。Log Collector 工作负载的插件级容忍规则。
spec.config.components.nevermore.storageSpec.dataDirLog Collector 本地工作数据的存储路径。请使用绝对路径。默认值:/cpaas。此字段在安装后无法更改。
spec.config.components.nevermore.log.resources可选。Log Collector 组件的 CPU 和内存请求/限制。
spec.config.storage.typeElasticSearchClickHouse
spec.version要安装的插件版本。
  1. 验证安装

由于 ModuleInfo 名称在创建后会发生变化,请通过 label 定位该资源以查看插件状态和版本:

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