k8s使用cifs手动创建pv(windows共享存储)

news/2025/11/28 17:10:49/文章来源:https://www.cnblogs.com/xiaoxiaomuyuyu/p/19283432

由于项目需要使用已有的cifs,需要手动创建cifs的pv

在服务器上挂载cifs的命令

yum install cifs-utils -y

mount -t cifs -o   vers=1.0,username=fdcdzh2021,password=Fdcdzh2023 //rdfs.goldwind.com.cn/JJFA /data/api 

新的挂载方式:

mount -t cifs -o   vers=2.0,username=50969,password=Bdyxnjzd0401= //10.1.253.15/jjfa /data/api 

使用nfs不需要安装插件,使用windows的共享文件系统cifs需要安装驱动。kubernetes提供CSI驱动将外部存储提供给pod中使用,我们可以通过CSI驱动对接Samba/CIFS共享文件存储。

github地址https://github.com/kubernetes-csi/csi-driver-smb

1.安装驱动

curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/v1.9.0/deploy/install-driver.sh | bash -s v1.9.0 --

现在这样的安装方式会报错,可以使用拉下代码本地安装的方式

gitclone代码并安装
git clone https://github.com/kubernetes-csi/csi-driver-smb.git
cd csi-driver-smb
git checkout v1.11.0
./deploy/install-driver.sh v1.11.0 local
查看安装进度
kubectl -n kube-system get pod -o wide --watch -l app=csi-smb-controller
kubectl -n kube-system get pod -o wide --watch -l app=csi-smb-node

若镜像被由于墙拉不下来,可以docker search 相关的镜像拉取,然后打tag上传到自己的镜像仓库。安装驱动后就可以使用spec:csi:driver: smb.csi.k8s.io字段了。

 

2.创建cifs的密钥,widonws的共享存储需要认证

kubectl create secret generic smbcreds --from-literal username=USERNAME --from-literal password="PASSWORD"

3.创建pv/pvc

创建pv,其中若建多个cifs  pv需要 volumeHandle: smb-server.default.svc.cluster.local/share## 每次都要不同,可以用share1/2/3等,否则挂载会报错:

mount failed: exit status 32 Mounting command: mount Mounting arguments

apiVersion: v1
kind: PersistentVolume metadata:annotations:pv.kubernetes.io/provisioned-by: smb.csi.k8s.ioname: pv-smb spec:capacity:storage: 100GiaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: RetainstorageClassName: smbmountOptions:- dir_mode=0777- file_mode=0777
- vers=2.0
csi:driver: smb.csi.k8s.ioreadOnly: false# volumeHandle format: {smb-server-address}#{sub-dir-name}#{share-name}# make sure this value is unique for every share in the clustervolumeHandle: smb-server.default.svc.cluster.local/share4##volumeAttributes:source: "//smb-server-address/sharename"nodeStageSecretRef:name: smbcredsnamespace: default

创建pvc

---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: pvc-smb
namespace: wfs-prod spec:accessModes:- ReadWriteManyresources:requests:storage: 10GivolumeName: pv-smbstorageClassName: smb

4.若要使用storage class

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: smb
provisioner: smb.csi.k8s.io
parameters:source: "//smb-server.xxx/share"# if csi.storage.k8s.io/provisioner-secret is provided, will create a sub directory# with PV name under sourcecsi.storage.k8s.io/provisioner-secret-name: "smbcreds"csi.storage.k8s.io/provisioner-secret-namespace: "default"csi.storage.k8s.io/node-stage-secret-name: "smbcreds"csi.storage.k8s.io/node-stage-secret-namespace: "default"
reclaimPolicy: Retain  # available values: Delete, Retain
volumeBindingMode: Immediate
mountOptions:- dir_mode=0777- file_mode=0777- uid=1001- gid=1001

5.将pvc绑定到负载(deployment,pod,daemonset)上

6.遇到的问题

a.报错Input/output error Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)

是因为挂载点有问题,大概是因为Controller在master3节点上,所以需要挂载这个盘的应用只能部署在master3节点上

b.报错special device /var/lib/kubelet/plugins/kubernetes.io/csi/pv/wfs-pv-load04-smb/globalmount does not exist.

是因为这个同一个集群挂的第二个cifs,且在配置的时候,与第一个盘设置的volumeHandle: smb-server.default.svc.cluster.local/share## 一模一样,导致在deploy挂载这个盘之后没有在/var/lib/kubelet/plugins/kubernetes.io/csi/pv/ 下生成新的pv目录wfs-pv-load04-smb 所以找不到目录,此时应该更改一下volumeHandle的值,如设置为smb-server.default.svc.cluster.local/share1## 之后就可正常使用。

c.报错mount error(5): Input/output error Refer to the mount.cifs(8) manual page (e.g. man mount.cif end 1

查看服务器/var/log/message日志,显示

 No dialect specified on mount. Default has changed to a more secure dialect, SMB2.1 or later (e.g. SMB3), from CIFS (SMB1). To use the less secure SMB1 dialect to access old servers which do not support SMB3 (or SMB2.1) specify vers=1.0 on mount.

是因为cifs的版本不对,默认version为1,需要在pv创建是指定

mountOptions:- vers=2.0

 版本升级

从csi-driver-smb v1.11升级到v1.16配置文件不用动 只用更新镜像,从24年很多镜像源都不能用了,找到一个docker.imgdb.de镜像源,使用时需要在镜像名前加docker.imgdb.de,如:

docker pull docker.imgdb.de/registry.k8s.io/sig-storage/livenessprobe:v2.13.1

 

v1.11.0与v1.16.0版本镜像

v1.11.0
csi-smb-node.yaml
registry.k8s.io/sig-storage/livenessprobe:v2.3.0    
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.2.0
mcr.microsoft.com/k8s/csi/smb-csi:v1.1.0
csi-smb-controller.yaml 
registry.k8s.io/sig-storage/csi-provisioner:v2.1.0
registry.k8s.io/sig-storage/livenessprobe:v2.3.0(node中已有)
mcr.microsoft.com/k8s/csi/smb-csi:v1.1.0(node中已有)v1.16.0
csi-smb-node.yaml
registry.k8s.io/sig-storage/livenessprobe:v2.13.1
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.11.1
registry.k8s.io/sig-storage/smbplugin:v1.16.0
csi-smb-controller.yaml 
registry.k8s.io/sig-storage/csi-provisioner:v5.0.2
registry.k8s.io/sig-storage/livenessprobe:v2.13.1(node中已有)
registry.k8s.io/sig-storage/smbplugin:v1.16.0 (node中已有)

 

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

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

相关文章

2025年室内体育馆运动地胶生产厂家权威推荐榜单:定制运动地板/室外地胶‌/网红场馆‌源头厂家精选

在体育产业高质量发展与全民健身设施升级的推动下,室内体育馆运动地胶凭借其减震防护、耐磨防滑、环保稳定等特性,成为各类体育场馆的地面优选。行业数据显示,专业运动地胶能有效降低运动损伤风险,提升运动表现。为…

IDEA+MyBatis实现增删改查(2)

IDEA+MyBatis实现增删改查(2)原文链接:IDEA+MyBatis实现增删改查(2) – 每天进步一点点0.前言 上一篇文章已经实现了IDEA+MyBatis基础环境的搭建: IDEA+MyBatis实现动态SQL的增删改查1 – 每天进步一点点 (longkui.s…

2025 年常州家政服务机构最新推荐榜,技术实力与市场口碑深度解析:全品类服务品牌测评正规月嫂 / 老人护理 / 育儿照料 / 白班保姆 / 钟点工 / 家政保洁服务公司推荐

引言 随着家庭服务需求的品质升级与企业后勤标准化诉求的提升,家政服务市场规模持续扩大,但服务非标准化、人员资质存疑等问题仍未完全解决。为精准筛选优质品牌,本次测评联合国际家政服务协会(IHS)及艾媒咨询(i…

IDEA 2024版如何创建Spring Boot项目

IDEA 2024版如何创建Spring Boot项目原文链接:IDEA 2024版如何创建Spring Boot项目 – 每天进步一点点工具:IDEA (2024.1版)、Maven(3.6.3) 首先要保证Maven配置好,然后打开IDEA,左上角—>新建—>项目。Serv…

什么DeekSpeek居然自己会学习?

什么DeekSpeek居然自己会学习?Posted on 2025-11-28 17:07 Java后端的Ai之路 阅读(0) 评论(0) 收藏 举报🌊 SFT(监督微调):像"老师教孩子游泳" 想象一下,你是一位游泳教练,正在教一个孩子学游泳…

2025年下半年北京pmp培训,产品经理培训,人工智能培训,npdp培训,pmp项目管理培训机构综合推荐与选择指南

2025年下半年北京产品经理培训机构综合推荐与选择指南 摘要 随着数字化转型加速,2025年北京产品经理培训行业迎来新一轮发展,市场需求持续增长。本文基于市场调研和用户反馈,整理出10家值得关注的产品经理培训机构,…

java.io.IOException: Could not find resource mybatis-config.xml

java.io.IOException: Could not find resource mybatis-config.xml原文链接:java.io.IOException: Could not find resource mybatis-config.xml – 每天进步一点点测试mybatis的时候,test方法报错: java.io.IOExc…

2025年陶瓷环订做厂家权威推荐榜单:陶瓷零件/陶瓷手臂‌/陶瓷手臂‌源头厂家精选

在高端制造与新兴产业快速发展的背景下,陶瓷环凭借其耐高温、耐腐蚀、高绝缘、耐磨性强等特性,已成为半导体、新能源、航空航天等领域的核心部件。行业数据显示,全球半导体用陶瓷聚焦环市场销售额预计将达到15.3亿元…

焊装现场的眼睛:profinet嵌入式开发板打造端到端视觉焊装解决方案

焊装现场的眼睛:profinet嵌入式开发板打造端到端视觉焊装解决方案 在汽车制造领域,工业视觉成套装备体系已构建包含测量、引导、检测、识别在内的四大类、数十种,实现面向冲压、焊装、涂装、总装、电池、压铸六大工…

分析nvidia驱动run文件源码结构

下载驱动文件 归档版本驱动下载链接: https://download.nvidia.com/XFree86/Linux-x86_64/下载得到run文件,传输到linux虚拟机,中,执行解压命令,scp NVIDIA-Linux-x86_64-550.54.14.run root@192.168.119.135:/ro…

详细介绍:Spring数据库连接控制全解析

详细介绍:Spring数据库连接控制全解析pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

第五十一篇

今天是11月28号,上了形策

技术文档中,什么是前置条件?什么是后置条件?

技术文档中,什么是前置条件?什么是后置条件?原文链接:技术文档中,什么是前置条件?什么是后置条件? – 每天进步一点点0.背景 看别人写的技术文档时,出现了两个名词:“前置条件”和“后置条件”,前置条件比较…

习题解析之:奇偶插入

习题解析之:奇偶插入【问题描述】 给定一个无序的列表A,其中数据均为非负整数,其中奇数和偶数各占一半。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪…

上海债务重组公司怎么选?这份“避坑”指南助你找到靠谱服务

在上海这样的一线高消费城市,负债已成为许多市民生活中的常态。随着消费信贷、房贷、经营贷的普及,“债务管理”逐渐成为刚需。不同人群——从上班族、自由职业者到新婚家庭——面临截然不同的债务压力,而“一刀切”…

SeaTunnel部署及其Demo

SeaTunnel部署及其DemoSeaTunnel部署及其Demo环境、安装下载(国内镜像下载)环境准备:确保你的系统已安装 Java 8 或 11,并正确设置了 JAVA_HOME 环境变量。下载,解压https://mirrors.tuna.tsinghua.edu.cn/apache…

2025年广州全屋定制制造厂家推荐

本文将介绍广州全屋定制制造厂家,特别是行业内的Top三名厂商,并解析环保的全屋定制工厂。随着消费者对家居产品个性化和环保性能的重视,选择合适的厂家变得尤为重要。我们将深入评估市场上知名厂商的产品质量与服务…

400电话号如何选?

400电话号如何选? 在信息爆炸的时代,一个易记、专业的400电话不仅是企业通往客户的便捷桥梁,更是企业实力与品牌形象的无声代言。对于广大中小企业而言,如何高效、实惠地选到一个心仪的400号码?今天,我们就以专…

2025年不锈钢桥架厂家权威推荐榜单:防火桥架/耐火桥架/钢制桥架源头厂家精选

在电力、通信和工业布线领域,不锈钢桥架凭借其卓越的耐腐蚀性和结构强度,成为高要求环境下的首选敷设方案。2025年,全球大型工业设备市场规模已达343.41亿元,并持续增长,其中不锈钢桥架在细分市场中表现突出。本文…

C# 使用多线程的几种方式

C# 使用多线程的几种方式原文链接:C# 使用多线程的几种方式 – 每天进步一点点在C#编程中,经常会遇到多线程处理并发的操作,举个简单例子,如果一个wpf程序,你在main函数中写了一个死循环,那么你的界面就会直接卡…