news 2026/9/1 19:35:28

InfluxDB磁盘空间爆满、数据过期清理管控

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
InfluxDB磁盘空间爆满、数据过期清理管控

InfluxDB磁盘空间爆满、数据过期清理管控

技术栈:Kubernetes v1.32.13 + Rocky Linux 8.6 + InfluxDB 2.7.x + Containerd 1.7.x

操作环境 / 对接原理 / 详细步骤 / 完整命令 / 配置文件 / 验证流程 / 排错方案

InfluxDB磁盘空间爆满、数据过期清理管控

操作环境

  • K8s 集群 3 节点:k8s-master(192.168.1.10), k8s-node1(192.168.1.11), k8s-node2(192.168.1.12),InfluxDB 部署于 K8s 集群中
  • InfluxDB 版本 2.7.x,容器镜像 influxdb:2.7,使用 Containerd 作为容器运行时
  • 持久化存储:已配置 StorageClass,InfluxDB 数据目录 /var/lib/influxdb2 通过 PVC 挂载,预留足够存储空间
  • 节点配置满足业务需求,已配置资源 requests/limits,使用 ConfigMap 挂载配置文件,Secret 加密存储密码
  • 已安装 Helm v3.x 或使用原生 YAML 清单部署,K8s 版本 v1.32.13

对接原理

InfluxDB 容器化部署是将 InfluxDB 以 Pod 形式运行在 K8s 集群中,通过 PVC(PersistentVolumeClaim)实现数据持久化,确保 Pod 重建或迁移后数据不丢失。InfluxDB 容器通过 ConfigMap 挂载配置文件实现配置与镜像分离,通过 Secret 加密存储账号密码。Service 提供稳定的访问入口(ClusterIP 或 NodePort),业务 Pod 通过 Service 域名访问 InfluxDB。Deployment 管理 InfluxDB Pod 生命周期,配合节点亲和性(nodeAffinity)将 InfluxDB 固定在特定节点,避免 Pod 漂移导致性能波动。探针(livenessProbe/readinessProbe)确保服务健康状态自动检测和恢复。

详细步骤

1. 创建命名空间和持久化存储PVC

# 创建命名空间
kubectl create namespace middleware

# 查看可用 StorageClass
kubectl get storageclass

# 创建 PVC
cat > /tmp/influxdb-pvc.yaml << 'EOF'
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: influxdb-data-pvc
namespace: middleware
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
storageClassName: local-storage
EOF
kubectl apply -f /tmp/influxdb-pvc.yaml
kubectl get pvc -n middleware

2. 创建 ConfigMap 挂载 InfluxDB 配置文件

# 创建 ConfigMap
cat > /tmp/influxdb-configmap.yaml << 'EOF'
apiVersion: v1
kind: ConfigMap
metadata:
name: influxdb-config
namespace: middleware
data:
config.yml: |
# InfluxDB 配置文件
# 根据业务需求调整参数
EOF
kubectl apply -f /tmp/influxdb-configmap.yaml
kubectl get configmap -n middleware

3. 创建 Secret 加密存储密码

# 创建 Secret
echo -n 'Root@123456' > /tmp/password
kubectl create secret generic influxdb-secret --namespace=middleware --from-file=password=/tmp/password
rm -f /tmp/password
kubectl get secret -n middleware

4. 创建 Service 提供访问入口

# 创建 Service
cat > /tmp/influxdb-service.yaml << 'EOF'
apiVersion: v1
kind: Service
metadata:
name: influxdb-service
namespace: middleware
labels:
app: influxdb
spec:
type: ClusterIP
ports:
- port: 8086
targetPort: 8086
protocol: TCP
name: influxdb
selector:
app: influxdb
EOF
kubectl apply -f /tmp/influxdb-service.yaml
kubectl get svc -n middleware

5. 创建 Deployment 部署 InfluxDB

# 创建 Deployment
cat > /tmp/influxdb-deploy.yaml << 'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
name: influxdb
namespace: middleware
labels:
app: influxdb
spec:
replicas: 1
selector:
matchLabels:
app: influxdb
strategy:
type: Recreate
template:
metadata:
labels:
app: influxdb
spec:
containers:
- name: influxdb
image: influxdb:2.7
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8086
env:
- name: PASSWORD
valueFrom:
secretKeyRef:
name: influxdb-secret
key: password
resources:
requests:
cpu: "1"
memory: "2Gi"
limits:
cpu: "4"
memory: "8Gi"
volumeMounts:
- name: data
mountPath: /var/lib/influxdb2
- name: config
mountPath: /etc/influxdb2/config.yml
subPath: config.yml
livenessProbe:
tcpSocket:
port: 8086
initialDelaySeconds: 60
periodSeconds: 10
readinessProbe:
tcpSocket:
port: 8086
initialDelaySeconds: 30
periodSeconds: 5
volumes:
- name: data
persistentVolumeClaim:
claimName: influxdb-data-pvc
- name: config
configMap:
name: influxdb-config
EOF
kubectl apply -f /tmp/influxdb-deploy.yaml
kubectl get pods -n middleware -w

6. 验证连接和初始化

# 查看 Pod 状态
kubectl get pods -n middleware -l app=influxdb

# 查看日志
kubectl logs -f $(kubectl get pods -n middleware -l app=influxdb -o jsonpath='{.items[0].metadata.name}') -n middleware

# 集群内通过 Service 访问测试
kubectl run influxdb-client --image=influxdb:2.7 -n middleware --rm -it --restart=Never -- sh -c "echo 连接测试成功"

# 验证持久化
kubectl get pvc influxdb-data-pvc -n middleware

验证流程

# 1. Pod 运行状态
kubectl get pods -n middleware -l app=influxdb
# 预期:STATUS=Running, READY=1/1

# 2. PVC 绑定状态
kubectl get pvc influxdb-data-pvc -n middleware
# 预期:STATUS=Bound

# 3. Service 访问入口
kubectl get svc influxdb-service -n middleware
# 预期:TYPE=ClusterIP, PORT(S)=8086/TCP

# 4. ConfigMap 和 Secret
kubectl get configmap,secret -n middleware | grep influxdb
# 预期:均存在

# 5. 连通性测试
kubectl exec -it $(kubectl get pods -n middleware -l app=influxdb -o jsonpath='{.items[0].metadata.name}') -n middleware -- sh -c "echo test"
# 预期:命令执行成功

# 6. 持久化验证(删除 Pod 后数据保留)
kubectl delete pod $(kubectl get pods -n middleware -l app=influxdb -o jsonpath='{.items[0].metadata.name}') -n middleware
sleep 30
kubectl get pods -n middleware -l app=influxdb
# 预期:Pod 重建后 Running,数据未丢失

排错方案

  • 写入超时:检查并发写入数、batch 大小、磁盘 IO、网络带宽
  • 查询慢:检查时间范围、数据量、索引设计、Flux 查询优化
  • 磁盘爆满:检查保留策略(RP)、分片持续时间、数据过期清理
  • 内存占用高:检查 TSI 索引、缓存配置、并发查询数
  • 数据上报断连:检查网络连通性、Token 权限、Org/Bucket 配置
  • 时序错乱:检查客户端时间同步、时间戳精度、时区配置
  • OOM:检查内存限制、查询并发、数据保留策略、缓存大小
  • 备份恢复失败:检查备份文件完整性、版本兼容性、磁盘空间
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 19:34:27

信号与系统考研波形变换:关键点映射法三步画对x(-2t+1)

信号与系统考研里有一类题&#xff0c;看着基础&#xff0c;丢分率却高得离谱&#xff1a;给你一个原始波形 (x(t))&#xff0c;让你画出 (x(-2t1)) 这种综合变换后的波形。很多同学不是不懂“尺度、时移、反转”三个概念&#xff0c;而是顺序一复杂就画错。有些时候是先平移还…

作者头像 李华
网站建设 2026/9/1 19:33:43

建筑物目标检测数据集 | 建筑物检测 城市规划 遥感解译 目标检测 5012期

建筑物目标检测数据集 | 建筑物检测 城市规划 遥感解译 目标检测 5012期 数据集概述 本数据集专注于建筑物视觉检测&#xff0c;服务于城市规划、遥感解译及地理信息更新。数据源于多样化场景图像&#xff0c;适配建筑物快速提取、城市建成区监测及灾后损毁评估等应用。 数据集…

作者头像 李华
网站建设 2026/9/1 19:32:35

PCIe5.0 交换芯片 IX9104@ACP#AI 服务场景下的互联瓶颈与落地机会

摘要&#xff1a;随着 M6 Mac mini、国产 NPU 推理节点普及&#xff0c;端侧与数据中心 AI 业务对 PCIe 通道数量、P2P 直传、多设备并发的需求持续提升。PCIe 交换芯片作为算力硬件的互联枢纽&#xff0c;很多整机项目的性能瓶颈并非 NPU 算力&#xff0c;而是 PCIe 总线通道不…

作者头像 李华
网站建设 2026/9/1 19:30:41

传说对决8月13日不停机改版:苏离重做与英雄调整深度解析

《傳說對決》8月13日不停机改版已经上线&#xff0c;这次改版最受关注的无疑是苏离重做&#xff0c;同时爱丽丝、刀锋宝贝、莫托斯被削弱&#xff0c;夜姬、克里希获得增强&#xff0c;萨尼和雾己延续了之前的加强趋势。对于经常打排位的玩家来说&#xff0c;版本更新之后不能只…

作者头像 李华
网站建设 2026/9/1 19:30:37

SpringBoot+Vue3个人博客管理系统实战:前后端分离从部署到上线

这次我们来看一个特别适合毕设、简历项目和前后端分离入门的实战项目&#xff1a;基于 SpringBoot Vue3 的个人博客管理系统。这个项目的价值不在于概念多新&#xff0c;而在于它把一条完整的技术链路跑通了&#xff1a;SpringBoot 提供后端 REST API&#xff0c;Vue3 Vite 提…

作者头像 李华
网站建设 2026/9/1 19:29:28

单片机毕业设计-基于 STM32 或 51 单片机的防干烧定量出水饮水装置设计与开发 基于 STM32 或 51 单片机与 WiFi 的智能饮水设备软硬件系统设计(024805)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机&#xff0c;Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华