设置先决条件
InfluxDB Clustered 需要以下先决条件的外部依赖项
- kubectl 命令行工具
- Kubernetes 集群
- kubecfg kubit operator
- Kubernetes Ingress 控制器
- 对象存储:AWS S3 或 S3 兼容存储(包括 Google Cloud Storage 或 Azure Blob Storage),用于存储 InfluxDB Parquet 文件。
- PostgreSQL 兼容数据库(AWS Aurora,托管 PostgreSQL 等):存储 InfluxDB Catalog。
- 本地或附加存储:存储 InfluxDB Ingesters 的预写日志 (WAL)。
以下步骤将引导您完成准备这些先决条件的过程。
- 安装 kubectl
- 设置您的 Kubernetes 集群
- 安装 kubecfg kubit operator
- 设置 Kubernetes Ingress 控制器
- 设置您的对象存储
- 设置您的 PostgreSQL 兼容数据库
- 设置本地或附加存储
安装 kubectl
Kubernetes 提供了 kubectl
命令行工具,用于与 Kubernetes 集群的控制平面进行通信。kubectl
用于管理您的 InfluxDB 集群。
按照说明在本地计算机上安装 kubectl
InfluxDB Clustered 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 容器注册表,或者,如果在 air-gapped 环境中运行,则可以访问您可以在其中复制 InfluxDB 镜像的本地容器注册表。
集群规模建议
作为生产工作负载的起点,InfluxData 建议 InfluxDB Clustered 组件采用以下规模
- Catalog (PostgreSQL 兼容数据库) (x1)
- Ingesters 和 Routers (x3)
- EC2 m6i.2xlarge (8 CPU, 32 GB RAM)
- 本地存储:至少 2 GB(高速 SSD)
- Queriers (x3)
- EC2 m6i.2xlarge (8 CPU, 32 GB RAM)
- Compactors (x1)
- EC2 m6i.2xlarge (8 CPU, 32 GB RAM)
- Kubernetes 控制平面 (x1)
- EC2 t3.large (2 CPU, 8 GB RAM)
- Catalog (PostgreSQL 兼容数据库) (x1)
- Ingesters 和 Routers (x3)
- GCE c2-standard-8 (8 CPU, 32 GB RAM)
- 本地存储:至少 2 GB(高速 SSD)
- Queriers (x3)
- GCE c2-standard-8 (8 CPU, 32 GB RAM)
- Compactors (x1)
- GCE c2-standard-8 (8 CPU, 32 GB RAM)
- Kubernetes 控制平面 (x1)
- GCE c2d-standard-2 (2 CPU, 8 GB RAM)
- Catalog (PostgreSQL 兼容数据库) (x1)
- Ingesters 和 Routers (x3)
- Standard_D8s_v3 (8 CPU, 32 GB RAM)
- 本地存储:至少 2 GB(高速 SSD)
- Queriers (x3)
- Standard_D8s_v3 (8 CPU, 32 GB RAM)
- Compactors (x1)
- Standard_D8s_v3 (8 CPU, 32 GB RAM)
- Kubernetes 控制平面 (x1)
- Standard_B2ms (2 CPU, 8 GB RAM)
- Catalog (PostgreSQL 兼容数据库) (x1)
- CPU:4-8 核
- RAM:16-32 GB
- Ingesters 和 Routers (x3)
- CPU:8 核
- RAM:32 GB
- 本地存储:2 GB(高速 SSD)
- Queriers (x3)
- CPU:8 核
- RAM:32 GB
- Compactors (x1)
- CPU:8 核
- RAM:32 GB
- Kubernetes 控制平面 (x1)
- CPU:2 核
- RAM:8 GB
您的规模可能需要根据您的环境、云提供商和工作负载而有所不同,但这对于您的初始测试来说是一个合理的起始规模。
安装 kubecfg kubit operator
kubecfg kubit
operator(由 InfluxData 维护)简化了 InfluxDB Clustered 包的安装和管理。它管理用于安装、管理和更新 InfluxDB 集群的 jsonnet 模板的应用。
InfluxDB Clustered Helm chart 包括 kubit operator
如果使用 InfluxDB Clustered Helm chart 部署您的 InfluxDB 集群,则无需单独安装 kubit operator。Helm chart 安装 kubit operator。
使用 kubectl
安装 kubecfg kubit operator v0.0.18 或更高版本。
kubectl apply -k 'https://github.com/kubecfg/kubit//kustomize/global?ref=v0.0.19'
设置 Kubernetes Ingress 控制器
Kubernetes ingress 将 HTTP/S 请求路由到集群内的服务,并且需要部署 ingress controller。您可以提供自己的 ingress,也可以安装 Nginx Ingress Controller 以使用 InfluxDB 定义的 ingress。
InfluxDB Clustered 组件使用 gRPC/HTTP2 协议。如果使用外部负载均衡器,您可能需要在负载均衡器上显式启用这些协议。
设置您的对象存储
InfluxDB Clustered 支持 AWS S3 或 S3 兼容存储(包括 Google Cloud Storage、Azure Blob Storage 和 MinIO),用于存储 InfluxDB Parquet 文件。请参阅您的对象存储提供商的文档,以获取有关设置对象存储的信息
* 此列表不代表所有与 InfluxDB Clustered 兼容的 S3 兼容对象存储。其他 S3 兼容对象存储也应该可以工作。
对象存储建议
我们强烈建议以下操作
启用对象版本控制
在您的对象存储中启用对象版本控制。请参阅您的对象存储提供商的文档,以获取有关启用对象版本控制的信息。
在单独的命名空间中或 Kubernetes 外部运行对象存储
在与 InfluxDB 分开的命名空间中或完全在 Kubernetes 外部运行对象存储。这样做可以更轻松地管理 InfluxDB 集群,并有助于防止意外数据丢失。虽然可以将所有内容部署在同一命名空间中,但我们不建议在生产环境中使用。
配置对象存储权限
确保您用于连接到 S3 兼容对象存储的身份具有正确的权限,以允许 InfluxDB 执行所需的所有操作。
要使用 MinIO 配置权限,请使用 AWS 访问策略示例。
设置您的 PostgreSQL 兼容数据库
InfluxDB Catalog 存储与您的时间序列数据相关的元数据,需要 PostgreSQL 或 PostgreSQL 兼容数据库(AWS Aurora,托管 PostgreSQL 等)。安装和设置 PostgreSQL 兼容数据库的过程取决于您使用的数据库和数据库提供商。请参阅您的数据库或提供商的文档,以了解如何设置 PostgreSQL 兼容数据库。
PostgreSQL 兼容数据库要求
- PostgreSQL 版本13 或 14。
- 至少 4 GB 内存或等效的提供商特定单元。
- 为避免冲突并防止与其他应用程序共享使用导致的问题,请确保您的 PostgreSQL 兼容实例专用于 InfluxDB。
我们强烈建议在与 InfluxDB 分开的命名空间中或完全在 Kubernetes 外部运行 PostgreSQL 兼容数据库。这样做可以更轻松地管理 InfluxDB 集群,并有助于防止意外数据丢失。
虽然可以将所有内容部署在同一命名空间中,但我们不建议在生产环境中使用。
设置本地或附加存储
InfluxDB Ingester 需要本地或附加存储来存储预写日志 (WAL)。附加存储的读取和写入速度会影响 Ingester 的写入性能,因此存储设备速度越快,您的写入性能就越好。建议的本地存储最小大小为 2 gibibytes (2Gi
)。
本地或附加存储的安装和设置取决于您的底层硬件或云提供商。请参阅您的提供商的文档,以获取有关安装和配置本地存储的信息。
此页面是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB Clustered 和本文档的反馈和错误报告。要获得支持,请使用以下资源
具有年度合同或支持合同的客户可以联系 InfluxData 支持。