如何将 S3 存储与 ClickHouse 一起使用
本指南说明如何配置 Alauda Container Platform Log Storage for ClickHouse 使用 S3 存储日志数据。
ClickHouse 支持两种基于 S3 的使用模式:
- 仅 S3:ClickHouse 将日志表数据存储在 S3 中。
- 冷热分离:ClickHouse 将活动数据保留在本地,并根据配置的保留规则将冷数据转移到 S3 中。
开始之前
在目标存储集群的 cpaas-system 命名空间中准备一个 S3 Secret。
该 Secret 必须包含标签 cpaas.io/credentials: S3,因为插件安装页面会通过此标签筛选可选的 S3 凭据。
示例:
Secret 字段说明:
如果 S3 端点使用 https,请为 Alauda Container Platform Log Storage for ClickHouse 额外准备一个 CA 证书 Secret。
该 Secret 必须使用固定名称 clickhouse-ca-certificates,并且必须创建在 cpaas-system 命名空间中。不要更改 Secret 名称、命名空间或键名。仅替换 ca-certificates.crt 中的证书内容。
示例:
HTTPS S3 CA Secret 注意事项:
使用 S3 存储日志数据
在安装 Alauda Container Platform Log Storage for ClickHouse 时,将 Storage Policy 设置为 Separation of storage and compute。
如果要使用仅 S3 模式,请保持 Cold and Hot Separate 关闭。
在此模式下:
- ClickHouse 元数据保留在本地存储或所选的 StorageClass 中。
- ClickHouse 日志表数据存储在 S3 中。
当 ClickHouse 日志数据使用 S3 时,元数据存储性能仍然很重要。
- 尽可能优先为 ClickHouse 元数据存储选择
LocalVolume。 - 如果无法使用
LocalVolume,且元数据必须使用StorageClass,请选择高性能存储后端。 - 作为工程建议,请规划持续高于
200 MiB/s的读写吞吐量,以降低元数据相关性能瓶颈的风险。
安装期间配置以下字段:
启用冷热分离
如果希望 ClickHouse 将活动数据保留在本地,并将冷数据转移到 S3,请在安装期间启用 Cold and Hot Separate。
启用该开关后,请配置:
行为说明:
- 活动数据保留在当前 ClickHouse 存储中。
- 当配置的保留时长到期后,对应数据会转移到冷 S3 存储。
- 值为
0表示该日志类型不会转移到冷存储。
限制和说明
- 当前插件安装流程支持为日志数据存储配置一个 S3 目标,以及为冷存储配置一个 S3 目标。
- S3 凭据必须存储在 Kubernetes Secrets 中。不要在安装记录或截图中以明文形式暴露访问密钥。
- 如果 S3 端点使用
https,还必须在cpaas-system中创建clickhouse-ca-certificatesSecret。仅应自定义ca-certificates.crt中的证书内容。 - 存储策略类型和 Cold and Hot Separate 开关在安装后不能更改。
- 冷数据保留设置可以在安装后调整。
- 此功能不同于 How to Archive Logs to Third-Party Storage 中描述的日志导出或归档方案。归档指南描述的是将日志从平台导出,而本指南描述的是 ClickHouse 的原生存储行为。
- 在灾难恢复场景中,不要将主备 ClickHouse 部署配置为使用同一个 S3 存储桶。
相关主题
- 有关插件安装参数,请参见 Installation。
- 有关项目级冷数据保留设置,请参见 How to Set the Retention Time of Cold Data for a Project。