《Kubernetes Rook-Ceph 运维手册 v1.0(生产版)》- 第十一章:Rook-Ceph 升级、扩容与生命周期管理

本章目标:

  • 建立 Rook-Ceph 生产升级标准流程
  • 实现 Ceph 集群平滑扩容
  • 降低升级过程中业务风险
  • 支撑大规模 Kubernetes 存储平台生命周期管理

适用场景:

  • Rook-Ceph 小规模集群
  • GPU/K8s AI计算集群
  • 企业私有云平台
  • 多租户 Kubernetes 平台

11.1 Rook-Ceph 生命周期管理总览

生产环境生命周期:

复制代码
                 初始部署

                    |

                    v

              日常运维

                    |

        +-----------+-----------+

        |                       |

      扩容                    升级


        |                       |

        v                       v


 增加节点/磁盘          Rook升级


        |                       |


        +-----------+-----------+

                    |

                    v

              架构演进


                    |

                    v


              灾难迁移

11.2 升级前生产检查

升级前必须确认:

Ceph状态

复制代码
ceph -s

要求:

复制代码
HEALTH_OK

PG active+clean

禁止升级:

复制代码
HEALTH_ERR

检查OSD

复制代码
ceph osd tree

要求:

复制代码
all up/in

检查PG

复制代码
ceph pg stat

正常:

复制代码
active+clean

检查Kubernetes

复制代码
kubectl get node

要求:

复制代码
Ready

检查Rook

复制代码
kubectl -n rook-ceph get pod

要求:

所有:

复制代码
Running

11.3 Rook升级策略

Rook组件:

复制代码
rook-ceph-operator

        |

        |

CephCluster CR

        |

        |

Ceph Daemon

MON/MGR/OSD

升级顺序:

复制代码
1. Rook Operator

        |

2. CRD

        |

3. Ceph版本

        |

4. CSI

        |

5. 验证业务

11.4 Rook Operator升级

查看当前版本

复制代码
kubectl -n rook-ceph \
get deploy rook-ceph-operator \
-o yaml | grep image

例如:

复制代码
rook/ceph:v1.14.5

11.4.1 修改Operator版本

编辑:

复制代码
kubectl edit deployment \
rook-ceph-operator \
-n rook-ceph

修改:

复制代码
image:
 rook/ceph:v1.15.0

或者:

复制代码
kubectl set image deployment \
rook-ceph-operator \
rook-ceph-operator=rook/ceph:v1.15.0 \
-n rook-ceph

检查:

复制代码
kubectl rollout status \
deployment/rook-ceph-operator \
-n rook-ceph

11.5 CRD升级

查看:

复制代码
kubectl get crd | grep ceph

例如:

复制代码
cephclusters.ceph.rook.io

升级:

复制代码
kubectl apply -f crds.yaml

验证:

复制代码
kubectl get crd cephclusters.ceph.rook.io

11.6 Ceph版本升级

例如:

旧:

复制代码
Ceph Quincy 17.x

升级:

复制代码
Ceph Reef 18.x

11.6.1 修改Ceph镜像

查看:

复制代码
kubectl -n rook-ceph \
get cephcluster \
-o yaml

找到:

复制代码
spec:
  cephVersion:
    image:

修改:

复制代码
cephVersion:
  image:
    quay.io/ceph/ceph:v18.2.0

查看:

复制代码
kubectl -n rook-ceph get pod

升级顺序:

复制代码
MON

 ↓

MGR

 ↓

OSD

 ↓

CSI

11.7 Ceph升级监控

查看:

复制代码
ceph versions

示例:

复制代码
ceph version 18.2.0

查看:

复制代码
ceph -s

升级期间:

允许:

复制代码
HEALTH_WARN

不允许:

复制代码
HEALTH_ERR

11.8 升级失败处理

场景

OSD升级失败:

复制代码
CrashLoopBackOff

查看:

复制代码
kubectl logs \
rook-ceph-osd-x \
-n rook-ceph

回滚:

恢复旧镜像:

复制代码
cephVersion:
 image:
 quay.io/ceph/ceph:v17

检查:

复制代码
ceph -s

11.9 Kubernetes版本升级兼容

推荐顺序:

复制代码
Kubernetes

        |

        |

Rook

        |

        |

Ceph

不要:

复制代码
K8s升级

+

Ceph升级

+

Rook升级

同时进行

11.10 OSD扩容

常见场景:

  • 容量不足
  • IOPS不足
  • AI训练增长

11.10.1 新增磁盘

节点:

复制代码
lsblk

例如:

新增:

复制代码
/dev/sdc
8TB

11.10.2 配置CephCluster

查看:

复制代码
kubectl edit cephcluster \
rook-ceph \
-n rook-ceph

添加:

复制代码
storage:
 nodes:

 - name: node04

   devices:

   - name: sdc

Rook自动:

复制代码
发现磁盘

↓

创建OSD

↓

加入CRUSH

11.11 新增存储节点

架构:

原:

复制代码
node1 OSD
node2 OSD
node3 OSD

新增:

复制代码
node4

步骤:

1. 加入K8s

复制代码
kubectl get node

2. 标签

复制代码
kubectl label node node4 \
storage=true

3. 修改CephCluster

添加节点:

复制代码
nodes:

- name: node4

  devices:

  - name: sdb

检查:

复制代码
ceph osd tree

11.12 MON扩容

生产:

推荐:

复制代码
3 MON

大型:

复制代码
5 MON

查看:

复制代码
ceph mon stat

修改:

复制代码
mon:
 count: 5

验证:

复制代码
ceph quorum_status

11.13 MGR扩容

推荐:

复制代码
2 MGR

查看:

复制代码
ceph mgr stat

增加:

复制代码
mgr:
 count: 2

11.14 Pool扩容

增加PG

查看:

复制代码
ceph osd pool get rbd pg_num

修改:

复制代码
ceph osd pool set rbd \
pg_num 256

注意:

生产环境:

不要一次扩大10倍


推荐:

复制代码
128

↓

256

↓

512

11.15 存储容量扩容规划

容量计算:

公式:

复制代码
实际容量 =
磁盘容量
×
(1/副本数)
×
利用率安全系数

例:

复制代码
100TB RAW

副本3

安全80%

=


100TB /3 ×80%

≈26TB

11.16 在线替换磁盘

场景:

坏盘更换


标记out

复制代码
ceph osd out osd.5

删除

复制代码
ceph osd purge 5 \
--yes-i-really-mean-it

替换

插入新盘:

复制代码
lsblk

Rook重新创建OSD


11.17 大规模集群扩容

推荐:

每次:

复制代码
10%-20%

扩容


不要:

一次增加:

复制代码
100个OSD

原因:

  • PG重平衡压力
  • 网络压力
  • recovery影响业务

11.18 Ceph Rebalance控制

查看:

复制代码
ceph -s

降低恢复压力:

复制代码
ceph config set osd \
osd_max_backfills 1

提高恢复速度:

复制代码
ceph config set osd \
osd_max_backfills 5

生产建议:

业务高峰:

复制代码
降低恢复

业务低峰:

复制代码
提高恢复

11.19 版本升级演练流程

生产推荐:

测试环境

复制代码
升级Rook

↓

升级Ceph

↓

验证PVC

↓

压力测试

生产环境

步骤:

复制代码
1. 备份

2. 健康检查

3. 升级Operator

4. 升级Ceph

5. 验证

6. 业务切换

7. 观察24小时

11.20 自动化运维建议

推荐:

Ansible管理:

目录:

复制代码
rook-ceph-ops/

├── upgrade/

├── scale/

├── backup/

├── health-check/

└── disaster-recovery/

示例:

健康检查:

复制代码
- name:
  ceph health check

  shell:
    ceph -s

11.21 生产生命周期管理清单

项目 周期
健康检查 5分钟
容量检查 每天
备份验证 每天
恢复演练 季度
版本升级 半年
硬件评估 年度

11.22 生产升级检查表

项目 完成
Ceph HEALTH_OK
PG active+clean
备份完成
升级窗口确认
回滚方案
监控开启
业务验证

11.23 推荐生产架构

复制代码
                 Kubernetes

                     |

               Rook Operator

                     |

          +----------+----------+

          |                     |

       Ceph MON              Ceph MGR

          |

          |

       Ceph OSD

          |

 +--------+---------+

 |                  |

 NVMe              HDD


          |

          |

     Backup Platform

          |

          |

     Disaster Center
相关推荐
あ-1 小时前
《Kubernetes Rook-Ceph 运维手册 v1.0(生产版)》- 第十章:Rook-Ceph 安全加固与生产合规
ceph
あ-6 小时前
《Kubernetes Rook-Ceph 运维手册 v1.0(生产版)》- 第七章:Rook-Ceph 生产故障案例库
ceph
あ-10 小时前
Proxmox Ceph 集群故障排查手册
ceph
あ-10 小时前
《Kubernetes Rook-Ceph 运维手册 v1.0(生产版)》- 第八章:Rook-Ceph 性能优化与生产调优
ceph
RobinDevNotes5 天前
Palmier Pro:AI时代的Mac视频编辑器
人工智能·ceph·macos·ai·音视频·视频编辑·mcp
bgy666615 天前
Ceph 分布式存储完整实战指南:架构、部署与全场景运维
分布式·ceph·架构
SLD_Allen15 天前
Ceph配置RDMA和GPUDirect支持的具体技术方案
ceph·rdma·gpudirect
2401_8346369916 天前
Ceph 分布式存储从入门到精通:架构解析 + cephadm 部署 + 存储池管理
ceph
吾皇斯巴达19 天前
ceph index-less桶可以用radosgw-admin bucket rm吗
ceph