安装

本章介绍如何安装以下日志插件: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

Console

  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 组件的 nodeselector。使用此参数选择 Logging 组件所在的节点。该参数主要用于基础设施节点。
spec.valuesOverride.ait/chart-alauda-log-api.global.tolerations可选。Logging 组件的 tolerations。如果 node selector 选择了带污点的节点,请使用此参数指定污点容忍的 key、value 和 effect。该参数主要用于基础设施节点。
  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

Console

  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 和内存 requests/limits。
    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 basic auth 的 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 Master 的节点 IP 列表(仅大规模场景且使用 LocalVolume 时)。
spec.config.components.elasticsearch.masterReplicasElasticsearch Master 的副本数(仅大规模场景)。
spec.config.components.elasticsearch.masterResourcesElasticsearch Master 的资源 requests/limits(仅大规模场景)。
spec.config.components.elasticsearch.masterStorageSizeElasticsearch Master 的存储大小(仅大规模场景)。
spec.config.components.elasticsearch.nodeReplicasElasticsearch Data 的副本数。
spec.config.components.elasticsearch.nodeStorageSizeElasticsearch Data 的存储大小(Gi)。
spec.config.components.elasticsearch.resourcesElasticsearch Data 的资源 requests/limits。
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 主从通信端口,默认 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,则设置为该类名称。
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 组件的 nodeselector。使用此参数选择 Logging 组件所在的节点。该参数主要用于基础设施节点。
spec.valuesOverride.ait/chart-alauda-log-center.global.tolerations可选。Logging 组件的 tolerations。如果 node selector 选择了带污点的节点,请使用此参数指定污点容忍的 key、value 和 effect。该参数主要用于基础设施节点。
  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

Console

如果您计划将 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 Selectors显示在 Advanced Configuration 中。为 ClickHouse 存储插件工作负载配置插件级 node selector 规则。
    Node Tolerations显示在 Advanced Configuration 中。为 ClickHouse 存储插件工作负载配置插件级 toleration 规则。
    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 存储插件工作负载的插件级 toleration 规则。
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 凭据和端点信息的 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 的资源 requests/limits。
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 的资源 requests/limits。
spec.config.components.vector.resourcesVector 的资源 requests/limits。
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 节点上,请在安装或升级期间配置插件级调度规则。

  • 在 Console 中,使用 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 Plugin

Console

  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/data/nevermore。此设置在安装后无法更改。
  4. 点击 Install

YAML

  1. 查看可用版本

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


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

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.nevermore.storageSpec.dataDirLog Collector 本地工作数据的存储路径。使用绝对路径。此字段在安装后无法更改。
spec.config.storage.typeElasticSearchClickHouse
spec.version要安装的插件版本。
spec.valuesOverride.ait/chart-alauda-log-agent.global.nodeSelector可选。Logging 组件的 nodeSelector。使用此参数为 Logging 组件选择节点。此参数主要用于基础设施节点。
spec.valuesOverride.ait/chart-alauda-log-agent.global.tolerations可选。Logging 组件的 tolerations。如果 node selector 选择了带污点的节点,请使用此参数指定 taint toleration 的 key、value 和 effect。此参数主要用于基础设施节点。
  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.0.12          v4.0.12           v4.0.12