设置先决条件
InfluxDB 集群版需要以下先决条件的外部依赖项
- kubectl 命令行工具
- Kubernetes 集群
- kubecfg kubit 操作员
- Kubernetes 入口控制器
- 对象存储:AWS S3 或兼容 S3 的存储(包括 Google Cloud Storage 或 Azure Blob Storage),用于存储 InfluxDB Parquet 文件。
- 兼容 PostgreSQL 的数据库 (AWS Aurora,托管 PostgreSQL 等):存储 InfluxDB 目录。
- 本地或附加存储:存储 InfluxDB Ingesters 的 Write-Ahead Log(WAL)。
以下将指导您准备这些先决条件。
- 安装 kubectl
- 设置您的 Kubernetes 集群
- 安装 kubecfg kubit 操作员
- 设置 Kubernetes 入口控制器
- 设置您的对象存储
- 设置您的兼容 PostgreSQL 的数据库
- 设置本地或附加存储
安装 kubectl
Kubernetes 提供了用于与 Kubernetes 集群控制平面通信的 kubectl
命令行工具。 kubectl
用于管理您的 InfluxDB 集群。
按照说明在您的本地计算机上安装 kubectl
InfluxDB 集群版 Kubernetes 部署需要 kubectl
1.27 或更高版本。
设置您的 Kubernetes 集群
部署 Kubernetes 集群。部署过程取决于您的 Kubernetes 环境或 Kubernetes 云提供商。请参阅 Kubernetes 文档 或您云提供商的文档,以获取有关部署 Kubernetes 集群的信息。
确保
kubectl
可以连接到您的 Kubernetes 集群。您的 kubeconfig 文件 定义了集群连接凭证。创建两个命名空间 –
influxdb
和kubit
。使用kubectl create namespace
来创建命名空间kubectl create namespace influxdb && \ kubectl create namespace kubit
在集群中安装一个 ingress 控制器 和一种获取有效 TLS 证书的机制(例如:cert-manager 或手动提供证书 PEM)。要使用特定的 InfluxDB ingress 控制器,安装 Ingress NGINX。
确保您的 Kubernetes 集群可以访问 InfluxDB 容器仓库,或者,如果您在一个隔离环境中运行,一个可以从中复制 InfluxDB 镜像的本地容器仓库。
集群规模推荐
作为生产工作负载的起点,InfluxData 建议以下 InfluxDB 集群组件的规模
- 目录(PostgreSQL 兼容数据库)(x1)
- 摄取器和路由器(x3)
- EC2 m6i.2xlarge(8 CPU,32 GB RAM)
- 本地存储:最小 2 GB(高速 SSD)
- 查询器(x3)
- EC2 m6i.2xlarge(8 CPU,32 GB RAM)
- 压缩器(x1)
- EC2 m6i.2xlarge(8 CPU,32 GB RAM)
- Kubernetes 控制平面(x1)
- EC2 t3.large(2 CPU,8 GB RAM)
- 目录(PostgreSQL 兼容数据库)(x1)
- 摄取器和路由器(x3)
- GCE c2-standard-8(8 CPU,32 GB RAM)
- 本地存储:最小 2 GB(高速 SSD)
- 查询器(x3)
- GCE c2-standard-8(8 CPU,32 GB RAM)
- 压缩器(x1)
- GCE c2-standard-8(8 CPU,32 GB RAM)
- Kubernetes 控制平面(x1)
- GCE c2d-standard-2(2 CPU,8 GB RAM)
- 目录(PostgreSQL 兼容数据库)(x1)
- 摄取器和路由器(x3)
- Standard_D8s_v3(8 CPU,32 GB RAM)
- 本地存储:最小 2 GB(高速 SSD)
- 查询器(x3)
- Standard_D8s_v3(8 CPU,32 GB RAM)
- 压缩器(x1)
- Standard_D8s_v3(8 CPU,32 GB RAM)
- Kubernetes 控制平面(x1)
- Standard_B2ms(2 CPU,8 GB RAM)
- 目录(PostgreSQL 兼容数据库)(x1)
- CPU:4-8 核心
- RAM:16-32 GB
- 摄取器和路由器(x3)
- CPU:8 核心
- RAM:32 GB
- 本地存储:2 GB(高速 SSD)
- 查询器(x3)
- CPU:8 核心
- RAM:32 GB
- 压缩器(x1)
- CPU:8 核心
- RAM:32 GB
- Kubernetes 控制平面(x1)
- CPU:2 核心
- RAM:8 GB
根据您的环境、云提供商和工作负载,您的规模可能需要不同,但这对于初始测试来说是一个合理的起点。
安装 kubecfg kubit 操作员
kubecfg kubit
操作员(由 InfluxData 维护)简化了 InfluxDB 集群包的安装和管理。它管理用于安装、管理和更新 InfluxDB 集群的 jsonnet 模板的应用。
InfluxDB 集群 Helm 图表包含 kubit 操作员
如果您使用 InfluxDB 集群 Helm 图表 来部署您的 InfluxDB 集群,则无需单独安装 kubit 操作员。Helm 图表安装 kubit 操作员。
使用 kubectl
安装 kubecfg kubit 操作员 v0.0.18 或更高版本。
kubectl apply -k 'https://github.com/kubecfg/kubit//kustomize/global?ref=v0.0.19'
设置 Kubernetes 入口控制器
Kubernetes 入口 将 HTTP/S 请求路由到集群内的服务,并需要部署一个 ingress 控制器。您可以使用自己的入口,或者安装 Nginx 入口控制器 来使用 InfluxDB 定义的入口。
InfluxDB 集群组件使用 gRPC/HTTP2 协议。如果使用外部负载均衡器,您可能需要在负载均衡器上明确启用这些协议。
设置您的对象存储
InfluxDB 集群支持 AWS S3 或 S3 兼容的存储(包括 Google Cloud Storage、Azure Blob Storage 和 MinIO)来存储 InfluxDB Parquet 文件。有关设置对象存储的信息,请参阅您对象存储提供商的文档。
* 此列表并不代表所有与 InfluxDB 集群兼容的 S3 兼容对象存储。其他 S3 兼容对象存储也应该可以正常工作。
对象存储推荐
我们 强烈 推荐
启用对象版本控制
在您的对象存储中启用对象版本控制。有关启用对象版本控制的信息,请参阅您对象存储提供商的文档。
在单独的命名空间或Kubernetes外部运行对象存储
在InfluxDB的单独命名空间中运行对象存储,或者完全在Kubernetes外部。这样做可以使InfluxDB集群的管理更简单,并有助于防止意外数据丢失。虽然在同一命名空间中部署一切是可能的,但我们不建议在生产环境中这样做。
配置对象存储权限
确保您用于连接到兼容S3的对象存储的标识具有正确的权限,以便InfluxDB执行所有需要的操作。
要使用MinIO配置权限,请使用示例AWS访问策略。
设置您的兼容 PostgreSQL 的数据库
存储与您的时序数据相关的元数据的InfluxDB目录需要一个PostgreSQL或兼容PostgreSQL的数据库(AWS Aurora,托管PostgreSQL等)。安装和设置您的兼容PostgreSQL数据库的过程取决于您使用的数据库和数据库提供商。请参阅您的数据库或提供商的文档以设置您的兼容PostgreSQL数据库。
兼容PostgreSQL数据库要求
- PostgreSQL版本
13.8–14.6
。 至少4 GB的内存
或等效的提供商特定单位。- 为了避免冲突并防止与其他应用程序共享使用造成的问题,请确保您的兼容PostgreSQL实例仅用于InfluxDB。
我们强烈建议在InfluxDB之外或完全在Kubernetes外部运行兼容PostgreSQL数据库。这样做可以使InfluxDB集群的管理更简单,并有助于防止意外数据丢失。
虽然可以在同一命名空间中部署所有内容,但我们不建议在生产环境中这样做。
设置本地或附加存储
InfluxDB Ingester(Ingestor)需要本地或附加存储来存储写前日志(WAL)。附加存储的读写速度会影响Ingester的写入性能,因此存储设备越快,您的写入性能越好。推荐的最小本地存储大小为2吉字节(2Gi
)。
本地或附加存储的安装和设置取决于您的底层硬件或云服务提供商。请参考您的提供商的文档以获取有关安装和配置本地存储的信息。
这个页面有帮助吗?
感谢您的反馈!