安装

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

日志的部分组件较为消耗资源。建议通过插件配置将其调度到 infra 节点上运行。各插件的具体调度字段有所不同。如果您正在评估产品且尚未准备 infra 节点,可以移除这些设置,使组件在所有节点上运行。

有关规划 infra 节点的指导,请参见 集群节点规划

Alauda Container Platform Log Storage 插件可以安装在任意集群中,日志采集可以选择任意集群的日志存储组件来对接存储数据。

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

  • 按范围分离日志存储。在 global 集群中部署日志存储,用于存储 global 集群自身的日志,使 global 集群独立采集、存储和查询自身日志。将业务集群的应用日志集中存储到专用的日志存储业务集群,而不是 global 集群,这样 global 集群故障不会影响基于日志的应用问题排查,应用日志负载也不会影响管理集群。

  • 如果 global 集群部署了容灾,请勿将业务集群的日志发送到主 global 集群或备 global 集群。容灾仅同步 global 集群的 etcd 数据,并排除 cpaas-system 等命名空间,因此日志数据不会复制到备集群。每个 global 集群仅存储和查询自身日志,切勿使用另一集群的日志存储;否则故障切换后应用日志将不可用。有关同步范围,请参见 Global 集群容灾

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

  • 每个网络区域至少部署一个日志存储实例,以便就近汇聚日志,减少跨数据中心的公网流量(公网流量成本高、延迟大)。

  • 为日志存储分配专用节点,避免将日志存储与其他应用或平台组件混部。日志存储需要高 I/O 吞吐量,可能受到干扰影响。

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

Alauda OS 节点上的主机路径

本章中的默认主机路径使用 /cpaas 前缀,这是传统操作系统的布局。Alauda OS 节点是不可变的:仅 /var/cpaas 可写,因此 /cpaas 下的路径在这些节点上无效。

在 Alauda OS 节点上安装日志插件时,请将每个主机路径参数中的 /cpaas 前缀替换为 /var/cpaas

插件参数Alauda OS 上的路径
Alauda Container Platform Log Storage for ClickHouse主机存储路径元数据存储路径,或 spec.config.components.clickhouse.storagePolicy.*.localVolumeSpec.path/var/cpaas/data/clickhouse
Alauda Container Platform Log Storage for Elasticsearch主机存储路径,或 spec.config.components.elasticsearch.hostpath/var/cpaas/data/elasticsearch
Alauda Container Platform Log Collector存储路径,或 spec.config.components.nevermore.storageSpec.dataDir/var/cpaas

请为所选路径配备可在节点重新部署后保留的持久磁盘,并根据计划使用的保留设置确定磁盘容量。请在安装前设置路径,因为部分存储设置安装后无法更改。

安装 Alauda Container Platform Log Essentials

控制台

  1. 导航至 Marketplace > 集群插件,并选择 global 集群。

  2. 单击 Alauda Container Platform Log Essentials 右侧的操作按钮,然后选择 安装

  3. 单击 安装

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 字段参考:

字段路径说明
metadata.labels.cpaas.io/cluster-name安装插件的目标集群名称。
metadata.name临时 ModuleInfo 名称;平台将在创建后重命名。
spec.version指定要安装的插件版本,必须与 ModuleConfig 中的 .spec.version 匹配。
spec.valuesOverride.ait/chart-alauda-log-api.global.nodeSelector可选。日志组件的 nodeSelector。使用此参数为日志组件选择节点。此参数主要用于基础设施节点。
spec.valuesOverride.ait/chart-alauda-log-api.global.tolerations可选。日志组件的 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

控制台

  1. 导航至 Marketplace > 集群插件,并选择目标集群。

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

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

    参数说明
    外部 Elasticsearch保持此开关关闭,以安装平台托管的 Elasticsearch 存储插件。
    size根据目标规模选择 Single NodeSmall ClusterBig Cluster
    存储方式选择 LocalVolumeStorageClass 作为存储后端。
    日志节点使用 LocalVolume 时显示。选择 Elasticsearch 数据节点。
    主机存储路径使用 LocalVolume 时显示。输入 Elasticsearch 数据的主机绝对路径。在 Alauda OS 节点上,使用 /var/cpaas 下的路径,例如 /var/cpaas/data/elasticsearch
    容量为当前数据分区预留存储容量(Gi)。页面将此标签同时用于 Elasticsearch 数据和 Kafka 数据分区。
    日志数据节点资源配置 Elasticsearch 数据节点的 CPU 和内存 requests 及 limits。
    Kafka 节点选择插件使用的 Kafka 节点。
    LogPlatform / LogWorkload / LogSystem / LogKubernetes / Kubernetes Event / Audit日志保留配置(天) 部分按日志类型配置保留天数。
  4. 单击 安装

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 # On Alauda OS nodes: /var/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是否禁用此插件的平台托管存储。安装内置 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 主节点的节点 IP 列表(仅大规模且使用 LocalVolume 时)。
spec.config.components.elasticsearch.masterReplicasElasticsearch 主节点的副本数(仅大规模)。
spec.config.components.elasticsearch.masterResourcesElasticsearch 主节点的资源 requests/limits(仅大规模)。
spec.config.components.elasticsearch.masterStorageSizeElasticsearch 主节点的存储大小(仅大规模)。
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 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可选。日志组件的 nodeSelector。使用此参数为日志组件选择节点。此参数主要用于基础设施节点。
spec.valuesOverride.ait/chart-alauda-log-center.global.tolerations可选。日志组件的 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 节点规划与本地存储布局兼容。有关节点规划的注意事项,请参见 为日志存储规划 Infra 节点

安装 Alauda Container Platform Log Storage for ClickHouse

控制台

如果计划使用 S3 存储 ClickHouse 日志数据或冷数据,请在安装前准备所需的 S3 Secret。完整操作步骤(包括 Secret 格式、HTTPS CA 证书 Secret 以及使用模式)请参见 如何将 S3 存储用于 ClickHouse

  1. 导航至 Marketplace > 集群插件,并选择目标集群。

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

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

    参数说明
    Size根据目标规模选择 Single NodeSmall ClusterBig Cluster
    存储策略控制 ClickHouse 如何存储元数据和日志数据。可选值为 Default存算分离。此设置安装后无法更改。
    存储方式存储策略Default 时显示。可选值为 LocalVolumeStorageClass
    元数据存储类型存储策略存算分离 时显示。可选值为 LocalVolumeStorageClass
    日志节点使用本地存储时显示。在 Default 下,选择在本地存储 ClickHouse 日志数据的节点。在 存算分离 下,选择在本地存储 ClickHouse 元数据的节点。
    主机存储路径存储策略Default存储方式LocalVolume 时显示。默认值:/cpaas/data/clickhouse。在 Alauda OS 节点上,请将其改为 /var/cpaas/data/clickhouse
    元数据存储路径元数据存储类型LocalVolume 时显示。默认值:/cpaas/data/clickhouse。在 Alauda OS 节点上,请将其改为 /var/cpaas/data/clickhouse
    日志副本数当所选存储模式使用 StorageClass 时显示。配置为当前存储分区创建的 ClickHouse 副本数。
    StorageClass存储策略Default存储方式StorageClass 时显示。选择用于 ClickHouse 日志数据的 StorageClass。
    元数据 StorageClass元数据存储类型StorageClass 时显示。选择用于 ClickHouse 元数据的 StorageClass。
    容量存储策略Default 时显示。为 ClickHouse 日志数据预留容量(Gi)。
    元数据容量为 ClickHouse 元数据预留容量(Gi)。页面建议值为 20 Gi
    高级配置用于插件级调度参数的可折叠部分。
    节点选择器高级配置 中显示。为 ClickHouse 存储插件工作负载配置插件级 node selector 规则。
    节点容忍度高级配置 中显示。为 ClickHouse 存储插件工作负载配置插件级 toleration 规则。
    日志数据的 S3存储策略存算分离 时显示。选择已准备好的、用于日志数据存储的 S3 Secret。此设置安装后无法更改。
    Log Platform / Log Workload / Log System / Log Kubernetes / Kubernetes Event / Audit日志保留设置 部分按日志类型配置热数据保留天数。
    冷热分离为 ClickHouse 启用分层存储。启用后,可以为冷数据配置 S3 位置,并按日志类型设置冷数据保留天数。此开关安装后无法更改。
    日志冷数据的 S3启用 冷热分离 时显示。选择已准备好的、用于冷数据存储的 S3 Secret。此设置安装后无法更改。
    Log Platform / Log Workload / Log System / Log Kubernetes / Kubernetes Event / Audit启用 冷热分离 时,冷存储设置部分使用相同的字段名称配置冷数据保留。值为 0 表示该日志类型不转入冷存储。
  4. 单击 安装

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 资源以安装插件。以下示例使用 存算分离 并结合基于 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 # On Alauda OS nodes: /var/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.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存储策略类型。使用 Default 表示标准的本地或 StorageClass 数据存储,使用 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 的资源 requests/limits。
spec.config.components.clickhouse.ttl.audit审计数据在活动 ClickHouse 存储中的保留天数。
spec.config.components.clickhouse.ttl.event事件数据在活动 ClickHouse 存储中的保留天数。
spec.config.components.clickhouse.ttl.logKubernetesKubernetes 日志在活动 ClickHouse 存储中的保留天数。
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 存储插件时,不允许切换 存储策略 类型,也不允许打开或关闭 冷热分离
  • 安装后,仅应调整有效的保留设置,例如热数据或冷数据的保留天数。
  • 要使用此功能,请将 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 节点上,请在安装或升级时配置插件级调度规则。

  • 在控制台中,使用 高级配置 设置 节点选择器节点容忍度
  • 在 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 节点规划与本地存储布局兼容。有关节点规划的注意事项,请参见 为日志存储规划 Infra 节点

安装 Alauda Container Platform Log Collector 插件

控制台

  1. 导航至 Marketplace > 集群插件,并选择目标集群。

  2. 单击 Alauda Container Platform Log Collector 右侧的操作按钮,然后选择 安装

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

    参数说明
    存储集群选择已安装 Alauda Container Platform Log Storage 的集群。
    日志类型单击 选择/取消选择 以设置集群中的日志采集范围。
    存储路径配置 Log Collector 的本地工作数据路径。使用绝对路径。默认值:/cpaas。在 Alauda OS 节点上,请将其改为 /var/cpaas。此设置安装后无法更改。
    Log Collector 资源配置 Log Collector 组件的 CPU 和内存 requests 及 limits。
  4. 单击 安装

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 # On Alauda OS nodes: /var/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-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 工作负载的插件级 toleration 规则。
spec.config.components.nevermore.storageSpec.dataDirLog Collector 本地工作数据的存储路径。使用绝对路径。默认值:/cpaas。此字段安装后无法更改。
spec.config.components.nevermore.log.resources可选。Log Collector 组件的 CPU 和内存 requests / limits。
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