文档

设置先决条件

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 提供了用于与 Kubernetes 集群控制平面通信的 kubectl 命令行工具。 kubectl 用于管理您的 InfluxDB 集群。

按照说明在您的本地计算机上安装 kubectl

InfluxDB 集群版 Kubernetes 部署需要 kubectl 1.27 或更高版本。

设置您的 Kubernetes 集群

  1. 部署 Kubernetes 集群。部署过程取决于您的 Kubernetes 环境或 Kubernetes 云提供商。请参阅 Kubernetes 文档 或您云提供商的文档,以获取有关部署 Kubernetes 集群的信息。

  2. 确保 kubectl 可以连接到您的 Kubernetes 集群。您的 kubeconfig 文件 定义了集群连接凭证。

  3. 创建两个命名空间 – influxdbkubit。使用 kubectl create namespace 来创建命名空间

    kubectl create namespace influxdb && \
    kubectl create namespace kubit
    
  4. 在集群中安装一个 ingress 控制器 和一种获取有效 TLS 证书的机制(例如:cert-manager 或手动提供证书 PEM)。要使用特定的 InfluxDB ingress 控制器,安装 Ingress NGINX

  5. 确保您的 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执行所有需要的操作。

查看示例AWS S3访问策略

查看Google Cloud Storage的要求

查看Azure Blob Storage的要求

要使用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)。

本地或附加存储的安装和设置取决于您的底层硬件或云服务提供商。请参考您的提供商的文档以获取有关安装和配置本地存储的信息。


这个页面有帮助吗?

感谢您的反馈!


Flux的未来

Flux将进入维护模式。您可以继续像现在一样使用它,而无需对您的代码进行任何更改。

了解更多

InfluxDB v3增强和InfluxDB Clustered现已正式发布

包括更快的查询性能和管理工具在内的新功能推进了InfluxDB v3产品线。InfluxDB Clustered现已正式发布。

InfluxDB v3性能和功能

InfluxDB v3产品线在查询性能方面取得了显著提升,并提供了新的管理工具。这些增强包括用于监控InfluxDB集群健康状况的操作仪表板,InfluxDB云专用中的单点登录(SSO)支持,以及用于令牌和数据库的新管理API。

了解v3的新增强功能


InfluxDB Clustered正式发布

InfluxDB Clustered现已正式发布,为您在自行管理的堆栈中提供了InfluxDB v3的功能。

与我们谈谈InfluxDB Clustered