在 Debian 上部署 Kubernetes 的存储选型与落地
一、选型总览
二、方案对比与适用场景
| 方案 | 访问模式 | 部署复杂度 | 数据保护 | 典型场景 | 备注 |
|---|---|---|---|---|---|
| EmptyDir | 节点本地临时 | 极低 | 无 | 缓存、临时目录 | Pod 删除即清空 |
| HostPath | 节点本地目录 | 低 | 节点级 | 单节点调试、本地日志 | 不具备跨节点调度能力 |
| NFS | RWO/RWX | 低-中 | 依赖服务器与网络 | 共享配置、内容、归档 | 建议配高可用 NFS 服务器 |
| Ceph(Rook) | RWO/RWX | 中-高 | 多副本/纠删码 | 数据库、有状态服务 | 动态供给、快照/备份 |
| Longhorn | RWO | 中 | 副本/备份 | 轻量有状态、边缘/小型集群 | 易运维、界面化管理 |
| GlusterFS | RWO/RWX | 中-高 | 副本/分散 | 大文件、吞吐型 | 可配 Heketi 动态供给 |
| iSCSI | RWO | 中 | 依赖后端阵列 | 对接 SAN/NAS | 需节点安装 iSCSI Initiator |
三、快速上手示例
NFS 静态供给(适合入门与共享存储)
sudo apt-get update
sudo apt-get install -y nfs-kernel-server
sudo mkdir -p /data/nfs
echo "/data/nfs *(rw,sync,no_subtree_check)" | sudo tee -a /etc/exports
sudo exportfs -ra
sudo systemctl enable --now nfs-kernel-server
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
nfs:
server: <NFS_SERVER_IP>
path: /data/nfs
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
GlusterFS 动态供给(适合大文件与多副本)
# 导入 GPG 与源(示例为 Debian 11)
wget -O - https://download.gluster.org/pub/gluster/glusterfs/9/rsa.pub | apt-key add -
echo "deb https://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/11/amd64/apt bullseye main" \
| sudo tee /etc/apt/sources.list.d/gluster.list
sudo apt-get update && sudo apt-get install -y glusterfs-server
sudo systemctl enable --now glusterd
# 在任一节点探测对端建立集群
sudo gluster peer probe <node2-ip>
sudo gluster peer probe <node3-ip>
Rook Ceph(适合生产级高可用与丰富数据服务)
sudo apt-get update && sudo apt-get install -y ceph-common
四、生产落地建议