首页 > 其他分享 >csi-driver-nfs持久化

csi-driver-nfs持久化

时间:2024-02-03 14:24:24浏览次数:40  
标签:csi driver storage nfs registry k8s

1.简介

csi-driver-nfs 是一个用于 Kubernetes 的 NFS CSI 驱动程序,它可以让 Kubernetes 访问 Linux 节点上的 NFS 服务器。它的 CSI 插件名称是 nfs.csi.k8s.io。这个驱动程序需要已经存在并配置好的 NFSv3 或 NFSv4 服务器,它支持通过创建 NFS 服务器下的新子目录来动态分配持久卷(Persistent Volumes)。这个驱动程序的项目状态是 GA(正式发布)。

这个驱动程序的主要功能和特点有:

  • 支持 NFSv3 和 NFSv4 协议

  • 支持快照(Snapshot)和卷克隆(Volume cloning)

  • 支持 fsGroupPolicy,可以在 Pod 中设置 fsGroup

  • 支持多种安装方式,包括 helm charts 和 kubectl

  • 支持多种参数设置,包括 mountOptions,server,share,subPath,readOnly 等

  • 支持 Kubernetes 1.21+ 版本

2.部署nfs

apt install nfs-kernel-server nfs-common -y
mkdir -p /data
echo "/data *(rw,sync,no_root_squash,no_subtree_check)" >> /etc/exports

#重启
exportfs -a
systemctl restart nfs-kernel-server.service
systemctl enable nfs-kernel-server.service

容器部署:链接

3.安装csi驱动

下载包地址:链接

部署参考链接:链接

wget https://github.com/kubernetes-csi/csi-driver-nfs/archive/refs/tags/v4.6.0.tar.gz
tar zxvf v4.6.0.tar.gz && cd csi-driver-nfs-4.6.0

# 查看镜像
cd csi-driver-nfs-4.6.0/deploy/v4.6.0

# 创建资源
./deploy/install-driver.sh v4.6.0 local

# 查看启动状态
kubectl -n kube-system get pod -o wide -l app=csi-nfs-controller
kubectl -n kube-system get pod -o wide -l app=csi-nfs-node

镜像列表:

# 国外镜像
grep -nr "registry.k8s.io" | awk '{print $3}'
registry.k8s.io/sig-storage/nfsplugin:v4.6.0
registry.k8s.io/sig-storage/livenessprobe:v2.11.0
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.9.1
registry.k8s.io/sig-storage/snapshot-controller:v6.3.2
registry.k8s.io/sig-storage/csi-provisioner:v3.6.2
registry.k8s.io/sig-storage/csi-snapshotter:v6.3.2

# 自己推送的镜像
registry.cn-hangzhou.aliyuncs.com/image-storage/nfspluginnfsplugin:v4.6.0
registry.cn-hangzhou.aliyuncs.com/image-storage/livenessprobe:v2.11.0
registry.cn-hangzhou.aliyuncs.com/image-storage/csi-node-driver-registrar:v2.9.1
registry.cn-hangzhou.aliyuncs.com/image-storage/snapshot-controller:v6.3.2
registry.cn-hangzhou.aliyuncs.com/image-storage/csi-provisioner:v3.6.2
registry.cn-hangzhou.aliyuncs.com/image-storage/csi-snapshotter:v6.3.2

4.storageclass创建

cd csi-driver-nfs-4.6.0/deploy/example

# storageclass文件内容
cat > storageclass-nfs.yaml <<EOF
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: nfs-csi
  annotations:
    # 此操作是1.25的以上的一个alpha的新功能,是将此storageclass设置为默认,这个在前面文章有讲过
    storageclass.kubernetes.io/is-default-class: "true"
# 此处指定了csidrivers的名称
provisioner: nfs.csi.k8s.io
parameters:
  # NFS的Server
  server: 192.168.80.45
  # NFS的存储路径
  share: /data
  # csi.storage.k8s.io/provisioner-secret is only needed for providing mountOptions in DeleteVolume
  # csi.storage.k8s.io/provisioner-secret-name: "mount-options"
  # csi.storage.k8s.io/provisioner-secret-namespace: "default"
reclaimPolicy: Delete
volumeBindingMode: Immediate
mountOptions:
  # 这里不只可以配置nfs的版本
  - nfsvers=4.1
EOF
参数名称 意义 示例 强制参数 默认值
server NFS的服务地址 10.0.0.11 YES  
share NFS共享的路径 / YES  
subDir NFS 共享下的子目录   NO  
mountPermissions 挂载的文件夹权限。默认值为,如果设置为非零,驱动程序将在挂载后执行0 chmod   NO 不存在则创建
onDelete 删除卷时,如果目录是retain delete(默认值),retain NO delete

创建资源:

kubectl apply -f storageclass-nfs.yaml
# 查看sc
kubectl get sc |  grep nfs
nfs (default)           nfs.csi.k8s.io         Delete          Immediate              false                  29s

5.测试部分

文件内容:

cat > pvc-dynamic.yml <<EOF
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-nfs-dynamic
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: nfs-csi
EOF

创建资源:

kubectl apply -f pvc-dynamic.yml

kubectl get pvc pvc-nfs-dynamic
NAME              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc-nfs-dynamic   Bound    pvc-e4c88c38-4f43-4813-94ab-110d248bcd84   1Gi        RWX            nfs-csi        37s

参考文章:

标签:csi,driver,storage,nfs,registry,k8s
From: https://www.cnblogs.com/-k8s/p/18004618

相关文章

  • CCSIP中国网络安全行业全景册(第六版)发布 飞驰云联入选7大领域
    2024年1月24日,FreeBuf咨询正式发布《CCSIP2023中国网络安全行业全景册(第六版)》。Ftrans飞驰云联的产品凭借优秀的市场表现,强势入选网络隔离/网闸、工业网络隔离系统/网闸、数据安全管控(平台型)、数据安全治理(解决方案)、恶意内容检测、容灾备份、邮件安全等7大细分领域。 本次......
  • Linux下通过AnySetup配置NFS Server
       NFSServer主界面Add(添加配置)AddHost(添加客户端主机) AddHost界面EditHost(修改客户端主机) EditHost界面DeleteHost(删除客户端主机)选中回车要删除的客户端主机,然后选中回车“OK”按钮即可 DeleteHost界面Edit(修改配置)AddHost(添加客户端主机)......
  • 关于Qt MySQL有QMYSQL驱动,但是Driver not loaded问题。
    首先,说一下我当时的问题,控制台显示有QMYSQL驱动,但是就是检测不到报错没有驱动,数据库连接不成功。 一开始是一直在复制粘贴.dll和.lib,但是还是不行,一直试一直拖好久都没解决这个问题。因为我sqlite可以用,所以也不着急搞MySQL,但是每次一有时间,看到MySQL不能使就不舒服,就像再调......
  • nfs安装与使用
    前言NFS的全称是NetworkFileSystem(网络文件系统);通过网络让不同的设备间共享文件或者目录。如:有两台服务器NameIP备注A192.168.1.1A机器的硬盘/movie目录有好东西B192.168.1.2B机器也想要把它拷贝到自己的/home目录中,但它的硬盘不够用A和B两台机器,可以......
  • QCN9024 QCN9074|Step by Step to load driver for DR9074-Triband on linux 5.17.0
    LoadingDR9074-TribandDriveronLinux5.17.0withATH11KSupportWallysrecentlyannouncedATH11KsupportforDR9074-TRIBANDonLinux,expandingitscompatibilitybeyondQualcommplatformstovariousLinuxembeddedsystems,includingUbuntu.Inthisartic......
  • Install nfs (network file system)
    1.whatisnfsusedfor?nfsisnetworkfilesystem,itisusedwhenmultiplecomputersneedtoaccessonedirectory.2.ComputerEnvironmentOS:Ubuntu20.043.Installandconfignfsserver3.1.Installnfsserver#执行以下命令安装NFS服务器,​#apt会自动安装......
  • 播报 | 天空卫士入围FreeBuf《CCSIP 2023中国网络安全产业全景图》16个细分领域
    2024年1月24,国内安全行业门户FreeBuf旗下FreeBuf咨询正式发布《CCSIP2023中国网络安全产业全景图》(第六版)。天空卫士成功入围SASE、数据防泄露(DLP)、分类分级、数据安全治理(解决方案)、数据安全管控(平台型)、邮件安全、UEBA、Web应用扫描与监控、云访问安全、SWG、恶意内容检测、移......
  • 行业认可!Coremail入选CCSIP2023中国网络安全行业全景册(第六版)
    2024年1月24日,FreeBuf咨询正式发布《CCSIP(ChinaCyberSecurityIndustryPanorama)2023中国网络安全行业全景册(第六版)》,旨在为企业安全建设及产品选型提供参考。Coremail凭借多年的专业技术积累和产品创新能力,入选该全景册的“邮件安全”、“恶意内容检测”、“钓鱼检测”、“数据......
  • GOLAND 中 使用GORM ,出现 未发现“mysql”driver
    错误描述:sql:unknowndriver"mysql"(forgottenimport?)panic:runtimeerror:invalidmemoryaddressornilpointerdereference 解决过程:1、清除缓存2、添加包import_"github.com/go-sql-driver/mysql"_(下划线)用于导入包但不使用它的情况。......
  • k8s创建NFS动态存储
    1.插件项目地址k8s实验版本:v1.28.2第三方插件地址:https://github.com/kubernetes-retired/external-storagenfs插件:https://github.com/kubernetes-retired/external-storage/tree/master/nfs-client需要注意的是,nfs最新文档已经迁移到其他地址2. 创建存储类资源对象wg......