文档文档

自定义您的集群规模

InfluxDB Clustered 允许您单独扩展集群中的每个组件,因此您可以自定义集群的规模以满足您的工作负载的特定需求。例如,如果您有繁重的写入工作负载,但没有繁重的查询工作负载,则可以垂直水平扩展您的 Router 和 Ingester,以提高您的写入吞吐量和延迟。

默认规模设置

  • 1 个 router:额外的 router 增加了您的集群处理并发写入请求的能力。
  • 3 个 ingester:确保写入路径上的冗余。
  • 1 个 querier:最佳 querier 数量取决于您可能拥有的并发查询数量以及它们执行所需的时间。
  • 1 个 compactor:虽然您可以有多个 compactor,但垂直扩展 compactor(分配更多 CPU 和内存)比水平扩展(增加 compactor 的数量)更有效。
  • 1 个 garbage collector:garbage collector 是一个轻量级进程,仅当您观察到 garbage collector 的资源使用率很高时才需要垂直扩展。garbage collector 无法水平扩展。

默认值为测试提供了一个良好的起点。一旦您的集群启动并运行,并且正在为您的预期工作负载寻找扩展建议,请联系 InfluxData 支持团队,以帮助您根据您的预期工作负载确定合适的规模设置。

自定义规模设置

您的 AppInstance 资源控制 InfluxDB 集群中组件的规模。您可以直接编辑 AppInstance 资源,或者,如果使用 InfluxDB Clustered Helm chart 来管理您的部署,则可以在 values.yaml 中编辑资源设置。

有关具体的扩展建议和指南,请参阅扩展您的集群

使用 Kubernetes,您可以为每个组件定义最小资源和资源限制。

要为您的 InfluxDB 集群使用自定义规模设置,请编辑 myinfluxdb.yml 中以下字段的值。如果省略,您的集群将使用默认规模设置。

  • spec.package.spec.resources
    • ingester
      • requests
        • cpu:分配给 ingester 的最小 CPU 资源单位
        • memory:分配给 ingester 的最小内存资源单位
        • replicas:要配置的 ingester 副本数
      • limits
        • cpu:分配给 ingester 的最大 CPU 资源单位
        • memory:分配给 ingester 的最大内存资源单位
    • compactor
      • requests
        • cpu:分配给 compactor 的最小 CPU 资源单位
        • memory:分配给 compactor 的最小内存资源单位
        • replicas:要配置的 compactor 副本数
      • limits
        • cpu:分配给 compactor 的最大 CPU 资源单位
        • memory:分配给 compactor 的最大内存资源单位
    • querier
      • requests
        • cpu:分配给 querier 的最小 CPU 资源单位
        • memory:分配给 querier 的最小内存资源单位
        • replicas:要配置的 querier 副本数
      • limits
        • cpu:分配给 querier 的最大 CPU 资源单位
        • memory:分配给 querier 的最大内存资源单位
    • router
      • requests
        • cpu:分配给 router 的最小 CPU 资源单位
        • memory:分配给 router 的最小内存资源单位
        • replicas:要配置的 router 副本数
      • limits
        • cpu:分配给 router 的最大 CPU 资源单位
        • memory:分配给 router 的最大内存资源单位
    • garbage-collector
      • requests
        • cpu:分配给 garbage collector 的最小 CPU 资源单位
        • memory:分配给 garbage collector 的最小内存资源单位
      • limits
        • cpu:分配给 garbage collector 的最大 CPU 资源单位
        • memory:分配给 garbage collector 的最大内存资源单位
    • prometheus
      • requests
        • cpu:分配给 prometheus 的最小 CPU 资源单位
        • memory:分配给 prometheus 的最小内存资源单位
      • limits
        • cpu:分配给 prometheus 的最大 CPU 资源单位
        • memory:分配给 prometheus 的最大内存资源单位

查看带有资源请求和限制的 AppInstance 示例

要为您的 InfluxDB 集群使用自定义规模设置,请修改 values.yaml 中的以下字段。如果省略,您的集群将使用默认规模设置。

  • resources
    • ingester
      • requests
        • cpu:分配给 ingester 的最小 CPU 资源单位
        • memory:分配给 ingester 的最小内存资源单位
        • replicas:要配置的 ingester 副本数
      • limits
        • cpu:分配给 ingester 的最大 CPU 资源单位
        • memory:分配给 ingester 的最大内存资源单位
    • compactor
      • requests
        • cpu:分配给 compactor 的最小 CPU 资源单位
        • memory:分配给 compactor 的最小内存资源单位
        • replicas:要配置的 compactor 副本数
      • limits
        • cpu:分配给 compactor 的最大 CPU 资源单位
        • memory:分配给 compactor 的最大内存资源单位
    • querier
      • requests
        • cpu:分配给 querier 的最小 CPU 资源单位
        • memory:分配给 querier 的最小内存资源单位
        • replicas:要配置的 querier 副本数
      • limits
        • cpu:分配给 querier 的最大 CPU 资源单位
        • memory:分配给 querier 的最大内存资源单位
    • router
      • requests
        • cpu:分配给 router 的最小 CPU 资源单位
        • memory:分配给 router 的最小内存资源单位
        • replicas:要配置的 router 副本数
      • limits
        • cpu:分配给 router 的最大 CPU 资源单位
        • memory:分配给 router 的最大内存资源单位
    • garbage-collector
      • requests
        • cpu:分配给 garbage collector 的最小 CPU 资源单位
        • memory:分配给 garbage collector 的最小内存资源单位
      • limits
        • cpu:分配给 garbage collector 的最大 CPU 资源单位
        • memory:分配给 garbage collector 的最大内存资源单位

查看带有资源请求和限制的 values.yaml 示例

应用更改到您的集群

使用 kubectlhelm(如果使用 InfluxDB Clustered Helm chart),将更改应用到您的集群

kubectl apply \
  --filename myinfluxdb.yml \
  --namespace influxdb
helm upgrade \
  influxdata/influxdb3-clustered \
  -f ./values.yml \
  --namespace influxdb

此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

InfluxDB 3 开源版本现已公开发布 Alpha 版

InfluxDB 3 开源版本现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版的一部分。

InfluxDB 3 Core 是我们新的开源产品。它是一个用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何开始使用的更多信息,请查看