k8s使用cephfs动态存储

本文档介绍了如何在kubernetes(k8s)集群中配置CephFS作为动态存储解决方案。首先,需要创建一个包含base64编码的ceph.client.admin.keyring的secret。接着,定义storageclass,确保provisioner字段设置为kubernetes.io/rbd。对于adminId和userId,可以使用已有的admin角色或创建具有相应权限的新用户。adminSecretName应指向管理员使用的ceph-secret-admin,而adminSecretNamespace则默认为default,如更改则需更新yaml文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考https://github.com/kubernetes-incubator/external-storage/tree/master/ceph/cephfs

# 官方没有cephfs动态卷支持
# 使用社区提供的cephfs-provisioner
kubectl create ns cephfs
#部署Provisioner 
# yaml文件 https://github.com/kubernetes-incubator/external-storage/tree/master/ceph/cephfs/deploy/rbac
NAMESPACE=cephfs
sed -r -i "s/namespace: [^ ]+/namespace: $NAMESPACE/g" ./rbac/*.yaml
sed -r -i "N;s/(name: PROVISIONER_SECRET_NAMESPACE.*\n[[:space:]]*)value:.*/\1value: $NAMESPACE/" ./rbac/deployment.yaml
kubectl -n $NAMESPACE apply -f ./rbac
#检查pod 的状态是否正常
 kubectl get pods -n cephfs
     NAME                                  READY   STATUS    RESTARTS   AGE
     cephfs-provisioner-7bf7d44886-wvjz8   1/1     Running   0          4h13m

创建secret。在s

<think>好的,我现在需要回答用户关于Kubernetes中使用ceph-csi持久化存储和传统ceph持久化存储的区别的问题。首先,我得先确认自己对这两个概念的理解是否正确,然后整理出它们的主要差异点。 用户提到的ceph持久化存储,可能是指Kubernetes中原生的Ceph存储方式,比如通过RBD(RADOS Block Device)或CephFS来提供持久卷。而ceph-csi则是Container Storage Interface的插件,专门用于在容器编排系统中管理存储。我需要明确两者的架构、使用方式以及功能上的不同。 首先,传统的Ceph持久化存储可能是指直接使用Kubernetes的in-tree插件,比如配置PV/PVC时指定RBD或CephFS。这种方式需要用户手动创建存储卷,或者在StorageClass中配置provisioner为kubernetes.io/rbd或kubernetes.io/cephfs。但这种in-tree的插件在Kubernetes后续版本中可能被弃用,转而推荐使用CSI驱动。 然后,ceph-csi属于CSI的实现,遵循CSI标准,提供了更标准的接口和功能。CSI的设计目的是让存储提供商能够独立开发插件,而不需要将代码合并到Kubernetes的主干代码中。这样,更新和维护会更方便,也支持更多高级功能,比如快照、克隆、扩容等。 接下来,我需要比较两者的主要区别: 1. **架构设计**:传统方式使用in-tree插件,与Kubernetes核心代码耦合;而ceph-csi是外部的CSI驱动,解耦了Kubernetes核心,更符合现代插件标准。 2. **功能支持**:ceph-csi可能支持更多CSI标准的功能,比如卷快照、扩容、拓扑感知等,而传统方式可能功能有限,或者需要更高版本的Kubernetes才能支持部分功能。 3. **部署和维护**:传统方式可能需要更多手动配置,比如在节点上安装ceph-common工具,而ceph-csi通过容器化部署,可能更易于管理,减少了宿主机依赖。 4. **兼容性和未来支持**:随着Kubernetes的发展,in-tree插件可能会逐步被废弃,转而推荐CSI驱动,因此ceph-csi可能更具长期支持的优势。 另外,需要考虑到权限管理和多租户的支持。ceph-csi可能提供更细粒度的访问控制,比如通过存储类中的参数指定不同的ceph池或用户,而传统方式可能需要手动配置secret,并且在多租户场景下可能不够灵活。 还有动态供应的差异。传统方式虽然也能动态供应,但配置可能较为繁琐,而ceph-csi通过StorageClass的参数配置,可能更灵活,支持更多的定制选项。 可能还需要提到性能方面的考量,不过通常CSI驱动和传统方式在性能上不会有显著差异,更多是在功能和维护性上的区别。但如果有特定优化,比如ceph-csi的某些版本对块设备或文件系统的性能优化,这也需要查证。 另外,快照和克隆功能在CSI中通常是标准化的,而在传统方式中可能需要额外的步骤或工具来实现,或者可能不支持某些操作。 总结下来,我应该将区别分为几个主要点,每个点详细说明两者的不同,并举例说明应用场景,帮助用户理解何时选择哪种方案。同时,需要注意用词准确,避免技术错误,比如确保RBD和CephFS的正确引用,以及CSI驱动的工作机制是否准确。 可能还需要检查最新的Kubernetes和Ceph CSI文档,确认是否有新的变化,比如Kubernetes版本对in-tree插件的支持状态,或者ceph-csi新增的功能特性。例如,从Kubernetes v1.23开始,某些in-tree插件已被移除,因此用户如果使用较新版本的Kubernetes,可能必须转向CSI驱动。 最后,组织这些信息,以结构清晰的方式呈现,分点列出区别,并给出使用场景的建议,帮助用户根据自身需求选择合适的方案。</think>Kubernetes中使用**Ceph-CSI持久化存储**与**传统Ceph持久化存储(如RBD/CephFS in-tree插件)**的主要区别如下: --- ### 1. **架构设计** - **Ceph-CSI**: - 基于**CSI(Container Storage Interface)标准**实现,是独立的插件,与Kubernetes核心代码解耦。 - 通过DaemonSet和Sidecar容器部署,无需在宿主机安装`ceph-common`等工具。 - **传统Ceph存储(in-tree插件)**: - 依赖Kubernetes原生内置的`RBD`或`CephFS`驱动(代码与Kubernetes核心耦合)。 - 需在节点上安装Ceph客户端工具(如`rbd`命令),增加了运维复杂性。 --- ### 2. **功能支持** - **Ceph-CSI**: - 支持**卷快照**、**克隆**、**动态扩容**、**拓扑感知**等高级功能。 - 提供**多租户隔离**(通过不同Ceph用户和存储池)。 - 兼容**块存储(RBD)**和**文件存储CephFS)**。 - **传统Ceph存储**: - 功能有限(如早期版本不支持卷扩容)。 - 快照和克隆功能需手动操作,或依赖外部工具。 --- ### 3. **部署与维护** - **Ceph-CSI**: - 容器化部署,与Kubernetes生命周期一致,升级更简单。 - 通过`StorageClass`参数灵活配置存储池、密钥等。 - **传统Ceph存储**: - 需手动管理节点依赖(如Ceph客户端工具)。 - 配置复杂(需在PV/PVC中指定`monitors`、`secret`等)。 --- ### 4. **兼容性与未来支持** - **Ceph-CSI**: - 是Kubernetes官方推荐的CSI实现,长期支持更有保障。 - 支持新版本Kubernetes(如v1.23+已弃用部分in-tree插件)。 - **传统Ceph存储**: - 随Kubernetes版本升级,in-tree插件逐步被废弃(如RBD/CephFS插件已标记为废弃)。 --- ### 5. **权限与多租户** - **Ceph-CSI**: - 支持为不同租户分配独立的Ceph用户和存储池,安全性更高。 - 通过`Secret`动态注入凭据,减少敏感信息暴露。 - **传统Ceph存储**: - 通常共享同一Ceph用户,权限隔离能力较弱。 --- ### 使用场景建议 - **选择Ceph-CSI**: - 需要动态卷扩容、快照、多租户隔离等高级功能。 - 使用较新的Kubernetes版本(≥v1.20)。 - 希望减少宿主机依赖,简化运维。 - **选择传统Ceph存储**: - 仅需基础块/文件存储功能,且使用旧版本Kubernetes(需兼容in-tree插件)。 - 已有稳定运维流程,短期内无法迁移到CSI。 --- ### 总结 | **对比维度** | **Ceph-CSI** | **传统Ceph存储(in-tree)** | |--------------------|---------------------------------------|-----------------------------------| | 架构 | CSI标准,独立插件 | 与Kubernetes核心耦合 | | 高级功能 | 支持快照、克隆、扩容等 | 功能有限 | | 部署维护 | 容器化,无宿主机依赖 | 需安装Ceph客户端工具 | | 多租户支持 | 灵活隔离(用户/存储池) | 隔离能力弱 | | 长期兼容性 | 官方推荐,未来支持稳定 | 逐步废弃 | 建议优先选择**Ceph-CSI**,尤其是新集群或需要长期维护的场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值