1. 首页 > Rancher教程 > 正文

Rancher教程FG013-Rancher存储类配置与持久化存储实战

本文档风哥主要介绍Rancher存储类配置与持久化存储实战,包括Rancher数据库存储概念、Rancher数据库PVC概念、Rancher数据库StorageClass概念、Rancher数据库存储准备、Rancher数据库存储要求、Rancher数据库存储规划、Rancher数据库配置存储类、Rancher数据库配置PVC、Rancher数据库使用存储、Rancher数据库扩展存储、Rancher数据库备份存储、Rancher数据库迁移存储等内容,风哥教程参考Rancher官方文档存储、PVC、StorageClass等内容,适合运维人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。

Part01-基础概念与理论知识

1.1 Rancher数据库存储概念

Rancher数据库存储是指为Kubernetes集群中的Pod提供持久化存储的能力。Kubernetes支持多种存储类型,如本地存储、网络存储、云存储等。持久化存储可以确保Pod重启或迁移后数据不会丢失。Rancher集成了多种存储驱动,可以方便地配置和管理存储。更多视频教程www.fgedu.net.cn

Rancher数据库存储特点:

  • 持久化:数据持久化存储
  • 动态分配:动态分配存储
  • 多种类型:支持多种存储类型
  • 高可用:支持高可用存储
  • 可扩展:支持存储扩展

1.2 Rancher数据库PVC概念

Rancher数据库PVC(PersistentVolumeClaim)是用户对存储资源的声明。PVC定义了用户需要的存储资源的大小、访问模式等。Kubernetes会根据PVC的声明,自动创建或绑定对应的PV(PersistentVolume)。PVC与Pod的生命周期分离,确保数据的持久性。学习交流加群风哥微信: itpux-com

Rancher数据库PVC特点:

  • 声明式:声明式定义存储
  • 动态绑定:动态绑定PV
  • 访问模式:支持多种访问模式
  • 生命周期:独立于Pod生命周期
  • 可回收:支持回收和重用

1.3 Rancher数据库StorageClass概念

Rancher数据库StorageClass是存储类的定义,用于描述存储的类型、参数、回收策略等。StorageClass可以动态创建PV,简化存储管理。StorageClass支持多种存储驱动,如AWS EBS、Azure Disk、NFS、Ceph等。学习交流加群风哥QQ113257174

Rancher数据库StorageClass特点:

  • 动态创建:动态创建PV
  • 多种驱动:支持多种存储驱动
  • 参数配置:灵活配置参数
  • 回收策略:支持多种回收策略
  • 默认类:可设置默认存储类
风哥提示:Rancher存储可以帮助应用程序持久化数据,确保数据不会丢失。建议使用StorageClass动态创建PV,简化存储管理。学习交流加群风哥QQ113257174

Part02-生产环境规划与建议

2.1 Rancher数据库存储准备

Rancher数据库存储准备:

# Rancher数据库存储准备清单

# 1. Rancher Server准备
– Rancher Server已部署
– Rancher Server可访问
– Rancher Server配置正确

# 2. 存储需求分析
– 确定存储类型
– 确定存储大小
– 确定访问模式
– 确定性能要求

# 3. 存储资源准备
– 本地存储:>= 1TB
– 网络存储:>= 5TB
– 云存储:>= 10TB

# 4. 网络准备
– 网络带宽:>= 1Gbps
– 网络延迟:< 10ms - 端口开放:2049、6443等 # 5. 存储驱动准备 - NFS驱动:nfs-client-provisioner - Ceph驱动:rbd-provisioner - 云驱动:aws-ebs-csi-driver

2.2 Rancher数据库存储要求

Rancher数据库存储要求:

# Rancher数据库存储要求

# 存储类型要求
本地存储:>= 1TB
网络存储:>= 5TB
云存储:>= 10TB

# 存储性能要求
IOPS:>= 5000
吞吐量:>= 500MB/s
延迟:< 10ms # 存储可靠性要求 冗余:>= 3副本
备份:每日备份
恢复:RTO < 1小时,RPO < 15分钟 # 存储访问模式要求 ReadWriteOnce:单节点读写 ReadOnlyMany:多节点只读 ReadWriteMany:多节点读写 # 存储回收策略要求 Retain:保留数据 Delete:删除数据 Recycle:回收数据

2.3 Rancher数据库存储规划

Rancher数据库存储规划:

# Rancher数据库存储规划

# 存储类型规划
应用数据:ReadWriteMany
数据库数据:ReadWriteOnce
日志数据:ReadWriteMany
备份存储:ReadWriteOnce

# 存储大小规划
应用数据:100GB
数据库数据:500GB
日志数据:200GB
备份存储:1TB

# 存储性能规划
应用数据:IOPS >= 1000
数据库数据:IOPS >= 5000
日志数据:IOPS >= 500
备份存储:IOPS >= 100

# 存储类规划
应用存储:fgedu-app-storage
数据库存储:fgedu-db-storage
日志存储:fgedu-log-storage
备份存储:fgedu-backup-storage

生产环境建议:Rancher数据库存储建议根据业务需求选择合适的存储类型和大小。定期检查存储使用情况,及时扩展存储。更多学习教程公众号风哥教程itpux_com

Part03-生产环境项目实施方案

3.1 Rancher数据库配置存储类

3.1.1 Rancher数据库通过Web界面配置存储类

# 通过Web界面配置存储类
# 步骤1:登录Rancher管理界面
# 步骤2:点击”集群” – 选择集群 – 点击”存储” – “存储类”
# 步骤3:点击”创建存储类”按钮
# 步骤4:填写存储类信息:
# 存储类名称:fgedu-app-storage
# 存储类描述:Rancher数据库应用存储类
# 存储驱动:nfs-client
# 存储参数:
# archiveOnDelete: “false”
# 回收策略:Delete
# 步骤5:点击”创建”按钮

# 通过kubectl配置存储类
[root@rancher ~]# cat <
ReclaimPolicy: Delete
VolumeBindingMode: Immediate
Events:

3.2 Rancher数据库配置PVC

3.2.1 Rancher数据库通过Web界面配置PVC

# 通过Web界面配置PVC
# 步骤1:登录Rancher管理界面
# 步骤2:点击”集群” – 选择集群 – 点击”存储” – “持久卷声明”
# 步骤3:点击”创建持久卷声明”按钮
# 步骤4:填写PVC信息:
# PVC名称:fgedu-app-pvc
# PVC描述:Rancher数据库应用PVC
# 命名空间:fgedu-dev
# 存储类:fgedu-app-storage
# 访问模式:ReadWriteMany
# 存储大小:100Gi
# 步骤5:点击”创建”按钮

# 通过kubectl配置PVC
[root@rancher ~]# cat <
Annotations: pv.kubernetes.io/bind-completed: yes
pv.kubernetes.io/bound-by-controller: yes
Finalizers: [kubernetes.io/pvc-protection]
Capacity: 100Gi
Access Modes: RWX
VolumeMode: Filesystem
Used By:
Events:
Type Reason Age From Message
—- —— —- —- ——-
Normal ExternalProvisioning 1m persistentvolume-controller Waiting for a volume to be created, either by external provisioner “fgedu-nfs-storage” or manually
Normal Provisioning 1m fgedu-nfs-storage External provisioner is provisioning volume for claim “fgedu-dev/fgedu-app-pvc”
Normal ProvisioningSucceeded 1m fgedu-nfs-storage Successfully provisioned volume pvc-12345678-90ab-cdef-1234-567890abcdef

3.3 Rancher数据库使用存储

3.3.1 Rancher数据库在Pod中使用PVC

# 创建使用PVC的Pod
[root@rancher ~]# cat <
Annotations:
Status: Running
IP: 10.244.0.5
IPs:
IP: 10.244.0.5
Containers:
fgedu-app:
Container ID: docker://1234567890abcdef
Image: nginx:1.25.3
Image ID: docker-pullable://nginx@sha256:1234567890abcdef
Port: 80/TCP
State: Running
Started: Fri, 10 Apr 2026 10:00:00 +0000
Ready: True
Restart Count: 0
Mounts:
/usr/share/nginx/html from fgedu-data (rw)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
fgedu-data:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: fgedu-app-pvc
ReadOnly: false
Events:
Type Reason Age From Message
—- —— —- —- ——-
Normal Scheduled 1m default-scheduler Successfully assigned fgedu-dev/fgedu-app-pod to fgedu-node1
Normal Pulling 1m kubelet Pulling image “nginx:1.25.3”
Normal Pulled 1m kubelet Successfully pulled image “nginx:1.25.3”
Normal Created 1m kubelet Created container fgedu-app
Normal Started 1m kubelet Started container fgedu-app

# 验证存储挂载
[root@rancher ~]# kubectl exec -n fgedu-dev fgedu-app-pod — df -h
Filesystem Size Used Avail Use% Mounted on
overlay 50G 20G 30G 40% /
tmpfs 64M 0 64M 0% /dev
tmpfs 1.0G 0 1.0G 0% /sys/fs/cgroup
192.168.1.100 100G 1.0G 99G 1% /usr/share/nginx/html
tmpfs 1.0G 0 1.0G 0% /run
tmpfs 1.0G 0 1.0G 0% /tmp

风哥提示:Rancher存储可以帮助应用程序持久化数据,确保数据不会丢失。建议使用StorageClass动态创建PV,简化存储管理。from Rancher视频:www.itpux.com

Part04-生产案例与实战讲解

4.1 Rancher数据库扩展存储

4.1.1 Rancher数据库扩展PVC大小

# 查看当前PVC大小
[root@rancher ~]# kubectl get pvc -n fgedu-dev
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
fgedu-app-pvc Bound pvc-12345678-90ab-cdef-1234-567890abcdef 100Gi RWX fgedu-app-storage 10m

# 扩展PVC大小
[root@rancher ~]# kubectl patch pvc fgedu-app-pvc -n fgedu-dev -p ‘{“spec”:{“resources”:{“requests”:{“storage”:”200Gi”}}}}’
persistentvolumeclaim/fgedu-app-pvc patched

# 查看扩展后的PVC
[root@rancher ~]# kubectl get pvc -n fgedu-dev
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
fgedu-app-pvc Bound pvc-12345678-90ab-cdef-1234-567890abcdef 200Gi RWX fgedu-app-storage 11m

# 验证存储扩展
[root@rancher ~]# kubectl exec -n fgedu-dev fgedu-app-pod — df -h
Filesystem Size Used Avail Use% Mounted on
overlay 50G 20G 30G 40% /
tmpfs 64M 0 64M 0% /dev
tmpfs 1.0G 0 1.0G 0% /sys/fs/cgroup
192.168.1.100 200G 1.0G 199G 1% /usr/share/nginx/html
tmpfs 1.0G 0 1.0G 0% /run
tmpfs 1.0G 0 1.0G 0% /tmp

4.2 Rancher数据库备份存储

4.2.1 Rancher数据库备份PV数据

# 查看PV信息
[root@rancher ~]# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-12345678-90ab-cdef-1234-567890abcdef 200Gi RWX Delete Bound fgedu-dev/fgedu-app-pvc fgedu-app-storage 15m

# 备份PV数据
[root@rancher ~]# kubectl exec -n fgedu-dev fgedu-app-pod — tar czf /tmp/fgedu-backup.tar.gz /usr/share/nginx/html
tar: removing leading ‘/’ from member names

[root@rancher ~]# kubectl cp fgedu-dev/fgedu-app-pod:/tmp/fgedu-backup.tar.gz /tmp/fgedu-backup.tar.gz
tar: Removing leading `/’ from member names

[root@rancher ~]# ls -lh /tmp/fgedu-backup.tar.gz
-rw-r–r– 1 root root 1.0G Apr 10 10:00:00 /tmp/fgedu-backup.tar.gz

# 备份到远程存储
[root@rancher ~]# scp /tmp/fgedu-backup.tar.gz backup@192.168.1.200:/backup/fgedu/
fgedu-backup.tar.gz 100% 1024MB 10.2MB/s 01:40

4.3 Rancher数据库迁移存储

4.3.1 Rancher数据库迁移PVC到新存储类

# 创建新的PVC
[root@rancher ~]# cat <
生产环境建议:Rancher数据库存储建议定期备份数据,确保数据安全。迁移存储时需要充分测试,确保数据完整性。更多视频教程www.fgedu.net.cn

Part05-风哥经验总结与分享

5.1 Rancher数据库存储最佳实践

Rancher数据库存储最佳实践:

  • 合理规划:根据业务需求规划存储类型和大小
  • 动态分配:使用StorageClass动态创建PV
  • 定期备份:定期备份存储数据
  • 性能优化:优化存储性能
  • 监控告警:配置存储监控告警
  • 文档记录:记录存储配置和变更
  • 定期检查:定期检查存储使用情况

5.2 Rancher数据库存储问题排查

Rancher数据库存储问题排查:

# Rancher数据库存储常见问题及解决方案

# 问题1:PVC无法绑定
# 现象:PVC状态为Pending
# 原因:存储类配置错误、存储资源不足、访问模式不匹配
# 解决:
[root@rancher ~]# kubectl get pvc -n fgedu-dev
[root@rancher ~]# kubectl describe pvc fgedu-app-pvc -n fgedu-dev
[root@rancher ~]# kubectl get storageclass
[root@rancher ~]# kubectl get pv

# 问题2:存储挂载失败
# 现象:Pod无法启动,提示挂载失败
# 原因:存储驱动错误、网络不通、权限不足
# 解决:
[root@rancher ~]# kubectl describe pod fgedu-app-pod -n fgedu-dev
[root@rancher ~]# kubectl logs fgedu-app-pod -n fgedu-dev
[root@rancher ~]# kubectl exec -n fgedu-dev fgedu-app-pod — df -h
[root@rancher ~]# kubectl get events -n fgedu-dev

# 问题3:存储扩展失败
# 现象:PVC扩展后大小未改变
# 原因:存储类不支持扩展、存储驱动错误、权限不足
# 解决:
[root@rancher ~]# kubectl get pvc -n fgedu-dev
[root@rancher ~]# kubectl describe pvc fgedu-app-pvc -n fgedu-dev
[root@rancher ~]# kubectl get storageclass
[root@rancher ~]# kubectl describe storageclass fgedu-app-storage

# 问题4:存储性能差
# 现象:存储读写速度慢
# 原因:存储类型不当、网络延迟高、存储资源不足
# 解决:
[root@rancher ~]# kubectl exec -n fgedu-dev fgedu-app-pod — dd if=/dev/zero of=/usr/share/nginx/html/test bs=1M count=1000
[root@rancher ~]# kubectl exec -n fgedu-dev fgedu-app-pod — dd if=/usr/share/nginx/html/test of=/dev/null bs=1M
[root@rancher ~]# kubectl top node
[root@rancher ~]# kubectl top pod -n fgedu-dev

5.3 Rancher数据库存储维护

Rancher数据库存储维护:

# Rancher数据库存储维护建议

# 1. 定期检查
– 检查PVC状态
– 检查PV状态
– 检查存储使用情况
– 检查存储性能

# 2. 定期优化
– 优化存储配置
– 优化存储性能
– 优化存储空间
– 优化存储访问

# 3. 定期备份
– 备份PV数据
– 备份PVC配置
– 备份存储类配置
– 备份存储驱动配置

# 4. 定期清理
– 清理无用PVC
– 清理无用PV
– 清理过期快照
– 清理过期备份

# 5. 定期审计
– 审计存储配置
– 审计存储访问
– 审计存储使用
– 审计操作日志

风哥提示:Rancher存储可以帮助应用程序持久化数据,确保数据不会丢失。建议使用StorageClass动态创建PV,简化存储管理。定期检查存储使用情况,及时扩展存储。学习交流加群风哥微信: itpux-com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息