基于主机安装的目录扩容
概述
基于主机安装的 Rainbond 使用 RKE2 作为 Kubernetes 运行时,主要涉及两个重要的存储目录:
- RKE2 数据 目录:
/var/lib/rancher/rke2- 存储 Kubernetes 集群数据、etcd 数据、容器运行时数据等 - Rainbond 数据目录:
/opt/rainbond- 存储 LocalPath StorageClass 数据和本地缓存文件
随着集群使用时间的增长,这些目录可能会占用大量磁盘空间。本文将介绍如何为这些目录扩容存储空间。
扩容场景
- 场景一:全新安装时扩容
- 如果您还未安装 Rainbond,建议在安装前就准备好足够的存储空间。
- 场景二:已安装环境扩容
- 如果您已经安装了 Rainbond,需要通过数据迁移的方式进行扩容。
场景一:全新安装时扩容
1. 准备存储设备
在安装 Rainbond 之前,准备好足够容量的磁盘或分区。
2. 挂载目录
# 假设新磁盘设备为 /dev/sdb1 和 /dev/sdc1
# 格式化磁盘
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdc1
# 创建挂载点
mkdir -p /var/lib/rancher/rke2
mkdir -p /opt/rainbond
# 挂载磁盘
mount /dev/sdb1 /var/lib/rancher/rke2
mount /dev/sdc1 /opt/rainbond
# 设置开机自动挂载
echo "/dev/sdb1 /var/lib/rancher/rke2 ext4 defaults 0 0" >> /etc/fstab
echo "/dev/sdc1 /opt/rainbond ext4 defaults 0 0" >> /etc/fstab
3. 继续正常安装
完成磁盘挂载后,按照正常的安装流程进行 Rainbond 安装。
场景二:已安装环境扩容
注意
在进行目录迁移前,请务必做好数据备份,确保可以随时恢复到原始状态。
扩容关键目录(RKE2 + Rainbond)
1. 准备工作
# 检查当前磁盘使用情况
df -h /var/lib/rancher/rke2
df -h /opt/rainbond
# 准备新的存储设备
# RKE2 数据目录使用 /dev/sdb1
mkfs.ext4 /dev/sdb1
# Rainbond 数据目录使用 /dev/sdc1
mkfs.ext4 /dev/sdc1
2. 清空节点(重要)
在停止 RKE2 服务前,需要先清空节点上的工作负载:
# 设置节点为不可调度状态
kubectl cordon <节点名称>
# 驱逐节点上的所有 Pod(除了 DaemonSet)
kubectl drain <节点名称> --ignore-daemonsets --delete-emptydir-data --force
# 确认节点已清空
kubectl get pods --all-namespaces -o wide | grep <节点名称>
提示
- 如果是单节点集群,此步骤会导致服务中断
- 如果是多节点集群,建议逐个节点进行迁移
- 确保其他节点有足够资源承载被驱逐的工作负载