在 CentOS 上安装 NFS 服务器
文章目录
- 1. 在 CentOS 上安装 NFS 服务器
- 1.1 安装 NFS 服务器软件包
- 1.2 配置 NFS 共享目录
- 1.3 配置 NFS 导出文件
- 1.4 启动并启用 NFS 服务
- 1.5 导出共享目录
- 1.6 配置防火墙
- 1.7 检查 NFS 状态
- 2. 在 CentOS 上安装 NFS 客户端
- 2.1 安装 NFS 客户端软件包
- 2.2 挂载 NFS 共享
- 2.3 配置自动挂载
- 2.4 给所有用户读写权限
- 2.5 检查 NFS 共享
- 3. 在 Kubernetes 中使用 NFS 存储
- 3.1 创建 Persistent Volume (PV)
- 3.2 创建 Persistent Volume Claim (PVC)
- 3.3 创建 Pod 使用 NFS 存储
- 3.4 应用配置文件
- 3.5 验证
- 4. 总结
在 CentOS 上安装和配置 NFS 服务器与客户端相对简单。以下是详细步骤,包括设置 NFS 服务器、配置防火墙、安装客户端,以及在 Kubernetes 中使用 NFS。
1. 在 CentOS 上安装 NFS 服务器
1.1 安装 NFS 服务器软件包
首先,需要安装 NFS 服务器软件包:
sudo yum install -y nfs-utils
1.2 配置 NFS 共享目录
接下来,创建一个目录,用于共享数据:
sudo mkdir -p /mnt/nfs
sudo groupadd nogroup
sudo chown -R nobody:nogroup /mnt/nfs
nobody
和 nogroup
是 NFS 的默认用户和组。
1.3 配置 NFS 导出文件
然后,配置哪些目录可以通过 NFS 共享。编辑 /etc/exports
文件,并添加以下内容:
/mnt/nfs *(rw,sync,no_subtree_check)
rw
: 允许客户端读写访问。sync
: 确保同步写入。no_subtree_check
: 禁止对子目录的检查。
保存并退出文件。
1.4 启动并启用 NFS 服务
启动 NFS 服务并设置为开机自启:
sudo systemctl start nfs-server
sudo systemctl enable nfs-server
1.5 导出共享目录
使共享目录立即生效:
sudo exportfs -a
1.6 配置防火墙
如果防火墙启用了,您需要允许 NFS 相关的端口:
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload
1.7 检查 NFS 状态
确保 NFS 服务器正在运行:
sudo systemctl status nfs-server
此时,NFS 服务器已经配置并运行在 CentOS 上,您可以在其他机器上挂载该共享目录。
2. 在 CentOS 上安装 NFS 客户端
2.1 安装 NFS 客户端软件包
在客户端机器上,您需要安装 NFS 客户端工具:
sudo yum install -y nfs-utils
2.2 挂载 NFS 共享
在客户端机器上,挂载 NFS 共享目录。例如,假设 NFS 服务器的 IP 地址是 192.168.1.100
,共享目录是 /mnt/nfs
,您可以执行以下命令:
sudo mount 192.168.56.115:/mnt/nfs /mnt/nfs-client
2.3 配置自动挂载
如果需要在客户端系统启动时自动挂载 NFS 共享,可以将挂载信息添加到 /etc/fstab
文件中:
192.168.56.115:/mnt/nfs /mnt/nfs-client nfs defaults 0 0
2.4 给所有用户读写权限
sudo chmod 777 /mnt/nfs # 给所有用户读写权限(可根据需求设置更严格的权限)
2.5 检查 NFS 共享
showmount -e 192.168.56.115
3. 在 Kubernetes 中使用 NFS 存储
要在 Kubernetes 集群中使用 NFS 存储,您需要创建一个 PersistentVolume
和 PersistentVolumeClaim
,让 Kubernetes Pod 挂载 NFS 共享。
3.1 创建 Persistent Volume (PV)
在 Kubernetes 中创建一个 PV,以便 Kubernetes 可以访问该共享目录。创建一个名为 nfs-pv.yaml
的文件,并定义如下内容:
apiVersion: v1
kind: PersistentVolume
metadata:name: nfs-pv
spec:capacity:storage: 5GivolumeMode: FilesystemaccessModes:- ReadWriteMany # 多个 Pod 可以同时读写persistentVolumeReclaimPolicy: Retain # 删除 PVC 时不会删除 PVnfs:path: /mnt/nfs # NFS 服务器上的路径server: 192.168.56.115 # NFS 服务器的 IP 地址mountOptions:- nolock # 避免锁定问题
3.2 创建 Persistent Volume Claim (PVC)
然后,您需要创建一个 PVC 来请求 NFS 存储资源。创建一个名为 nfs-pvc.yaml
的文件,并定义如下内容:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: nfs-pvc
spec:accessModes:- ReadWriteManyresources:requests:storage: 5Gi
3.3 创建 Pod 使用 NFS 存储
现在,您可以创建一个 Pod 并将 NFS 存储挂载到容器中。以下是一个 Pod 的示例 nfs-pod.yaml
:
apiVersion: v1
kind: Pod
metadata:name: nfs-pod
spec:containers:- name: app-containerimage: nginx # 您可以选择其他镜像volumeMounts:- mountPath: /mnt/data # 将 PVC 挂载到容器中的路径name: nfs-storagevolumes:- name: nfs-storagepersistentVolumeClaim:claimName: nfs-pvc # 引用前面创建的 PVC
3.4 应用配置文件
使用 kubectl
应用这些配置文件:
kubectl apply -f nfs-pv.yaml
kubectl apply -f nfs-pvc.yaml
kubectl apply -f nfs-pod.yaml
3.5 验证
检查 PV 和 PVC 的状态,确保它们已正确绑定:
kubectl get pv
kubectl get pvc
kubectl get pods
4. 总结
- 在 CentOS 上安装并配置 NFS 服务器,设置共享目录并启动 NFS 服务。
- 在客户端机器上安装 NFS 客户端,挂载共享目录。
- 在 Kubernetes 中,创建 Persistent Volume (PV)、Persistent Volume Claim (PVC),并在 Pod 中挂载 NFS 存储。
这样就完成了 CentOS 安装和配置 NFS 服务的步骤,以及在 Kubernetes 中使用该 NFS 存储的过程。如果有任何问题,欢迎继续提问!
相关文章:
在 CentOS 上安装 NFS 服务器
文章目录 1. 在 CentOS 上安装 NFS 服务器1.1 安装 NFS 服务器软件包1.2 配置 NFS 共享目录1.3 配置 NFS 导出文件1.4 启动并启用 NFS 服务1.5 导出共享目录1.6 配置防火墙1.7 检查 NFS 状态 2. 在 CentOS 上安装 NFS 客户端2.1 安装 NFS 客户端软件包2.2 挂载 NFS 共享2.3 配置…...
utf8mb4_unicode_ci、utf8mb4_general_ci、utf8mb4_0900_ai_ci; Mysql 排序字符集的优缺点和选择
标题内容 Mysql的排序字符集真让人头疼,如果两个表的排序字符集不一致,还会导致在进行字段比较的时候直接报错。下面分析几个常用的字符集的优劣和选择。 utf8mb4_unicode_ci 特点 Unicode 标准兼容性高:它是基于 Unicode 标准的排序规则&a…...
星宸SSC8836Q/SSC8836Q-H
SSC8836Q产品是高度集成的多媒体片上系统(SoC)产品,适用于汽车和运动/运动相机等高分辨率智能视频录制和播放应用。 该芯片包括64位双核RISC处理器,先进的图像信号处理器(ISP),高性能的H.265/H。264/MJPEG视频编解码器,智能处理单…...
rk3576 , android14 , 编译, 卡死,android.bp , ninja
问题:我在 编译 android14 的时候, 卡死再 analysing android.bp 这里 ,卡了 3,4 个小时。肯定是有问题的。 如图&…...
3、.Net UI库:MaterialSkin - 开源项目研究文章
MaterialSkin 是一个开源的 WinForms 第三方库,提供了许多仿谷歌设计风格的组件,使得 WinForms 窗体程序更加美观。以下是 MaterialSkin 的一些关键特点和使用方法: 主要特点: 仿谷歌设计风格:MaterialSkin 提供了大量…...
2024年构建PHP应用开发环境
文章目录 前言选择合适的PHP版本安装与配置PHP环境Windows平台Linux平台macOS平台 集成Web服务器数据库连接与管理使用Composer进行依赖管理调试工具的选择代码质量管理部署与持续集成安全性考虑参考资料结语 前言 随着互联网的发展,PHP作为一门成熟的服务器端编程…...
苹果手机iPad投屏到安卓电视,不只有AirPlay一种方法,还可以无线远程投屏!
苹果品牌的设备一般都可以使用airplay功能,将一个屏幕投射到另一个屏幕上。如果是跨品牌或跨系统投屏,airplay就未必能够适应。 提供无线投屏和airplay投屏两种方式的AirDroid Cast已经推出TV版本。苹果手机或iPad可以选择无线(远程ÿ…...
什么是内网什么是外网?区别是什么
内网和外网是计算机网络中的两个基本概念,它们在定义、特点和使用场景上有显著的区别。虎观代理小二将带大家详细了解内网与外网的定义以及它们之间的主要差异,帮助读者更好地理解和应用这两种网络。 内网(局域网,LAN࿰…...
基于Springboot+Vue的在线答题闯关系统
基于SpringbootVue的在线答题闯关系统 前言:随着在线教育的快速发展,传统的教育模式逐渐向互联网教育模式转型。在线答题系统作为其中的一个重要组成部分,能够帮助用户通过互动式的学习方式提升知识掌握度。本文基于Spring Boot和Vue.js框架&…...
html css 图片背景透明
html css图标背景透明 css属性: background-color:transparent; mix-blend-mode: multiply; 完整HTML代码: <html><head><title>Test</title></head><body><div id"test" style"background-col…...
Servlet
一 Servlet Servlet (server applet) 是运行在服务端(tomcat)的Java小程序,是sun公司提供一套定义动态资源规范; 从代码层面上来讲Servlet就是一个接口 用来接收、处理客户端请求、响应给浏览器的动态资源。在整个Web应用中,Servlet主要负责接收处理请求…...
MySQL用法---MySQL Workbench创建数据库和表
1. 连接数据库 打开软件,点击左下角卡片,输入设置的数据库密码,勾选单选框 2. 了解主页面的组成部分 3. 创建数据库 先点击工具栏的创建按钮 再输入数据库名称 点击 Apply 创建 4. 创建数据表 展开数据库,在Tables上右键&…...
WordPress Elementor Page Builde 任意文件读取漏洞复现(CVE-2024-9935)
0x01 产品描述: WordPress Elementor Page Builder 是一款 WordPress 插件,它允许用户以可视化方式创建和编辑网页。0x02 漏洞描述: WordPress 的 Elementor Page Builder 插件的 PDF 生成器插件在 1.7.5 之前的所有版本中都容易受到路径遍历的攻击,包括 1.7.5 rtw_pgaepb_…...
静态链接和动态链接的特点
静态链接 链接方式:在编译时,所有依赖的库代码被直接打包到生成的可执行文件中。这意味着在程序运行时,不需要再加载任何外部库文件。 优点: 独立性强:生成的可执行文件可以在没有依赖库的系统上直接运行&am…...
内核流对象(Kernel Streaming Objects)
内核流对象(Kernel Streaming Objects)是 Windows 系统中用于处理音频、视频等流媒体数据的重要机制。让我详细解释其作用和主要组件: 1. 主要作用: c // 内核流的核心功能 - 音频/视频数据的实时处理 - 多媒体设备驱动开发 - 硬件与软件之间的数据流传…...
Java 在Json对象字符串中查找和提取特定的数据
1、在处理JSON数据时,需要提出个别字段的值,通过正则表达式提取特定的数据 public static void main(String[] args) {//定义多个JSON对象字符串类型,假设每个对象有a,b,c 字段String strJson "{\"a\":1.23,\"b\"…...
21、结构体成员分布
结构体中的成员并不是紧挨着分布的,内存分布遵循字节对齐的原则。 按照成员定义的顺序,遵循字节对齐的原则存储。 字节对齐的原则: 找成员中占据字节数最大的成员,以它为单位进行空间空配 --- 遇到数组看元素的类型 每一个成员距离…...
【深度学习】四大图像分类网络之ResNet
ResNet网络是在2015年由微软实验室中的何凯明等几位提出,在CVPR 2016发表影响深远的网络模型,由何凯明团队提出来,在ImageNet的分类比赛上将网络深度直接提高到了152层,前一年夺冠的VGG只有19层。斩获当年ImageNet竞赛中分类任务第…...
zookeeper学习
解决什么问题? 首先来分析下业务对象,才能对解决的问题进行归纳和总结。它解决的事分布式应用的问题,那么分布式应用会存在哪里问题是由它的业务特性来决定的,这些问题已是为了解决业务的问题。分布式的业务特征有哪些࿱…...
Monkey结合appium模拟操作特定界面
目录 1. 使用 Monkey 操作特定界面(通过UI标识来限制) 2. 结合 uiautomator 或 appium 定位特定元素 步骤: 3. 使用 Monkey Appium 控制特定界面点击 4. 如何结合 Appium 与 Monkey 5. 限制 Monkey 只点击固定界面上的元素 使用 --pc…...
智能指针【C++11】
文章目录 智能指针std::auto_ptr std::unique_ptrstd::shared_ptrstd::shared_ptr的线程安全问题std::weak_ptr 智能指针 std::auto_ptr 管理权转移 auto_ptr是C98中引入的智能指针,auto_ptr通过管理权转移的方式解决智能指针的拷贝问题,保证一个资源…...
plsql 执行存储过程 SYS_REFCURSOR
关键字:plsql 执行存储过程 SYS_REFCURSOR 在PL/SQL中,SYS_REFCURSOR是一种特殊的数据类型,用于表示引用游标,可以用来返回查询结果或者操作数据库中的结果集。 以下是一个使用SYS_REFCURSOR执行存储过程的例子: CR…...
git修改某次commit(白痴版)
第一步 在bash窗口运行 git rebase --interactive commitId^ 比如要改的commitId是 abcedf git rebase --interactive abcedf^键盘 按 i 或者 ins 进入编辑状态 进入insert 编辑状态 在bash窗口手动把对应commit前面的pick改为e或edit 按 esc 进入退出程序 输入 :wq 保存退出…...
设计模式:19、桥接模式
目录 0、定义 1、桥接模式的四种角色 2、桥接模式的UML类图 3、示例代码 0、定义 将抽象部门与实现部分分离,使它们都可以独立地变化。 1、桥接模式的四种角色 抽象(Abstraction):一个抽象类,包含实现者…...
闭包函数的基础知识
上期文章 1. 函数装饰器 2.闭包 2.1变量作用域 python有3种变量作用域 模块全局作用域:在类或函数外部分配定义的。函数局部作用域:通过参数或者在函数主体中定义的。第3种作用域:闭包中的变量环境 2.2全局变量和局部变量 def fun(a):print(a)print(b)fun(10)10---------…...
python3D圣诞树
import pygame import math from pygame.locals import *# 初始化Pygame pygame.init()# 设置屏幕尺寸和标题 width, height 800, 600 screen pygame.display.set_mode((width, height)) pygame.display.set_caption(3D 圣诞树)# 设置颜色 GREEN (34, 139, 34) BROWN (139,…...
博物馆导览系统方案(一)背景需求分析与核心技术实现
维小帮提供多个场所的室内外导航导览方案,如需获取博物馆导览系统解决方案可前往文章最下方获取,如有项目合作及技术交流欢迎私信我们哦~撒花! 一、博物馆导览系统的背景与市场需求 在数字化转型的浪潮中,博物馆作为文化传承和知…...
[代码随想录09]字符串2的总结
前言 处理字符串主要是有思路,同时总结方法。 题目链接 151. 反转字符串中的单词 - 力扣(LeetCode) 55. 右旋字符串(第八期模拟笔试) 一、翻转字符串里的单词 这个题目的主要思路,代码采用从后往前遍历字…...
C语言程序设计P5-3【应用函数进行程序设计 | 第三节】——知识要点:函数的嵌套调用和递归调用
知识要点:函数的嵌套调用和递归调用 视频 目录 一、任务分析 二、必备知识与理论 三、任务实施 一、任务分析 本任务要求用递归法求 n!。 我们知道n!n(n-1)(n-2)……1n(n-1)!递归公式为: 1.上面公式分解为n!n(n-1)!,即将求n!的问题变为…...
【Java】protobuf-maven-plugin主动下载protoc编译proto文件
背景: 我们hadoop的代码里,配置的是3.7.1的protocol buffer,但是编译环境上安装的是2.5.0。 能成功编译,且没有什么兼容性问题。这里非常好奇发生了什么,于是研究了一下protobuf-maven-plugin插件, 发现是他去下载的 在使用protobuf-maven-plugin插件时,我们一般会这么…...
Go学习:变量
目录 1. 变量的命名 2. 变量的声明 3. 变量声明时注意事项 4. 变量的初始化 5. 简单例子 变量主要用来存储数据信息,变量的值可以通过变量名进行访问。 1. 变量的命名 在Go语言中,变量名的命名规则 与其他编程语言一样,都是由字母、数…...
AllegroHand 四指灵巧手:机器人领域的创新力量
Allegro Hand 作为一款高性价比且适应性强的机器人四指灵巧手,凭借其四根手指和十六个独立的电流控制接头,成为机器人复杂抓握、柔性操作以及触觉传感器等研究领域的理想之选。 Allegrohand 四指灵巧手技术特点 机械结构 Allegro Hand的机械结构设计高…...
蓝桥杯准备训练(lesson3 ,c++)
变量与常量 4.1 变量的创建4.2 变量初始化4.3 变量的分类4.4 常量4.4.1 字⾯常量4.4.2 #define定义常量4.4.3 const定义常量4.5 练习练习1:买票练习2:AB问题练习3:鸡兔同笼 4.1 变量的创建 了解清楚了类型,我们使⽤类型做什么呢&…...
Conda + JuiceFS :增强 AI 开发环境共享能力
Conda 是当前 AI 应用开发领域中非常流行的环境和包管理系统,因其能够简单便捷地创建与系统资源相隔离的虚拟环境广受欢迎。 Conda 支持在不同的操作系统上重建相同的工作环境,但在环境共享复用方面仍存在一些挑战。比如,在不同机器上复用相…...
小红薯x-s算法最新补环境教程12-06更新(下)
在上一篇文章中已经讲了如何去定位x-s生成的位置,本篇文章就直接开始撸代码吧 如果没看过的话可以看:小红薯最新x-s算法分析12-06(x-s 56)(上)-CSDN博客 1、获取加密块代码 首先来到参数生成的位置&…...
强化ASPICE合规与认可度:关键策略与实践路径
确保ASPICE(Automotive SPICE)标准的合规性和认可度,是一个涉及多方面努力和持续改进的过程。以下是一些关键步骤和建议,以帮助企业实现这一目标: 一、熟悉ASPICE标准 深入阅读和理解:首先,需要…...
没有合理使用线程池,引发的生产环境BUG
引言 随着多线程和并发处理需求的增加,线程池成为了提升系统性能的重要工具。Java 提供了强大的 ThreadPoolExecutor 类,能够高效地管理线程池,减少线程创建和销毁的开销。然而,当线程池达到其最大容量时,如何优雅地处…...
异步处理与后台任务管理:在 FastAPI 中实现高级特性
异步处理与后台任务管理:在 FastAPI 中实现高级特性 目录 ⚡ 背景任务与异步处理概述🛠️ 使用 BackgroundTasks 执行后台任务🚀 异步视图函数:使用 async 和 await🔄 处理并发任务:提升应用性能与响应能…...
ceph存储池
1、存储池 1、存储池的概念 存储池就是ceph的逻辑分区,专门用来存储对象的 特点 将文件切片成对象,通过hash算法,找到存储池中的pg,池中的pg根据crush算法找到osd节点 存储中的PG数量对性能有重要的影响,过多和过少…...
STM32基于HAL库的串口接收中断触发机制和适用场景
1. HAL_UART_Receive_DMA函数 基本功能 作用:启动一个固定长度的 DMA 数据接收。特点: 需要预先指定接收数据的长度(Size 参数)。DMA 会一直工作直到接收到指定数量的数据,接收完成后触发 HAL_UART_RxCpltCallback 回…...
如何查看电脑的屏幕刷新率?
1、按一下键盘的 win i 键,打开如下界面,选择【系统】: 2、选择【屏幕】-【高级显示设置】 如下位置,显示屏幕的刷新率:60Hz 如果可以更改,则选择更高的刷新率,有助于电脑使用起来界面更加流…...
Q3收入回退,盈利与商业化落地步履艰难,文远知行亟待背水一战
撰稿|行星 来源|贝多财经 12月2日,全球商业杂志《Fortune》(财富)揭晓了2024年“未来50强”(The Future 50)企业榜单,上市不久的全球Rbotaxi第一股文远知行(NASDAQ:WRD)位列第26名…...
如何利用Java爬虫获得商品类目
在当今数字化时代,数据已成为企业最宝贵的资产之一。获取和分析数据的能力对于任何希望在市场上保持竞争力的企业来说都是至关重要的。对于电子商务平台和市场研究公司而言,获取商品类目数据尤为重要,因为这些数据可以帮助他们更好地理解市场…...
Charts 教程:创建交互式图表的基础
ECharts 是一个开源的、基于 JavaScript 的数据可视化库,它可以帮助你快速创建交互式的图表。无论是简单的柱状图、折线图,还是复杂的地图和关系图,ECharts 都能够轻松应对。本文将带你了解如何在你的网页中使用 ECharts 创建图表,…...
Jackson - JsonGenerator创建JSON、JsonParser解析JSON
以下是关于如何使用Jackson的JsonGenerator类来创建JSON内容以及如何使用JsonParser类来读取JSON内容的教程。 依赖项 首先,在pom.xml文件中添加以下依赖项以引入Jackson库: <dependency><groupId>com.fasterxml.jackson.core</groupI…...
数据结构与算法——1202—排序递归
1、选择排序 #include<iostream> #include<vector> using namespace std;void SelectSort(vector<int>& nums) {int i;int j;int minIndex;int length nums.size();if (length 0 || length 1) return;for (i 0; i < length-1; i)//遍历所有元素{…...
Lattice Radiant Software Lattice Propel Builder Lattice Propel 2024.1 安装
因项目需要,对Lattice 器件LIFCL-40 CrossLink进行评估 先从Lattice官网下载Radiant安装包: Lattice Radiant设计软件 新建工程环境...
【Linux系统】 Linux内核与UNIX设计哲学的结合
Linux 内核虽然不是 UNIX 的直接衍生物,但它深受 UNIX 设计哲学的影响。Linux 的开发者,尤其是 Linus Torvalds,在设计和实现 Linux 时,借鉴了 UNIX 的核心思想,使 Linux 成为一个类 UNIX 系统。 以下从 UNIX 设计哲学…...
MKS EDGE Series RF Generators Power Solution 软件
MKS EDGE Series RF Generators Power Solution 软件...
【机器学习 | 基于Lasso回归和随机森林的上海链家二手房房价预测】
文章目录 🏳️🌈 1. 导入模块🏳️🌈 2. Pandas数据处理2.1 读取数据2.2 查看数据信息2.3 去除重复数据2.4 去除缺失数据2.5 面积、价格、单价、楼层、建筑时间数据提取2.6 朝向数据处理 🏳️🌈 3. 特…...