当前位置: 首页 > news >正文

k8s 持久化存储方案-NFS

NFS(Network File System)是一种网络文件系统协议,它允许不同计算机之间共享文件和目录。在 Kubernetes(k8s)中,NFS 是一种常见的持久化存储方案,用于将网络共享的存储卷挂载到容器中。

NFS 的基本介绍和常见应用场景:

1.  基本原理:NFS 允许将存储资源(文件或目录)通过网络共享给其他计算机。NFS 服务器将存储资源公开为共享,并将其挂载到客户端计算机上。客户端可以像访问本地文件系统一样访问这些共享资源。
2.  持久化存储方案:在 Kubernetes 中,NFS 可以作为持久化存储方案使用。它可以提供可靠的存储,并在 pod 被重新调度到不同的节点时保持数据的一致性。
3.  分布式访问:NFS 允许多个客户端同时访问共享资源。这使得它非常适合那些需要多个容器或Pod 共享数据的场景,例如数据库系统或分布式文件共享。
4.  跨平台兼容性:NFS 是一种跨平台的文件系统协议,支持在不同操作系统之间进行文件共享。这使得它成为在混合操作系统集群中实现持久化存储的理想选择。
5.  灵活性:NFS 提供了对存储资源的灵活访问和管理。管理员可以根据需求创建和配置 NFS 服务器,设置共享权限以及实施访问控制策略。
6.  备份和恢复:NFS 具备备份和恢复数据的能力。通过使用备份工具和策略,可以对 NFS 共享的数据进行定期备份,以防止数据丢失或损坏。

总结起来,NFS 是一种在 Kubernetes 中常用的持久化存储方案,可以提供可靠的存储和跨多个容器或 Pod 的文件共享。它具有跨平台兼容性、灵活性和备份恢复能力等,

一、搭建 nfs 服务 

1.安装:以服务器63为例:在63上操作

yum install nfs-utils -y

#在宿主机63创建 NFS 需要的共享目录

mkdir /data/volumes -pv

2.#配置 nfs 共享服务器上的/data/volumes 目录

 systemctl start nfs-server  #启动

在配置文件 vim /etc/exports  添加

 /data/volumes *(rw,no_root_squash)

#使 NFS 配置生效

exportfs -arv  #使配置文件生效
service nfs-server restart    #重重启
systemctl enable nfs-server    #设置成开机自启动
systemctl status nfs-server     #查看 nfs 是否启动成功

看到 nfs 是 active,说明 nfs 正常启动了

3.在别的需要共享的服务器上也需要安装nfs 驱动 

yum install nfs-utils -y
systemctl start nfs-server
systemctl enable nfs-serve

在 64服务器 上手动挂载试试:需要共享的都需要安装
[root@xuegod64]# mkdir /data2
[root@xuegod64]# mount -t nfs 192.168.1.63:/data/volumes /data2

192.168.1.63:/data/volumes 这是nfs服务器的ip和共享目录

/data2   这是本地的目录

#nfs 可以被正常挂载

#手动卸载:
[root@xuegod64]# umount /data2/

二‘’#创建 Pod,挂载 NFS 共享出来的目录

nfs.yaml

apiVersion: v1
kind: Pod
metadata:
name: test-nfs-volume
spec:
containers:
- name: test-nfsimage: nginximagePullPolicy: IfNotPresent
ports:
- containerPort: 80
protocol: TCP
volumeMounts:
- name: nfs-volumes
mountPath: /usr/share/nginx/html
volumes:
- name: nfs-volumes
nfs:
path: /data/volumes
server: 192.168.1.63

注:path: /data/volumes #nfs 的共享目录
server:192.168.1.63 是 xuegod63 机器的 ip,这个是安装 nfs 服务的地址

#更新资源清单文件

[root@xuegod63 ~]# kubectl apply -f nfs.yaml
#查看 pod 是否创建成功
[root@xuegod63 volumes]# kubectl get pods -o wide | grep nfs

[root@xuegod63 ~]# cd /data/volumes/
#登录到 nfs 服务器,在共享目录创建一个 index.html 并写入文件

#请求 pod,看结果
[root@xuegod63 volumes]# curl 10.244.187.108

通过上面可以看到,在共享目录创建的 index.html 已经被 pod 挂载了
#登录到 pod 验证下
[root@xuegod63 volumes]# kubectl exec -it test-nfs-volume -- /bin/bash
root@test-nfs-volume:/# cd /usr/share/nginx/html/
root@test-nfs-volume:/usr/share/nginx/html# ls
index.html

#上面说明挂载 nfs 存储卷成功了,nfs 支持多个客户端挂载,可以创建多个 pod,挂载同一个 nfs
服务器共享出来的目录;但是 nfs 如果宕机了,数据也就丢失了,所以需要使用分布式存储,常见的分布式存储有 glusterfs 和 cephfs、

http://www.dtcms.com/a/486513.html

相关文章:

  • 建一个网站都需要什么开发软件用什么编程软件
  • 北京网站设计优刻如何将网站上传到空间
  • 大模型嵌入 vs ES:语义搜索与关键字搜索
  • 仓颉编程(1)环境配置变量
  • 我们来学AI编程 -- vscode开发java
  • HTML之table表格经典CSS(可用它做简单的数据看板)
  • 石家庄学做网站建设培训班安卓手机怎么做网站
  • 温州专业微网站制作电话夜聊
  • Vue的Axios介绍【9】
  • CMP (类ClouderaCDP7.3(404次编译) )华为鲲鹏Aarch64(ARM)信创环境多个mysql数据库汇聚的操作指南
  • C++ 中的类型转换:深入理解 static_cast 与 C风格转换的本质区别
  • [tile-lang] 语言接口 | `T.prim_func` `@tilelang.jit` | 底层原理
  • 个人网站 不用备案wordpress 修改站点
  • 服务器可以吧网站做跳转吗甘南网站设计公司
  • 100GbE to 4x25GbE (QSFP28 to 4xSFP28) Direct Attach Copper Splitter Cable
  • 亚马逊云渠道商:AWS管理安全策略指南
  • 整车——动力电池安全预警
  • 主流神经网络快速应用指南
  • 【Linux系统】系统编程
  • 前端html基础标签
  • 名宿预定系统
  • -rpath-link的用法
  • 创建数据表修改数据表和删除数据表
  • 做设计及免费素材网站有哪些wordpress创建专题
  • 数据结构与算法(串)
  • 《PLECS仿真与实战:从建模到高端应用》-文章目录--点击蓝色目录可跳转到博文
  • 中国开头的网站怎么做网线水晶头接法
  • linux 做网站服装网站首页设计
  • iOS 应用加固与苹果软件混淆全解析 IPA 文件防反编译、混淆加密与无源码加固策略
  • 如果有两个网卡,他们端口都是什么样的? phy