教程云原生容器编排【免费下载链接】kubernetes-handbookKubernetes 架构与生态从云原生到 AI 原生基础设施的构建指南项目地址https://gitcode.com/gh_mirrors/ku/kubernetes-handbook点击查看免费下载CephFS 是构建在 Ceph 集群之上、兼容 POSIX 标准的分布式文件系统它让 Kubernetes 中的多个 Pod 可以像使用本地目录一样共享读写同一份数据。本文以 practice/cephfs.md 为核心结合仓库中的 Ceph 与存储相关章节系统讲解 CephFS 的组件分工、两种客户端挂载方式的底层调用链以及在 Kubernetes 中以 Volume 形式使用 CephFS 的配置要点帮助你理解并落地 CephFS 这一高可用共享文件存储方案。CephFS 是什么CephFSCeph File System是一个基于 Ceph 集群实现、兼容 POSIX 标准的文件系统。与普通的本地文件系统不同CephFS 不依赖单台服务器上的物理磁盘而是将数据分布在整个 Ceph 集群的多台节点之上从而获得可扩展性与高可用性。在 Ceph 的统一存储体系中CephFS 与另外两种存储形态并列对象存储由 RADOS 直接提供对象读写或通过 radosgwCeph 对象网关暴露与 Amazon S3、OpenStack Swift 兼容的 RESTful API块存储Ceph RBD在 RADOS 对象存储之上实现的薄层通过 Linux 内核模块或 librbd 库访问供虚拟机与容器挂载块设备文件存储CephFS符合 POSIX 的文件系统使用 Ceph 集群存储数据供多客户端以文件目录方式并发访问。关于 Ceph 生态的整体架构RADOS、OSD、Monitor 等组件可参阅仓库中的 Ceph 介绍 一文。核心架构MDS 与 OSD 的分工创建 CephFS 文件系统时需要在 Ceph 集群中额外添加MDSMetadata Server元数据服务器服务。MDS 与 OSD 各司其职组件职责MDS元数据服务器负责处理 POSIX 文件系统中的metadata元数据部分如文件和目录列表、属性、所有权、权限等文件系统操作OSD对象存储守护进程负责实际的数据存储数据部分交由 Ceph 集群中的 OSDs 处理也就是说当客户端对 CephFS 执行ls、stat、chmod、创建/删除目录等操作时请求由 MDS 处理而真正读写文件内容时数据被切分为对象写入各 OSD。MDS 本身也借助 RADOS 对象来存储文件系统元数据与属性。MDS 具有水平扩展能力——可以向集群中增加更多的元数据服务器以支撑更多的文件系统操作客户端。在通过 Helm 部署 Ceph 集群的场景下见 Ceph Helm 安装指南ceph-mds 是独立的部署单元且需要注意若未给节点打上ceph-mdsenabled标签MDS Pod 会一直处于 Pending 状态CephFS 特性也就无法启用。客户端挂载方式内核模块与 FUSECephFS 支持两种客户端加载方式内核模块方式直接使用 Linux 内核内置的 Ceph 文件系统驱动挂载性能更好FUSE 方式通过用户空间文件系统Filesystem in Userspace挂载无需内核模块支持部署更灵活适合内核版本较旧或不允许加载内核模块的环境。无论采用内核模式还是 FUSE 模式其底层调用链是一致的CephFS 客户端内核模块 / FUSE │ ▼ libcephfs 库 —— 负责 CephFS 文件系统层的协议处理 │ ▼ librados 库 —— 负责与 Ceph 集群MON / OSD通信 │ ▼ Ceph 集群RADOS具体而言两种模式都是通过调用libcephfs库来实现 CephFS 文件系统的加载而 libcephfs 库又调用librados库与 Ceph 集群进行通信从而完成 CephFS 的挂载与读写。这也解释了为什么在 Kubernetes 节点上使用 Ceph 相关存储时通常需要安装ceph-common客户端软件包——它提供了 libcephfs、librados 以及rbd、ceph等命令行工具。Kubernetes 中的 CephFS 卷卷类型与访问模式Kubernetes 原生支持cephfs卷类型允许将现有的 CephFS 卷挂载到容器中详见 concepts/volume.md 中的 cephfs 小节。它与emptyDir等临时卷的本质区别在于生命周期emptyDir卷在 Pod 删除时被清除数据随 Pod 消失cephfs卷的内容在删除 Pod 后依然保留卷仅仅是被卸载。这意味着 CephFS 卷可以预先填充数据也可以在多个工作负载之间切换数据。更重要的是CephFS 支持多个写设备同时挂载因此在访问模式上表现突出——根据 concepts/persistent-volume.md 中的插件能力对照表Volume 插件ReadWriteOnceReadOnlyManyReadWriteManyCephFS✓✓✓相比 Ceph RBD仅支持 RWO/ROX不支持多节点同时读写和本地存储CephFS 是少数原生支持ReadWriteManyRWX多节点读/写的分布式存储方案非常适合需要多副本共享写入的场景如内容管理系统、共享工作区、横向扩展的应用数据目录等。卷配置参数使用cephfs卷时Kubernetes 需要访问 Ceph 集群的相关配置。结合 practice/using-ceph-for-persistent-storage.md 中列出的 Ceph 接入配置项挂载 CephFS 卷通常涉及以下参数配置项含义默认值/说明monitorsCeph monitor 列表必填指定连接哪个 Ceph 集群path作为挂载的根路径默认/userRADOS 用户名默认adminsecretFilekeyring 文件路径默认/etc/ceph/user.secretCeph 集群通常提供ceph.client.admin.keyring文件secretRefCeph 认证 secret 的引用配置了该字段将覆盖secretFilereadOnly文件系统是否只读布尔值默认 false以 Pod 直接引用cephfs卷为例其 spec 结构大致为apiVersion: v1 kind: Pod metadata: name: cephfs-pod spec: containers: - name: app image: nginx volumeMounts: - name: cephfs-data mountPath: /mnt/cephfs volumes: - name: cephfs-data cephfs: monitors: - 172.28.7.98:6789 - 172.28.7.99:6789 - 172.28.7.100:6789 path: /kubernetes user: admin secretFile: /etc/ceph/user.secret readOnly: false重要前提使用 CephFS 之前你必须先拥有自己的 Ceph 服务器集群Kubernetes 本身不负责搭建 Ceph。同时所有需要使用 CephFS 的节点上应安装ceph-common客户端并将ceph.conf放置到节点的/etc/ceph目录下。动态供给为什么 CephFS 需要外置 Provisioner在 Kubernetes 的存储体系中StorageClass 决定 PV 的动态供给能力见 concepts/storageclass.md。Kubernetes 内置了一批 internal provisioner名称前缀为kubernetes.io但并非所有卷插件都具备内置供给能力Volume 插件Internal Provisioner说明RBDCeph Block Device✓使用kubernetes.io/rbd即可动态供给CephFS-无内置 provisioner需要安装外置的 provisionerNFS-同样需外置 provisioner这一点在 practice/ceph.md 中亦有明确说明Kubernetes 自带 Ceph RBD 的 internal provisioner可配置动态供给如果要使用 CephFS 作为动态存储提供需要安装外置的 provisioner例如基于 Ceph CSI 驱动的csi-cephfs插件。对于 RBD 的动态供给仓库中提供了完整落地实践使用 rbd-provisioner 提供 rbd 持久化存储 展示了通过外置 provisionerceph.com/rbd解决 kube-controller-manager 容器化部署时缺少rbd命令导致无法动态创建镜像的问题使用 Ceph 做持久化存储创建 MySQL 集群 则给出了使用kubernetes.io/rbd配合 StorageClass 动态创建 PV 的完整流程包括 Ceph secret 生成、StorageClass 参数monitors、adminId、adminSecretName、pool、userId等与 StatefulSet 中volumeClaimTemplates的组合用法。这些参数的组织思路monitors 列表、认证 secret、池/路径指定同样适用于 CephFS 类存储的配置可作为理解动态供给机制的参考。与 RBD 的选型对比同为 Ceph 生态的存储方案CephFS 与 Ceph RBD 的适用场景有明显差异维度CephFSCeph RBD存储形态文件系统POSIX块设备访问模式RWO / ROX / RWX多写RWO / ROX单写多读挂载方式内核模块 / FUSE经 libcephfs → libradosLinux 内核模块 / librbd动态供给需外置 provisioner内置kubernetes.io/rbd典型场景多 Pod 共享读写、共享工作区数据库等单写者块存储场景仓库中的 MySQL Ceph 持久化实践 即采用 RBD 支撑 Galera 多主 MySQL 集群的单节点读写卷而当你需要多个 Pod 同时读写同一份文件数据时CephFS 的多写特性RWX则是更合适的选择。总结CephFS 的核心设计可以概括为三点MDS 管元数据、OSD 管数据的分离架构内核模块与 FUSE 双通道、libcephfs → librados 统一调用链的客户端模型以及RWO/ROX/RWX 全覆盖、支持多写的访问能力。在 Kubernetes 中它作为原生卷类型可直接挂载使用但要注意其动态供给依赖外置 provisioner。部署时请确保集群中存在已就绪的 MDS 服务如通过 Helm 部署时节点需打上ceph-mdsenabled标签并在所有节点安装ceph-common客户端即可为共享读写型工作负载提供稳定可靠的文件级持久化存储。参考文档CephFS 核心介绍Ceph 分布式存储介绍Volume 卷类型cephfs 小节PersistentVolume 持久化卷与访问模式StorageClass 与 Provisioner 能力对照Ceph Helm 安装指南ceph-mds 部署使用 Ceph 做持久化存储创建 MySQL 集群使用 rbd-provisioner 提供 rbd 持久化存储赞分享教程云原生容器编排【免费下载链接】kubernetes-handbookKubernetes 架构与生态从云原生到 AI 原生基础设施的构建指南项目地址https://gitcode.com/gh_mirrors/ku/kubernetes-handbook点击查看免费下载相关推荐Ceph libcephfs Proxy 架构深度解析libcephfs_proxy.so 与 libcephfsd 如何集中化 CephFS 客户端缓存Ceph libcephfs Proxy 架构深度解析libcephfs_proxy.so 与 libcephfsd 如何集中化 CephFS 客户端缓存 导存储分布式文件系统对象存储后端高可用textgen 本地大模型部署3 条路线、4 个调参点跑通只要 10 分钟textgen 本地大模型部署3 条路线、4 个调参点跑通只要 10 分钟 textgen 是一个本地大模型部署的开源项目聊天、看图、调用工具、OpenA人工智能大模型本地部署模型推理服务AI 应用桌面应用工具调用CephFS 日志急救指南cephfs-journal-tool 全面剖析与实战CephFS 日志急救指南cephfs journal tool 全面剖析与实战 当 CephFS 的元数据日志mdlog因异常断电、对象丢失或人为误操作存储分布式文件系统对象存储后端高可用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
5年开发避坑指南:2013061核心考点与最佳实践全解析 5年开发避坑指南:2013061核心考点与最佳实践全解析 面试时被问底层原理答不上来,这种尴尬谁懂? 别慌,这正是大多数转岗从业者卡壳的痛点。 今天拆解2013061的高频考点,帮你把最佳实践装进脑子。 考点梳理:高频问题与岗位差异… · 2026/9/23 19:08:58
避坑指南:员工聘用合同范本图解原理与3大实操雷区 避坑指南:员工聘用合同范本图解原理与3大实操雷区 复制来的合同模板直接发出去,第二天就被法务打回来,甚至被员工投诉?这种“拿来主义”在HR圈子里太常见了。很多人以为合同就是套个格式,改个名字和日期就能用,结果因为一个条款缺失或者表述模糊,导… · 2026/9/23 19:08:52
Hi3559A上YOLOv5 C源码移植实战:NNIE硬件约束与嵌入式部署 简介:本资源是面向计算机、人工智能、物联网等专业学生与工程师的嵌入式AI实战项目,聚焦海思Hisi3559A平台上的YOLOv5算法C语言级移植与部署,解决边缘端目标检测模型落地难、环境适配复杂等实际问题。压缩包共834个文件,涵盖358个… · 2026/9/23 19:08:45
三星手机刷机实战:Odin3救砖与固件刷写全指南 很多人把刷机想象成高风险手术,动一下就可能变砖。实际玩过三星设备的人会告诉你,只要手里有Odin3和一套匹配的官方固件,刷机这事儿反而比你在系统里瞎折腾要稳得多。我说这话是有底气的:手头这台卡在开机LOGO的S10,就… · 2026/9/23 19:50:50
电脑连接打印机速查手册:5种方案横向对比与避坑指南 电脑连接打印机速查手册:5种方案横向对比与避坑指南 刚把网上复制的驱动安装脚本扔进终端,结果报错代码一闪而过,系统托盘里打印机图标灰着不动?这种“复制粘贴即崩溃”的绝望感,我懂。很多人以为连打印机就是插上线、点两下鼠标的事,但在实际运维或开… · 2026/9/23 19:50:36
Kustomize 结构化数据内嵌 JSON/YAML 的定向替换与合并提案(22-03)深度解析 CLI开发工具云原生 【免费下载链接】kustomize Customization of kubernetes YAML configurations 项目地址: https://gitcode.com/gh_mirrors/ku/kustomize 点击查看 免费下载 本文档基于仓库 proposals/22-03-value-in-the-structured-data.md 展开,并… · 2026/9/23 19:50:23
AI Agent技能管理实战:从散装工具到可维护技能体系 写Agent技能管理这个话题,得从一次真实踩坑说起。三个月前,我给自己搭的自动化助手塞了十几个API调用,结果没过两周就乱成一锅粥——有的工具参数格式过时了,有的技能描述写得模糊让模型选错函数,还有几个技能互相冲突… · 2026/9/23 19:50:17
柔性车间调度多目标优化:MOEA/D与NSGA-II的Python实现与对比 柔性车间调度问题(FJSP)是我这几年做生产排产项目时绕不开的一个硬骨头,而 MOEA/D 和 NSGA-II 这两类多目标优化算法,基本就是解决这类问题最主流的两个流派。这篇文章我就用自己的 Python 代码实现过程,把这两种算法怎… · 2026/9/23 19:50:17
AI Coder本地部署实战:Mac上跑通Qwen Coder 1. AI Coder 代码生成现状:这不是未来,而是当下的日常1.1 从"自动补全"到"自动实现",AI Coder 到底进化到了哪一步如果你去年这时候问我"AI Coder 能干什么",我大概会告诉你:能帮你补全… · 2026/9/23 19:50:16
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29