Ceph集群2025(Squid版)快速对接K8S cephFS文件存储

ceph的块存储太简单了。所以不做演示

查看集群

创建一个 CephFS 文件系统
# ceph fs volume create cephfs01
需要创建一个子卷# ceph fs subvolume create cephfs01 my-subvol
-----------------#以下全部自动创建好
# ceph fs ls       
name: cephfs01, metadata pool: cephfs.cephfs01.meta, data pools: [cephfs.cephfs01.data ]# ceph osd pool ls
.mgr
cephfs.cephfs01.meta
cephfs.cephfs01.data

最后配置K8S yaml即可

helm repo add ceph-csi https://ceph.github.io/csi-charts
helm install -n ceph-csi ceph-csi-cephfs ceph-csi-cephfs-3.13.1.tgz -f values.yaml

以下我的yaml参考

# egrep -v "^[[:space:]]*#|^$" values.yaml
---
rbac:create: trueleastPrivileges: true
serviceAccounts:nodeplugin:create: truename:provisioner:create: truename:
csiConfig:- clusterID: "51edffbe-03fd-11f0-8abe-000c29f6d983"monitors:- "172.16.8.100:6789"- "172.16.8.102:6789"- "172.16.8.103:6789"cephFS:subvolumeGroup: "myfsg"  ----你的子卷
encryptionKMSConfig: {}
commonLabels: {}
logLevel: 5
sidecarLogLevel: 1
logSlowOperationInterval: 30s
CSIDriver:fsGroupPolicy: "File"seLinuxMount: false
nodeplugin:name: nodepluginupdateStrategy: RollingUpdatepriorityClassName: system-node-criticalhttpMetrics:enabled: truecontainerPort: 8081service:enabled: trueservicePort: 8080type: ClusterIPannotations: {}clusterIP: ""externalIPs: []loadBalancerIP: ""loadBalancerSourceRanges: []imagePullSecrets: []profiling:enabled: falseregistrar:image:repository: registry.aliyuncs.com/google_containers/csi-node-driver-registrartag: v2.13.0pullPolicy: IfNotPresentresources: {}plugin:image:repository: quay.io/cephcsi/cephcsitag: canarypullPolicy: IfNotPresentresources: {}nodeSelector: {}tolerations: []affinity: {}annotations: {}podSecurityContext: {}podAnnotations: {}kernelmountoptions: ""fusemountoptions: ""
provisioner:name: provisionerreplicaCount: 1strategy:type: RollingUpdaterollingUpdate:maxUnavailable: 50%timeout: 60spriorityClassName: system-cluster-criticalenableHostNetwork: falsehttpMetrics:enabled: truecontainerPort: 8081service:enabled: trueservicePort: 8080type: ClusterIPannotations: {}clusterIP: ""externalIPs: []loadBalancerIP: ""loadBalancerSourceRanges: []imagePullSecrets: []profiling:enabled: falseprovisioner:image:repository: registry.aliyuncs.com/google_containers/csi-provisionertag: v5.1.0pullPolicy: IfNotPresentresources: {}args:extraArgs: []setmetadata: trueresizer:name: resizerenabled: trueimage:repository: registry.aliyuncs.com/google_containers/csi-resizertag: v1.13.1pullPolicy: IfNotPresentresources: {}args:extraArgs: []snapshotter:image:repository: registry.aliyuncs.com/google_containers/csi-snapshottertag: v8.2.0pullPolicy: IfNotPresentresources: {}args:enableVolumeGroupSnapshots: falseextraArgs: []nodeSelector: {}tolerations: []affinity: {}annotations: {}podSecurityContext: {}podAnnotations: {}
selinuxMount: false
storageClass:create: truename: csi-cephfs-scannotations: {}clusterID: 51edffbe-03fd-11f0-8abe-000c29f6d983fsName: cephfs01   ----------------------你的名字pool: "cephfs.cephfs01.data"  fuseMountOptions: ""kernelMountOptions: ""mounter: ""volumeNamePrefix: ""encrypted: ""encryptionKMSID: ""provisionerSecret: csi-cephfs-secretprovisionerSecretNamespace: ""controllerExpandSecret: csi-cephfs-secretcontrollerExpandSecretNamespace: ""nodeStageSecret: csi-cephfs-secretnodeStageSecretNamespace: ""reclaimPolicy: DeleteallowVolumeExpansion: truemountOptions:- _netdev  ------------------重点在这里cephfs必须使用这个参数 块存储 设置为discard 启用 TRIM 功能 文件存储中无效或冗余,可能导致挂载参数冲突(如 CephFS 报错 Invalid argument)
secret:create: truename: csi-cephfs-secretannotations: {}adminID: admin  ###----------这里建议全部使用adminadminKey: AQDDddln7+UvHRAAwZVyl1UEJOpY3fWG2Oev+A==userID: "admin"userKey: "AQDDddln7+UvHRAAwZVyl1UEJOpY3fWG2Oev+A=="
cephconf: |[global]auth_cluster_required = cephxauth_service_required = cephxauth_client_required = cephx
extraDeploy: []
provisionerSocketFile: csi-provisioner.sock
pluginSocketFile: csi.sock
kubeletDir: /var/lib/kubelet
driverName: cephfs.csi.ceph.com
configMapName: ceph-csi-config
externallyManagedConfigmap: false
cephConfConfigMapName: ceph-config
kmsConfigMapName: ceph-csi-encryption-kms-config

下面测试

apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: csi-cephfs-pvc
spec:accessModes:- ReadWriteManyresources:requests:storage: 1GistorageClassName: csi-cephfs-sc
---
apiVersion: v1
kind: Pod
metadata:name: fs-pod
spec:containers:- name: web-serverimage: docker.1ms.run/nginx:alpinevolumeMounts:- name: mypvcmountPath: /usr/share/nginx/htmlvolumes:- name: mypvcpersistentVolumeClaim:claimName: csi-cephfs-pvcreadOnly: false

在这里插入图片描述
默认是开启内核挂载模式的
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/75601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python中数据结构元组详解

在Python中,元组(Tuple)是一种不可变的序列类型,常用于存储一组有序的数据。与列表(List)不同,元组一旦创建,其内容无法修改。本文将详细介绍元组的基本操作、常见运算、内置函数以及…

游戏引擎学习第183天

回顾和今天的计划 我对接下来的进展感到非常兴奋。虽然我们可能会遇到一些问题,但昨天我们差不多完成了将所有内容迁移到新的日志系统的工作,我们正在把一些内容整合进来,甚至是之前通过不同方式记录时间戳的旧平台层部分,现在也…

Spring 如何处理循环依赖

在 Spring 框架里,循环依赖指的是多个 Bean 之间相互依赖,从而形成一个闭环。例如,Bean A 依赖 Bean B,而 Bean B 又依赖 Bean A。Spring 主要通过三级缓存机制来处理循环依赖,下面详细介绍相关内容。 1. 三级缓存的定…

Android开发layer-list

Android开发layer-list 它的用处可以在drawable上进行多图拼接&#xff0c;比如启动页&#xff0c;不想图片被拉伸就这么做。还有做某些线突出来。 示例代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <layer-list xmlns:android&q…

手机测试,工作中学习

要学习各种机型的截图方式、开发模式在哪。 荣耀机型&#xff1a;截图&#xff1a;关节快速敲两下。开发者模式在“系统和更新”里。 1.出现缺陷&#xff0c;需要获取日志。 学习adb生成日志&#xff1a;当测试中出现缺陷的&#xff0c;使用adb logcat -d > d:/log.txt …

OBS虚拟背景深度解析:无需绿幕也能打造专业教学视频(附插件对比)

想要录制教学视频却苦于背景杂乱&#xff1f;本文将手把手教你用OBS实现专业级虚拟背景效果&#xff0c;无需绿幕也能轻松营造沉浸式教学场景。文末附6个提升画面质感的免费背景资源&#xff01; 一、虚拟背景的核心价值&#xff1a;从「教师宿舍」到「虚拟讲堂」的蜕变 我们调…

零基础搭建智能法律知识库!腾讯云HAI实战教程

为什么需要法律知识库&#xff1f; 想象一下&#xff0c;你的所有法律文件都在手边&#xff0c;随时可以搜索和分析。这就是法律知识库的魅力所在。对于法律专业人士、处理大量法律文档的企业&#xff0c;甚至是希望了解法律事项的普通人来说&#xff0c;法律知识库都是一个不…

Rust从入门到精通之进阶篇:19.Rust 生态系统

Rust 生态系统 Rust 拥有一个丰富而活跃的生态系统&#xff0c;提供了各种库和框架来支持不同领域的开发。在本章中&#xff0c;我们将探索 Rust 生态系统中的主要组件&#xff0c;了解常用的库和工具&#xff0c;以及如何在项目中有效地使用它们。 Rust 包管理&#xff1a;C…

前端面试:如何去衡量用户操作过程中否卡顿?

衡量用户在应用中的操作是否卡顿是前端开发中的一个关键任务&#xff0c;涉及用户体验的各个方面。以下是一些常用的方法和工具&#xff0c;可以帮助你有效地评估用户操作中的卡顿情况&#xff1a; 1. 使用性能分析工具 浏览器开发者工具&#xff1a;大多数现代浏览器&#xf…

Python技术栈与数据可视化创意实践详解(三)

Python在数据可视化领域凭借丰富的库和灵活的生态系统&#xff0c;能够实现从基础图表到复杂交互式可视化的全场景覆盖。以下从技术选型、创意实现到实战优化进行系统化解析&#xff0c;并提供可直接落地的代码示例。 一、Python数据可视化技术栈 1. 基础与统计可视化 Matplotl…

订票系统|基于Java+vue的火车票订票系统(源码+数据库+文档)

订票系统目录 基于Springbootvue的火车票订票系统 一、前言 二、系统设计 三、系统功能设计 1会员信息管理 2 车次信息管理 3订票订单管理 4留言板管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍…

Snowflake 算法的实现

snowflake(雪花算法)是一个开源的分布式 ID 生成算法&#xff0c;结果是一个 long 型的 ID。snowflake 算法将 64bit 划分为多段&#xff0c;分开来标识机器、时间等信息&#xff0c;具体组成结构如下图所示&#xff1a; snowflake 算法的核心思想是使用 41bit 作为毫秒数&…

C 语言中, scanf 函数在哪些情况下会结束输入读取:

在 C 语言中&#xff0c; scanf 函数在以下几种情况下会结束输入读取&#xff1a; &#xff1a; 1. 遇到指定格式匹配失败&#xff1a; scanf 按照格式字符串要求读取输入。当输入数据格式与格式字符串不匹配时&#xff0c;就会结束读取。例如 scanf(“%d”, &num) 要求输…

括号合法题

一、括号合法题 2116. 判断一个括号字符串是否有效 //采用从左往右和从右往左遍历的贪心算法&#xff0c;分别保证前缀合法&#xff0c;后缀合法。public boolean canBeValid(String s, String locked) {int ns.length();if (n%21) return false;int num0;// 从左到右扫描&…

图生生AI商品图:一键更换商品,保留原背景

图生生AI商品图工具&#xff0c;推出 “更换商品”功能&#xff0c;只需上传一张参考图和自己的商品图&#xff0c;AI自动完成商品替换&#xff0c;保留原背景&#xff0c;3秒生成专业级电商图&#xff01;无需PS技能&#xff0c;无需复杂操作&#xff0c;真正实现 “一键换商品…

[7-01-03].SpringBoot3集成MinIo

MinIO学习大纲 一、Spingboot整合MinIo 第1步&#xff1a;搭建SpringBoot项目&#xff1a; 第2步&#xff1a;引入minio依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi&q…

Gradle Project import Eclipse

Gradle Project import Eclipse

一些SQL优化经验(非添加索引版)

SQL 优化核心策略 伪代码示例&#xff0c;现实比这个复杂 1. 子查询优化 (1) 避免低效的 IN 和 NOT IN 问题&#xff1a; NOT IN 可能导致全表扫描&#xff0c;尤其是子查询结果集较大时。 优化方案&#xff1a; 替换为 LEFT JOIN&#xff1a; -- 原查询&#xff08;低效&am…

<项目> 高并发服务器的HTTP协议支持

目录 HTTP模块 模块划分与介绍 模块实现 Util模块 HTTPRequest模块 HTTPResponse模块 HTTPContext模块 ParseHttpLine RecvHttpLine RecvHttpHead ParseHttpHead RecvHttpBody 对外接口 HttpServer模块 OnConnected OnMessage Route IsFileHandler FileHandler Dispatcher …

基于Spring Boot + Vue的银行管理系统设计与实现

基于Spring Boot Vue的银行管理系统设计与实现 一、引言 随着金融数字化进程加速&#xff0c;传统银行业务向线上化转型成为必然趋势。本文设计并实现了一套基于Spring Boot Vue的银行管理系统&#xff0c;通过模块化架构满足用户、银行职员、管理员三类角色的核心业务需求…